diff options
author | Eli Friedman <eli.friedman@gmail.com> | 2008-06-01 16:00:02 +0000 |
---|---|---|
committer | Eli Friedman <eli.friedman@gmail.com> | 2008-06-01 16:00:02 +0000 |
commit | 1b8956e1ce4c5770982d6e59edb16979b500677a (patch) | |
tree | 059b0f293f48eec6215360c0c63330be2916a918 /lib/CodeGen/CGObjCGNU.cpp | |
parent | ff4a2d9e2c1ddbf87e00e2a36ae341faf03eafb3 (diff) |
Don't name the ObjC types if there aren't any ObjC objects in the file.
Patch by David Chisnall.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51840 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/CGObjCGNU.cpp')
-rw-r--r-- | lib/CodeGen/CGObjCGNU.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/CodeGen/CGObjCGNU.cpp b/lib/CodeGen/CGObjCGNU.cpp index 31ca523807..78e02e409a 100644 --- a/lib/CodeGen/CGObjCGNU.cpp +++ b/lib/CodeGen/CGObjCGNU.cpp @@ -183,7 +183,6 @@ CGObjCGNU::CGObjCGNU(llvm::Module &M, PtrToInt8Ty, NULL); SelectorTy = llvm::PointerType::getUnqual(SelStructTy); - M.addTypeName(".objc_selector", SelectorTy); PtrToIntTy = llvm::PointerType::getUnqual(IntTy); PtrTy = PtrToInt8Ty; @@ -194,14 +193,12 @@ CGObjCGNU::CGObjCGNU(llvm::Module &M, llvm::cast<llvm::OpaqueType>(OpaqueObjTy.get())->refineAbstractTypeTo(IdTy); IdTy = llvm::cast<llvm::StructType>(OpaqueObjTy.get()); IdTy = llvm::PointerType::getUnqual(IdTy); - M.addTypeName(".objc_id", IdTy); // IMP type std::vector<const llvm::Type*> IMPArgs; IMPArgs.push_back(IdTy); IMPArgs.push_back(SelectorTy); IMPTy = llvm::FunctionType::get(IdTy, IMPArgs, true); - M.addTypeName(".objc_imp", IMPTy); } // This has to perform the lookup every time, since posing and related // techniques can modify the name -> class mapping. @@ -734,7 +731,12 @@ llvm::Function *CGObjCGNU::ModuleInitFunction() { ExistingProtocols.empty() && TypedSelectors.empty() && UntypedSelectors.empty()) return NULL; - + + // Name the ObjC types to make the IR a bit easier to read + TheModule.addTypeName(".objc_selector", SelectorTy); + TheModule.addTypeName(".objc_id", IdTy); + TheModule.addTypeName(".objc_imp", IMPTy); + std::vector<llvm::Constant*> Elements; // Generate statics list: llvm::ArrayType *StaticsArrayTy = llvm::ArrayType::get(PtrToInt8Ty, |