From 412c66839e0a293670be1a307140eadff889b150 Mon Sep 17 00:00:00 2001 From: Eli Friedman Date: Sun, 1 Jun 2008 16:00:02 +0000 Subject: Don't name the ObjC types if there aren't any ObjC objects in the file. Patch by David Chisnall. llvm-svn: 51840 --- clang/lib/CodeGen/CGObjCGNU.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'clang/lib/CodeGen/CGObjCGNU.cpp') diff --git a/clang/lib/CodeGen/CGObjCGNU.cpp b/clang/lib/CodeGen/CGObjCGNU.cpp index 31ca5238071..78e02e409a5 100644 --- a/clang/lib/CodeGen/CGObjCGNU.cpp +++ b/clang/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(OpaqueObjTy.get())->refineAbstractTypeTo(IdTy); IdTy = llvm::cast(OpaqueObjTy.get()); IdTy = llvm::PointerType::getUnqual(IdTy); - M.addTypeName(".objc_id", IdTy); // IMP type std::vector 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 Elements; // Generate statics list: llvm::ArrayType *StaticsArrayTy = llvm::ArrayType::get(PtrToInt8Ty, -- cgit v1.2.3