summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/BackendUtil.cpp
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2012-01-17 20:54:51 +0000
committerDan Gohman <gohman@apple.com>2012-01-17 20:54:51 +0000
commit5932ce257f21d1d168d5ff84d26c776b16ecc988 (patch)
tree020f7601acc2ee7a6c0cc4486a7aee7d797f8e7f /clang/lib/CodeGen/BackendUtil.cpp
parente7a243fea557a871f06127362249bcc9e0b3ad20 (diff)
downloadbcm5719-llvm-5932ce257f21d1d168d5ff84d26c776b16ecc988.tar.gz
bcm5719-llvm-5932ce257f21d1d168d5ff84d26c776b16ecc988.zip
Enable the new ObjC ARC autorelease pool elimination pass.
llvm-svn: 148331
Diffstat (limited to 'clang/lib/CodeGen/BackendUtil.cpp')
-rw-r--r--clang/lib/CodeGen/BackendUtil.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/BackendUtil.cpp b/clang/lib/CodeGen/BackendUtil.cpp
index 5ef72d486e5..d5350f5031a 100644
--- a/clang/lib/CodeGen/BackendUtil.cpp
+++ b/clang/lib/CodeGen/BackendUtil.cpp
@@ -106,6 +106,11 @@ public:
}
+static void addObjCARCAPElimPass(const PassManagerBuilder &Builder, PassManagerBase &PM) {
+ if (Builder.OptLevel > 0)
+ PM.add(createObjCARCAPElimPass());
+}
+
static void addObjCARCExpandPass(const PassManagerBuilder &Builder, PassManagerBase &PM) {
if (Builder.OptLevel > 0)
PM.add(createObjCARCExpandPass());
@@ -144,6 +149,8 @@ void EmitAssemblyHelper::CreatePasses() {
if (LangOpts.ObjCAutoRefCount) {
PMBuilder.addExtension(PassManagerBuilder::EP_EarlyAsPossible,
addObjCARCExpandPass);
+ PMBuilder.addExtension(PassManagerBuilder::EP_ModuleOptimizerEarly,
+ addObjCARCAPElimPass);
PMBuilder.addExtension(PassManagerBuilder::EP_ScalarOptimizerLate,
addObjCARCOptPass);
}
OpenPOWER on IntegriCloud