[llvm-commits] [llvm] r134444 - in /llvm/trunk: include/llvm/Support/PassManagerBuilder.h lib/CodeGen/LLVMTargetMachine.cpp

Dan Gohman gohman at apple.com
Tue Jul 5 15:01:44 PDT 2011


Author: djg
Date: Tue Jul  5 17:01:44 2011
New Revision: 134444

URL: http://llvm.org/viewvc/llvm-project?rev=134444&view=rev
Log:
Remove the ObjC ARC passes from the default optimization list, and add
extension points to be used by clang.

Modified:
    llvm/trunk/include/llvm/Support/PassManagerBuilder.h
    llvm/trunk/lib/CodeGen/LLVMTargetMachine.cpp

Modified: llvm/trunk/include/llvm/Support/PassManagerBuilder.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/PassManagerBuilder.h?rev=134444&r1=134443&r2=134444&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Support/PassManagerBuilder.h (original)
+++ llvm/trunk/include/llvm/Support/PassManagerBuilder.h Tue Jul  5 17:01:44 2011
@@ -67,7 +67,12 @@
     
     /// EP_LoopOptimizerEnd - This extension point allows adding loop passes to
     /// the end of the loop optimizer.
-    EP_LoopOptimizerEnd
+    EP_LoopOptimizerEnd,
+
+    /// EP_ScalarOptimizerLate - This extension point allows adding optimization
+    /// passes after most of the main optimizations, but before the last
+    /// cleanup-ish optimizations.
+    EP_ScalarOptimizerLate
   };
   
   /// The Optimization Level - Specify the basic optimization level.
@@ -188,7 +193,6 @@
       MPM.add(createArgumentPromotionPass());   // Scalarize uninlined fn args
     
     // Start of function pass.
-    MPM.add(createObjCARCExpandPass());         // Canonicalize ObjC ARC code.
     // Break up aggregate allocas, using SSAUpdater.
     MPM.add(createScalarReplAggregatesPass(-1, false));
     MPM.add(createEarlyCSEPass());              // Catch trivial redundancies
@@ -224,7 +228,9 @@
     MPM.add(createJumpThreadingPass());         // Thread jumps
     MPM.add(createCorrelatedValuePropagationPass());
     MPM.add(createDeadStoreEliminationPass());  // Delete dead stores
-    MPM.add(createObjCARCOptPass());            // Objective-C ARC optimizations.
+
+    addExtensionsToPM(EP_ScalarOptimizerLate, MPM);
+
     MPM.add(createAggressiveDCEPass());         // Delete dead instructions
     MPM.add(createCFGSimplificationPass());     // Merge & remove BBs
     MPM.add(createInstructionCombiningPass());  // Clean up after everything.

Modified: llvm/trunk/lib/CodeGen/LLVMTargetMachine.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/LLVMTargetMachine.cpp?rev=134444&r1=134443&r2=134444&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/LLVMTargetMachine.cpp (original)
+++ llvm/trunk/lib/CodeGen/LLVMTargetMachine.cpp Tue Jul  5 17:01:44 2011
@@ -303,10 +303,6 @@
   if (!DisableVerify)
     PM.add(createVerifierPass());
 
-  // Simplify ObjC ARC code. This is done late because it makes re-optimization
-  // difficult.
-  PM.add(createObjCARCContractPass());
-
   // Run loop strength reduction before anything else.
   if (OptLevel != CodeGenOpt::None && !DisableLSR) {
     PM.add(createLoopStrengthReducePass(getTargetLowering()));





More information about the llvm-commits mailing list