<div dir="ltr">Is it possible to add a unittest that exercises this extension point in-tree? For example the way I did for AA extension hooks?</div><br><div class="gmail_quote"><div dir="ltr">On Mon, Oct 19, 2015 at 9:00 PM Michael Gottesman via cfe-commits <<a href="mailto:cfe-commits@lists.llvm.org">cfe-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div><blockquote type="cite"><div>On Oct 19, 2015, at 4:40 PM, Michael Gottesman via cfe-commits <<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a>> wrote:</div><br><div><blockquote type="cite" style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><br>On Oct 15, 2015, at 8:29 AM, Benjamin Kramer via cfe-commits <<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a>> wrote:<br><br>Author: d0k<br>Date: Thu Oct 15 10:29:40 2015<br>New Revision: 250418<br><br>URL: <a href="http://llvm.org/viewvc/llvm-project?rev=250418&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=250418&view=rev</a><br>Log:<br>[CodeGen] Remove dead code. NFC.<br><br>Modified:<br> cfe/trunk/lib/CodeGen/CGBuiltin.cpp<br> cfe/trunk/lib/CodeGen/CGCall.cpp<br> cfe/trunk/lib/CodeGen/CGCleanup.cpp<br> cfe/trunk/lib/CodeGen/CGDebugInfo.cpp<br> cfe/trunk/lib/CodeGen/CGDebugInfo.h<br> cfe/trunk/lib/CodeGen/CGObjC.cpp<br> cfe/trunk/lib/CodeGen/CGObjCMac.cpp<br> cfe/trunk/lib/CodeGen/CGVTables.h<br> cfe/trunk/lib/CodeGen/CodeGenABITypes.cpp<br> cfe/trunk/lib/CodeGen/CodeGenFunction.h<br> cfe/trunk/lib/CodeGen/CodeGenModule.cpp<br> cfe/trunk/lib/CodeGen/CodeGenModule.h<br> cfe/trunk/lib/CodeGen/CodeGenPGO.h<br> cfe/trunk/lib/CodeGen/EHScopeStack.h<br> cfe/trunk/lib/CodeGen/MicrosoftCXXABI.cpp<br><br>Modified: cfe/trunk/lib/CodeGen/CGBuiltin.cpp<br>URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGBuiltin.cpp?rev=250418&r1=250417&r2=250418&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGBuiltin.cpp?rev=250418&r1=250417&r2=250418&view=diff</a><br>==============================================================================<br>--- cfe/trunk/lib/CodeGen/CGBuiltin.cpp (original)<br>+++ cfe/trunk/lib/CodeGen/CGBuiltin.cpp Thu Oct 15 10:29:40 2015<br>@@ -4106,15 +4106,6 @@ Value *CodeGenFunction::vectorWrapScalar<br> return Op;<br>}<br><br>-Value *CodeGenFunction::vectorWrapScalar8(Value *Op) {<br>- llvm::Type *VTy = llvm::VectorType::get(Int8Ty, 8);<br>- Op = Builder.CreateBitCast(Op, Int8Ty);<br>- Value *V = UndefValue::get(VTy);<br>- llvm::Constant *CI = ConstantInt::get(SizeTy, 0);<br>- Op = Builder.CreateInsertElement(V, Op, CI);<br>- return Op;<br>-}<br>-<br>Value *CodeGenFunction::EmitAArch64BuiltinExpr(unsigned BuiltinID,<br> const CallExpr *E) {<br> unsigned HintID = static_cast<unsigned>(-1);<br><br>Modified: cfe/trunk/lib/CodeGen/CGCall.cpp<br>URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGCall.cpp?rev=250418&r1=250417&r2=250418&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGCall.cpp?rev=250418&r1=250417&r2=250418&view=diff</a><br>==============================================================================<br>--- cfe/trunk/lib/CodeGen/CGCall.cpp (original)<br>+++ cfe/trunk/lib/CodeGen/CGCall.cpp Thu Oct 15 10:29:40 2015<br>@@ -3038,12 +3038,6 @@ CodeGenFunction::EmitRuntimeCallOrInvoke<br> return callSite;<br>}<br><br>-llvm::CallSite<br>-CodeGenFunction::EmitCallOrInvoke(llvm::Value *Callee,<br>- const Twine &Name) {<br>- return EmitCallOrInvoke(Callee, None, Name);<br>-}<br>-<br>/// Emits a call or invoke instruction to the given function, depending<br>/// on the current state of the EH stack.<br>llvm::CallSite<br><br>Modified: cfe/trunk/lib/CodeGen/CGCleanup.cpp<br>URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGCleanup.cpp?rev=250418&r1=250417&r2=250418&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGCleanup.cpp?rev=250418&r1=250417&r2=250418&view=diff</a><br>==============================================================================<br>--- cfe/trunk/lib/CodeGen/CGCleanup.cpp (original)<br>+++ cfe/trunk/lib/CodeGen/CGCleanup.cpp Thu Oct 15 10:29:40 2015<br>@@ -167,23 +167,6 @@ EHScopeStack::getInnermostActiveNormalCl<br> return stable_end();<br>}<br><br>-EHScopeStack::stable_iterator EHScopeStack::getInnermostActiveEHScope() const {<br>- for (stable_iterator si = getInnermostEHScope(), se = stable_end();<br>- si != se; ) {<br>- // Skip over inactive cleanups.<br>- EHCleanupScope *cleanup = dyn_cast<EHCleanupScope>(&*find(si));<br>- if (cleanup && !cleanup->isActive()) {<br>- si = cleanup->getEnclosingEHScope();<br>- continue;<br>- }<br>-<br>- // All other scopes are always active.<br>- return si;<br>- }<br>-<br>- return stable_end();<br>-}<br>-<br><br>void *EHScopeStack::pushCleanup(CleanupKind Kind, size_t Size) {<br> char *Buffer = allocate(EHCleanupScope::getSizeForCleanupSize(Size));<br><br>Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.cpp<br>URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDebugInfo.cpp?rev=250418&r1=250417&r2=250418&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDebugInfo.cpp?rev=250418&r1=250417&r2=250418&view=diff</a><br>==============================================================================<br>--- cfe/trunk/lib/CodeGen/CGDebugInfo.cpp (original)<br>+++ cfe/trunk/lib/CodeGen/CGDebugInfo.cpp Thu Oct 15 10:29:40 2015<br>@@ -2159,30 +2159,6 @@ llvm::DIType *CGDebugInfo::getOrCreateTy<br> return Res;<br>}<br><br>-unsigned CGDebugInfo::Checksum(const ObjCInterfaceDecl *ID) {<br>- // The assumption is that the number of ivars can only increase<br>- // monotonically, so it is safe to just use their current number as<br>- // a checksum.<br>- unsigned Sum = 0;<br>- for (const ObjCIvarDecl *Ivar = ID->all_declared_ivar_begin();<br>- Ivar != nullptr; Ivar = Ivar->getNextIvar())<br>- ++Sum;<br>-<br>- return Sum;<br>-}<br>-<br>-ObjCInterfaceDecl *CGDebugInfo::getObjCInterfaceDecl(QualType Ty) {<br>- switch (Ty->getTypeClass()) {<br>- case Type::ObjCObjectPointer:<br>- return getObjCInterfaceDecl(<br>- cast<ObjCObjectPointerType>(Ty)->getPointeeType());<br>- case Type::ObjCInterface:<br>- return cast<ObjCInterfaceType>(Ty)->getDecl();<br>- default:<br>- return nullptr;<br>- }<br>-}<br>-<br>llvm::DIModule *CGDebugInfo::getParentModuleOrNull(const Decl *D) {<br> // A forward declaration inside a module header does not belong to the module.<br> if (isa<RecordDecl>(D) && !cast<RecordDecl>(D)->getDefinition())<br><br>Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.h<br>URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDebugInfo.h?rev=250418&r1=250417&r2=250418&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDebugInfo.h?rev=250418&r1=250417&r2=250418&view=diff</a><br>==============================================================================<br>--- cfe/trunk/lib/CodeGen/CGDebugInfo.h (original)<br>+++ cfe/trunk/lib/CodeGen/CGDebugInfo.h Thu Oct 15 10:29:40 2015<br>@@ -135,12 +135,6 @@ class CGDebugInfo {<br> NamespaceAliasCache;<br> llvm::DenseMap<const Decl *, llvm::TypedTrackingMDRef<llvm::DIDerivedType>><br> StaticDataMemberCache;<br>-<br>- /// Helper functions for getOrCreateType.<br>- /// @{<br>- /// Currently the checksum of an interface includes the number of<br>- /// ivars and property accessors.<br>- unsigned Checksum(const ObjCInterfaceDecl *InterfaceDecl);<br> llvm::DIType *CreateType(const BuiltinType *Ty);<br> llvm::DIType *CreateType(const ComplexType *Ty);<br> llvm::DIType *CreateQualifiedType(QualType Ty, llvm::DIFile *Fg);<br>@@ -199,11 +193,8 @@ class CGDebugInfo {<br> llvm::DIType *getOrCreateVTablePtrType(llvm::DIFile *F);<br> /// \return namespace descriptor for the given namespace decl.<br> llvm::DINamespace *getOrCreateNameSpace(const NamespaceDecl *N);<br>- llvm::DIType *getOrCreateTypeDeclaration(QualType PointeeTy, llvm::DIFile *F);<br> llvm::DIType *CreatePointerLikeType(llvm::dwarf::Tag Tag, const Type *Ty,<br> QualType PointeeTy, llvm::DIFile *F);<br>-<br>- llvm::Value *getCachedInterfaceTypeOrNull(const QualType Ty);<br> llvm::DIType *getOrCreateStructPtrType(StringRef Name, llvm::DIType *&Cache);<br><br> /// A helper function to create a subprogram for a single member<br>@@ -435,10 +426,6 @@ private:<br> /// Create type metadata for a source language type.<br> llvm::DIType *CreateTypeNode(QualType Ty, llvm::DIFile *Fg);<br><br>- /// Return the underlying ObjCInterfaceDecl if \arg Ty is an<br>- /// ObjCInterface or a pointer to one.<br>- ObjCInterfaceDecl *getObjCInterfaceDecl(QualType Ty);<br>-<br> /// Create new member and increase Offset by FType's size.<br> llvm::DIType *CreateMemberType(llvm::DIFile *Unit, QualType FType,<br> StringRef Name, uint64_t *Offset);<br>@@ -587,12 +574,6 @@ public:<br> return ApplyDebugLocation(CGF, true, SourceLocation());<br> }<br><br>- /// \brief Apply TemporaryLocation if it is valid. Otherwise set the IRBuilder<br>- /// to not attach debug locations.<br>- static ApplyDebugLocation<br>- CreateDefaultEmpty(CodeGenFunction &CGF, SourceLocation TemporaryLocation) {<br>- return ApplyDebugLocation(CGF, true, TemporaryLocation);<br>- }<br>};<br><br>} // namespace CodeGen<br><br>Modified: cfe/trunk/lib/CodeGen/CGObjC.cpp<br>URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGObjC.cpp?rev=250418&r1=250417&r2=250418&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGObjC.cpp?rev=250418&r1=250417&r2=250418&view=diff</a><br>==============================================================================<br>--- cfe/trunk/lib/CodeGen/CGObjC.cpp (original)<br>+++ cfe/trunk/lib/CodeGen/CGObjC.cpp Thu Oct 15 10:29:40 2015<br>@@ -1410,22 +1410,6 @@ void CodeGenFunction::GenerateObjCCtorDt<br> FinishFunction();<br>}<br><br>-bool CodeGenFunction::IndirectObjCSetterArg(const CGFunctionInfo &FI) {<br>- CGFunctionInfo::const_arg_iterator it = FI.arg_begin();<br>- it++; it++;<br>- const ABIArgInfo &AI = it->info;<br>- // FIXME. Is this sufficient check?<br>- return (AI.getKind() == ABIArgInfo::Indirect);<br>-}<br>-<br>-bool CodeGenFunction::IvarTypeWithAggrGCObjects(QualType Ty) {<br>- if (CGM.getLangOpts().getGC() == LangOptions::NonGC)<br>- return false;<br>- if (const RecordType *FDTTy = Ty.getTypePtr()->getAs<RecordType>())<br>- return FDTTy->getDecl()->hasObjectMember();<br>- return false;<br>-}<br>-<br>llvm::Value *CodeGenFunction::LoadObjCSelf() {<br> VarDecl *Self = cast<ObjCMethodDecl>(CurFuncDecl)->getSelfDecl();<br> DeclRefExpr DRE(Self, /*is enclosing local*/ (CurFuncDecl != CurCodeDecl),<br>@@ -1745,13 +1729,6 @@ void CodeGenFunction::EmitObjCAtSynchron<br> CGM.getObjCRuntime().EmitSynchronizedStmt(*this, S);<br>}<br><br>-/// Produce the code for a CK_ARCProduceObject. Just does a<br>-/// primitive retain.<br>-llvm::Value *CodeGenFunction::EmitObjCProduceObject(QualType type,<br>- llvm::Value *value) {<br>- return EmitARCRetain(type, value);<br>-}<br>-<br>namespace {<br> struct CallObjCRelease final : EHScopeStack::Cleanup {<br> CallObjCRelease(llvm::Value *object) : object(object) {}<br>@@ -2187,14 +2164,6 @@ CodeGenFunction::EmitARCRetainAutoreleas<br> "objc_retainAutorelease");<br>}<br><br>-/// i8* \@objc_loadWeak(i8** %addr)<br>-/// Essentially objc_autorelease(objc_loadWeakRetained(addr)).<br>-llvm::Value *CodeGenFunction::EmitARCLoadWeak(Address addr) {<br>- return emitARCLoadOperation(*this, addr,<br>- CGM.getARCEntrypoints().objc_loadWeak,<br>- "objc_loadWeak");<br>-}<br>-<br>/// i8* \@objc_loadWeakRetained(i8** %addr)<br>llvm::Value *CodeGenFunction::EmitARCLoadWeakRetained(Address addr) {<br> return emitARCLoadOperation(*this, addr,<br><br>Modified: cfe/trunk/lib/CodeGen/CGObjCMac.cpp<br>URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGObjCMac.cpp?rev=250418&r1=250417&r2=250418&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGObjCMac.cpp?rev=250418&r1=250417&r2=250418&view=diff</a><br>==============================================================================<br>--- cfe/trunk/lib/CodeGen/CGObjCMac.cpp (original)<br>+++ cfe/trunk/lib/CodeGen/CGObjCMac.cpp Thu Oct 15 10:29:40 2015<br>@@ -659,9 +659,6 @@ public:<br> // MessageRefCPtrTy - clang type for struct _message_ref_t*<br> QualType MessageRefCPtrTy;<br><br>- // MessengerTy - Type of the messenger (shown as IMP above)<br>- llvm::FunctionType *MessengerTy;<br>-<br> // SuperMessageRefTy - LLVM for:<br> // struct _super_message_ref_t {<br> // SUPER_IMP messenger;<br><br>Modified: cfe/trunk/lib/CodeGen/CGVTables.h<br>URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGVTables.h?rev=250418&r1=250417&r2=250418&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGVTables.h?rev=250418&r1=250417&r2=250418&view=diff</a><br>==============================================================================<br>--- cfe/trunk/lib/CodeGen/CGVTables.h (original)<br>+++ cfe/trunk/lib/CodeGen/CGVTables.h Thu Oct 15 10:29:40 2015<br>@@ -85,10 +85,6 @@ public:<br> uint64_t getSecondaryVirtualPointerIndex(const CXXRecordDecl *RD,<br> BaseSubobject Base);<br><br>- /// getAddressPoint - Get the address point of the given subobject in the<br>- /// class decl.<br>- uint64_t getAddressPoint(BaseSubobject Base, const CXXRecordDecl *RD);<br>- <br> /// GenerateConstructionVTable - Generate a construction vtable for the given<span> </span><br> /// base subobject.<br> llvm::GlobalVariable *<br><br>Modified: cfe/trunk/lib/CodeGen/CodeGenABITypes.cpp<br>URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenABITypes.cpp?rev=250418&r1=250417&r2=250418&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenABITypes.cpp?rev=250418&r1=250417&r2=250418&view=diff</a><br>==============================================================================<br>--- cfe/trunk/lib/CodeGen/CodeGenABITypes.cpp (original)<br>+++ cfe/trunk/lib/CodeGen/CodeGenABITypes.cpp Thu Oct 15 10:29:40 2015<br>@@ -36,35 +36,3 @@ CodeGenABITypes::CodeGenABITypes(ASTCont<br>// Explicitly out-of-line because ~CodeGenModule() is private but<br>// CodeGenABITypes.h is part of clang's API.<br>CodeGenABITypes::~CodeGenABITypes() = default;<br>-<br>-const CGFunctionInfo &<br>-CodeGenABITypes::arrangeObjCMessageSendSignature(const ObjCMethodDecl *MD,<br>- QualType receiverType) {<br>- return CGM->getTypes().arrangeObjCMessageSendSignature(MD, receiverType);<br>-}<br>-<br>-const CGFunctionInfo &<br>-CodeGenABITypes::arrangeFreeFunctionType(CanQual<FunctionProtoType> Ty) {<br>- return CGM->getTypes().arrangeFreeFunctionType(Ty);<br>-}<br>-<br>-const CGFunctionInfo &<br>-CodeGenABITypes::arrangeFreeFunctionType(CanQual<FunctionNoProtoType> Ty) {<br>- return CGM->getTypes().arrangeFreeFunctionType(Ty);<br>-}<br>-<br>-const CGFunctionInfo &<br>-CodeGenABITypes::arrangeCXXMethodType(const CXXRecordDecl *RD,<br>- const FunctionProtoType *FTP) {<br>- return CGM->getTypes().arrangeCXXMethodType(RD, FTP);<br>-}<br>-<br>-const CGFunctionInfo &<br>-CodeGenABITypes::arrangeFreeFunctionCall(CanQualType returnType,<br>- ArrayRef<CanQualType> argTypes,<br>- FunctionType::ExtInfo info,<br>- RequiredArgs args) {<br>- return CGM->getTypes().arrangeLLVMFunctionInfo(<br>- returnType, /*IsInstanceMethod=*/false, /*IsChainCall=*/false, argTypes,<br>- info, args);<br>-}<br></blockquote><br style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><span style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;float:none;display:inline!important">This code in CodeGenABITypes.cpp is not dead. It is intended to be used by external clients (so it appears to be dead = /) and is the only implementation of these methods for CodeGenABITypes. So if external clients try to use these methods, a linker error will result (defeating the purpose of providing this API).</span><br style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><br style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><span style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;float:none;display:inline!important">Can you revert just the changes in CodeGenABITypes.cpp?</span><br style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><br style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><span style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;float:none;display:inline!important">How did you determine that this was dead (maybe I can slap some sort of warning removal on it so it won't come up again or at least a large comment).</span><br style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"></div></blockquote><div><br></div></div></div><div style="word-wrap:break-word"><div><div>(I am happy to make the change as well. Forgot to add that).</div></div></div><div style="word-wrap:break-word"><div><div><br></div><div>Michael</div></div></div><div style="word-wrap:break-word"><div><br><blockquote type="cite"><div><br style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><span style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;float:none;display:inline!important">Thanks!</span><br style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><span style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;float:none;display:inline!important">Michael</span><br style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><br style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><blockquote type="cite" style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><br>Modified: cfe/trunk/lib/CodeGen/CodeGenFunction.h<br>URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenFunction.h?rev=250418&r1=250417&r2=250418&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenFunction.h?rev=250418&r1=250417&r2=250418&view=diff</a><br>==============================================================================<br>--- cfe/trunk/lib/CodeGen/CodeGenFunction.h (original)<br>+++ cfe/trunk/lib/CodeGen/CodeGenFunction.h Thu Oct 15 10:29:40 2015<br>@@ -250,10 +250,6 @@ public:<br> ~CGCapturedStmtRAII() { CGF.CapturedStmtInfo = PrevCapturedStmtInfo; }<br> };<br><br>- /// BoundsChecking - Emit run-time bounds checks. Higher values mean<br>- /// potentially higher performance penalties.<br>- unsigned char BoundsChecking;<br>-<br> /// \brief Sanitizers enabled for this function.<br> SanitizerSet SanOpts;<br><br>@@ -1237,8 +1233,6 @@ public:<br> void generateObjCSetterBody(const ObjCImplementationDecl *classImpl,<br> const ObjCPropertyImplDecl *propImpl,<br> llvm::Constant *AtomicHelperFn);<br>- bool IndirectObjCSetterArg(const CGFunctionInfo &FI);<br>- bool IvarTypeWithAggrGCObjects(QualType Ty);<br><br> //===--------------------------------------------------------------------===//<br> // Block Bits<br>@@ -1247,10 +1241,6 @@ public:<br> llvm::Value *EmitBlockLiteral(const BlockExpr *);<br> llvm::Value *EmitBlockLiteral(const CGBlockInfo &Info);<br> static void destroyBlockInfos(CGBlockInfo *info);<br>- llvm::Constant *BuildDescriptorBlockDecl(const BlockExpr *,<br>- const CGBlockInfo &Info,<br>- llvm::StructType *,<br>- llvm::Constant *BlockVarLayout);<br><br> llvm::Function *GenerateBlockFunction(GlobalDecl GD,<br> const CGBlockInfo &Info,<br>@@ -1276,9 +1266,6 @@ public:<br> llvm::Value *ptr);<br><br> Address LoadBlockStruct();<br>-<br>- void AllocateBlockCXXThisPointer(const CXXThisExpr *E);<br>- void AllocateBlockDecl(const DeclRefExpr *E);<br> Address GetAddrOfBlockDecl(const VarDecl *var, bool ByRef);<br><br> /// BuildBlockByrefAddress - Computes the location of the<br>@@ -1627,10 +1614,6 @@ public:<br> AggValueSlot::IsNotAliased);<br> }<br><br>- /// CreateInAllocaTmp - Create a temporary memory object for the given<br>- /// aggregate type.<br>- AggValueSlot CreateInAllocaTmp(QualType T, const Twine &Name = "inalloca");<br>-<br> /// Emit a cast to void* in the appropriate address space.<br> llvm::Value *EmitCastToVoidPtr(llvm::Value *value);<br><br>@@ -1711,10 +1694,6 @@ public:<br> QualType EltTy, bool isVolatile=false,<br> bool isAssignment = false);<br><br>- /// StartBlock - Start new block named N. If insert block is a dummy block<br>- /// then reuse it.<br>- void StartBlock(const char *N);<br>-<br> /// GetAddrOfLocalVar - Return the address of a local variable.<br> Address GetAddrOfLocalVar(const VarDecl *VD) {<br> auto it = LocalDeclMap.find(VD);<br>@@ -1811,14 +1790,6 @@ public:<br> return CXXStructorImplicitParamValue;<br> }<br><br>- /// LoadCXXStructorImplicitParam - Load the implicit parameter<br>- /// for a constructor/destructor.<br>- llvm::Value *LoadCXXStructorImplicitParam() {<br>- assert(CXXStructorImplicitParamValue &&<br>- "no implicit argument value for this function");<br>- return CXXStructorImplicitParamValue;<br>- }<br>-<br> /// GetAddressOfBaseOfCompleteClass - Convert the given pointer to a<br> /// complete class to the given direct base.<br> Address<br>@@ -2549,7 +2520,6 @@ public:<br> // Note: only available for agg return types<br> LValue EmitVAArgExprLValue(const VAArgExpr *E);<br> LValue EmitDeclRefLValue(const DeclRefExpr *E);<br>- LValue EmitReadRegister(const VarDecl *VD);<br> LValue EmitStringLiteralLValue(const StringLiteral *E);<br> LValue EmitObjCEncodeExprLValue(const ObjCEncodeExpr *E);<br> LValue EmitPredefinedLValue(const PredefinedExpr *E);<br>@@ -2677,8 +2647,6 @@ public:<br> llvm::CallSite EmitCallOrInvoke(llvm::Value *Callee,<br> ArrayRef<llvm::Value *> Args,<br> const Twine &Name = "");<br>- llvm::CallSite EmitCallOrInvoke(llvm::Value *Callee,<br>- const Twine &Name = "");<br> llvm::CallSite EmitRuntimeCallOrInvoke(llvm::Value *callee,<br> ArrayRef<llvm::Value*> args,<br> const Twine &name = "");<br>@@ -2765,8 +2733,6 @@ public:<br> bool negateForRightShift);<br> llvm::Value *EmitNeonRShiftImm(llvm::Value *Vec, llvm::Value *Amt,<br> llvm::Type *Ty, bool usgn, const char *name);<br>- // Helper functions for EmitAArch64BuiltinExpr.<br>- llvm::Value *vectorWrapScalar8(llvm::Value *Op);<br> llvm::Value *vectorWrapScalar16(llvm::Value *Op);<br> llvm::Value *EmitAArch64BuiltinExpr(unsigned BuiltinID, const CallExpr *E);<br><br>@@ -2800,7 +2766,6 @@ public:<br> // ARC primitives.<br> void EmitARCInitWeak(Address addr, llvm::Value *value);<br> void EmitARCDestroyWeak(Address addr);<br>- llvm::Value *EmitARCLoadWeak(Address addr);<br> llvm::Value *EmitARCLoadWeakRetained(Address addr);<br> llvm::Value *EmitARCStoreWeak(Address addr, llvm::Value *value, bool ignored);<br> void EmitARCCopyWeak(Address dst, Address src);<br>@@ -2827,8 +2792,6 @@ public:<br> EmitARCStoreStrong(const BinaryOperator *e, bool ignored);<br><br> llvm::Value *EmitObjCThrowOperand(const Expr *expr);<br>-<br>- llvm::Value *EmitObjCProduceObject(QualType T, llvm::Value *Ptr);<br> llvm::Value *EmitObjCConsumeObject(QualType T, llvm::Value *Ptr);<br> llvm::Value *EmitObjCExtendObjectLifetime(QualType T, llvm::Value *Ptr);<br><br>@@ -2881,11 +2844,6 @@ public:<br> /// aggregate type into a temporary LValue.<br> LValue EmitAggExprToLValue(const Expr *E);<br><br>- /// EmitGCMemmoveCollectable - Emit special API for structs with object<br>- /// pointers.<br>- void EmitGCMemmoveCollectable(llvm::Value *DestPtr, llvm::Value *SrcPtr,<br>- QualType Ty);<br>-<br> /// EmitExtendGCLifetime - Given a pointer to an Objective-C object,<br> /// make sure it survives garbage collection until this point.<br> void EmitExtendGCLifetime(llvm::Value *object);<br><br>Modified: cfe/trunk/lib/CodeGen/CodeGenModule.cpp<br>URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenModule.cpp?rev=250418&r1=250417&r2=250418&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenModule.cpp?rev=250418&r1=250417&r2=250418&view=diff</a><br>==============================================================================<br>--- cfe/trunk/lib/CodeGen/CodeGenModule.cpp (original)<br>+++ cfe/trunk/lib/CodeGen/CodeGenModule.cpp Thu Oct 15 10:29:40 2015<br>@@ -489,12 +489,6 @@ llvm::MDNode *CodeGenModule::getTBAAStru<br> return TBAA->getTBAAStructInfo(QTy);<br>}<br><br>-llvm::MDNode *CodeGenModule::getTBAAStructTypeInfo(QualType QTy) {<br>- if (!TBAA)<br>- return nullptr;<br>- return TBAA->getTBAAStructTypeInfo(QTy);<br>-}<br>-<br>llvm::MDNode *CodeGenModule::getTBAAStructTagInfo(QualType BaseTy,<br> llvm::MDNode *AccessN,<br> uint64_t O) {<br><br>Modified: cfe/trunk/lib/CodeGen/CodeGenModule.h<br>URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenModule.h?rev=250418&r1=250417&r2=250418&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenModule.h?rev=250418&r1=250417&r2=250418&view=diff</a><br>==============================================================================<br>--- cfe/trunk/lib/CodeGen/CodeGenModule.h (original)<br>+++ cfe/trunk/lib/CodeGen/CodeGenModule.h Thu Oct 15 10:29:40 2015<br>@@ -643,8 +643,6 @@ public:<br> llvm::MDNode *getTBAAInfo(QualType QTy);<br> llvm::MDNode *getTBAAInfoForVTablePtr();<br> llvm::MDNode *getTBAAStructInfo(QualType QTy);<br>- /// Return the MDNode in the type DAG for the given struct type.<br>- llvm::MDNode *getTBAAStructTypeInfo(QualType QTy);<br> /// Return the path-aware tag for given base type, access node and offset.<br> llvm::MDNode *getTBAAStructTagInfo(QualType BaseTy, llvm::MDNode *AccessN,<br> uint64_t O);<br>@@ -991,9 +989,6 @@ public:<br><br> void EmitVTable(CXXRecordDecl *Class);<br><br>- /// Emit the RTTI descriptors for the builtin types.<br>- void EmitFundamentalRTTIDescriptors();<br>-<br> /// \brief Appends Opts to the "Linker Options" metadata value.<br> void AppendLinkerOptions(StringRef Opts);<br><br>@@ -1073,13 +1068,6 @@ public:<br> /// are emitted lazily.<br> void EmitGlobal(GlobalDecl D);<br><br>- bool<br>- HasTrivialDestructorBody(ASTContext &Context,<br>- const CXXRecordDecl *BaseClassDecl,<br>- const CXXRecordDecl *MostDerivedClassDecl);<br>- bool<br>- FieldHasTrivialDestructorBody(ASTContext &Context, const FieldDecl *Field);<br>-<br> bool TryEmitDefinitionAsAlias(GlobalDecl Alias, GlobalDecl Target,<br> bool InEveryTU);<br> bool TryEmitBaseDestructorAsAlias(const CXXDestructorDecl *D);<br>@@ -1192,9 +1180,6 @@ private:<br> /// as a LLVM constructor or destructor array.<br> void EmitCtorList(const CtorList &Fns, const char *GlobalName);<br><br>- /// Emit the RTTI descriptors for the given type.<br>- void EmitFundamentalRTTIDescriptor(QualType Type);<br>-<br> /// Emit any needed decls for which code generation was deferred.<br> void EmitDeferred();<br><br><br>Modified: cfe/trunk/lib/CodeGen/CodeGenPGO.h<br>URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenPGO.h?rev=250418&r1=250417&r2=250418&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenPGO.h?rev=250418&r1=250417&r2=250418&view=diff</a><br>==============================================================================<br>--- cfe/trunk/lib/CodeGen/CodeGenPGO.h (original)<br>+++ cfe/trunk/lib/CodeGen/CodeGenPGO.h Thu Oct 15 10:29:40 2015<br>@@ -99,7 +99,6 @@ private:<br> llvm::Function *Fn);<br> void loadRegionCounts(llvm::IndexedInstrProfReader *PGOReader,<br> bool IsInMainFile);<br>- void emitCounterVariables();<br> void emitCounterRegionMapping(const Decl *D);<br><br>public:<br><br>Modified: cfe/trunk/lib/CodeGen/EHScopeStack.h<br>URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/EHScopeStack.h?rev=250418&r1=250417&r2=250418&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/EHScopeStack.h?rev=250418&r1=250417&r2=250418&view=diff</a><br>==============================================================================<br>--- cfe/trunk/lib/CodeGen/EHScopeStack.h (original)<br>+++ cfe/trunk/lib/CodeGen/EHScopeStack.h Thu Oct 15 10:29:40 2015<br>@@ -365,7 +365,6 @@ public:<br> return InnermostEHScope;<br> }<br><br>- stable_iterator getInnermostActiveEHScope() const;<br><br> /// An unstable reference to a scope-stack depth. Invalidated by<br> /// pushes but not pops.<br>@@ -396,9 +395,6 @@ public:<br> /// to the EH stack.<br> iterator find(stable_iterator save) const;<br><br>- /// Removes the cleanup pointed to by the given stable_iterator.<br>- void removeCleanup(stable_iterator save);<br>-<br> /// Add a branch fixup to the current cleanup scope.<br> BranchFixup &addBranchFixup() {<br> assert(hasNormalCleanups() && "adding fixup in scope without cleanups");<br><br>Modified: cfe/trunk/lib/CodeGen/MicrosoftCXXABI.cpp<br>URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/MicrosoftCXXABI.cpp?rev=250418&r1=250417&r2=250418&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/MicrosoftCXXABI.cpp?rev=250418&r1=250417&r2=250418&view=diff</a><br>==============================================================================<br>--- cfe/trunk/lib/CodeGen/MicrosoftCXXABI.cpp (original)<br>+++ cfe/trunk/lib/CodeGen/MicrosoftCXXABI.cpp Thu Oct 15 10:29:40 2015<br>@@ -46,7 +46,7 @@ public:<br> : CGCXXABI(CGM), BaseClassDescriptorType(nullptr),<br> ClassHierarchyDescriptorType(nullptr),<br> CompleteObjectLocatorType(nullptr), CatchableTypeType(nullptr),<br>- ThrowInfoType(nullptr), CatchHandlerTypeType(nullptr) {}<br>+ ThrowInfoType(nullptr) {}<br><br> bool HasThisReturn(GlobalDecl GD) const override;<br> bool hasMostDerivedReturn(GlobalDecl GD) const override;<br>@@ -534,14 +534,6 @@ private:<br> return llvm::Constant::getAllOnesValue(CGM.IntTy);<br> }<br><br>- llvm::Constant *getConstantOrZeroInt(llvm::Constant *C) {<br>- return C ? C : getZeroInt();<br>- }<br>-<br>- llvm::Value *getValueOrZeroInt(llvm::Value *C) {<br>- return C ? C : getZeroInt();<br>- }<br>-<br> CharUnits getVirtualFunctionPrologueThisAdjustment(GlobalDecl GD);<br><br> void<br>@@ -659,18 +651,6 @@ public:<br><br> void emitCXXStructor(const CXXMethodDecl *MD, StructorType Type) override;<br><br>- llvm::StructType *getCatchHandlerTypeType() {<br>- if (!CatchHandlerTypeType) {<br>- llvm::Type *FieldTypes[] = {<br>- CGM.IntTy, // Flags<br>- CGM.Int8PtrTy, // TypeDescriptor<br>- };<br>- CatchHandlerTypeType = llvm::StructType::create(<br>- CGM.getLLVMContext(), FieldTypes, "eh.CatchHandlerType");<br>- }<br>- return CatchHandlerTypeType;<br>- }<br>-<br> llvm::StructType *getCatchableTypeType() {<br> if (CatchableTypeType)<br> return CatchableTypeType;<br>@@ -786,7 +766,6 @@ private:<br> llvm::StructType *CatchableTypeType;<br> llvm::DenseMap<uint32_t, llvm::StructType *> CatchableTypeArrayTypeMap;<br> llvm::StructType *ThrowInfoType;<br>- llvm::StructType *CatchHandlerTypeType;<br>};<br><br>}<br><br><br>_______________________________________________<br>cfe-commits mailing list<br><a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a><br><a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits</a><br></blockquote><br style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><span style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;float:none;display:inline!important">_______________________________________________</span><br style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><span style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;float:none;display:inline!important">cfe-commits mailing list</span><br style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><a href="mailto:cfe-commits@lists.llvm.org" style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" target="_blank">cfe-commits@lists.llvm.org</a><br style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits</a></div></blockquote></div></div>_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits</a><br>
</blockquote></div>