]> granicus.if.org Git - clang/commitdiff
Enable the new ObjC ARC autorelease pool elimination pass.
authorDan Gohman <gohman@apple.com>
Tue, 17 Jan 2012 20:54:51 +0000 (20:54 +0000)
committerDan Gohman <gohman@apple.com>
Tue, 17 Jan 2012 20:54:51 +0000 (20:54 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148331 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/BackendUtil.cpp

index 5ef72d486e57d5eb2e24fa2086ca308b513ee75c..d5350f5031a041b4be144b7d8ea0597c52e5d5cc 100644 (file)
@@ -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);
   }