summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEli Friedman <eli.friedman@gmail.com>2008-06-01 16:00:02 +0000
committerEli Friedman <eli.friedman@gmail.com>2008-06-01 16:00:02 +0000
commit412c66839e0a293670be1a307140eadff889b150 (patch)
tree970dcb1f4b5fc357629864d8d2b5de67e2c43f9a
parentf6b091f73a0e841fda5d5eb2214a7fa563ca8a2b (diff)
downloadbcm5719-llvm-412c66839e0a293670be1a307140eadff889b150.tar.gz
bcm5719-llvm-412c66839e0a293670be1a307140eadff889b150.zip
Don't name the ObjC types if there aren't any ObjC objects in the file.
Patch by David Chisnall. llvm-svn: 51840
-rw-r--r--clang/lib/CodeGen/CGObjCGNU.cpp10
1 files changed, 6 insertions, 4 deletions
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<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,
OpenPOWER on IntegriCloud