diff options
author | Dan Gohman <gohman@apple.com> | 2011-07-05 22:01:44 +0000 |
---|---|---|
committer | Dan Gohman <gohman@apple.com> | 2011-07-05 22:01:44 +0000 |
commit | 9c04b5bd282bd5d03ab2114339d670ca95073664 (patch) | |
tree | 36f823f688018a3dd1ffbcecc65553be3a4de497 | |
parent | c5ecbdc1896f1cc089372feef3191ace2f840898 (diff) | |
download | llvm-9c04b5bd282bd5d03ab2114339d670ca95073664.tar.gz llvm-9c04b5bd282bd5d03ab2114339d670ca95073664.tar.bz2 llvm-9c04b5bd282bd5d03ab2114339d670ca95073664.tar.xz |
Remove the ObjC ARC passes from the default optimization list, and add
extension points to be used by clang.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134444 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/Support/PassManagerBuilder.h | 12 | ||||
-rw-r--r-- | lib/CodeGen/LLVMTargetMachine.cpp | 4 |
2 files changed, 9 insertions, 7 deletions
diff --git a/include/llvm/Support/PassManagerBuilder.h b/include/llvm/Support/PassManagerBuilder.h index 31624db813..8ac507f8bc 100644 --- a/include/llvm/Support/PassManagerBuilder.h +++ b/include/llvm/Support/PassManagerBuilder.h @@ -67,7 +67,12 @@ public: /// 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 @@ public: 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 @@ public: 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. diff --git a/lib/CodeGen/LLVMTargetMachine.cpp b/lib/CodeGen/LLVMTargetMachine.cpp index 0255b28a49..b1033312ca 100644 --- a/lib/CodeGen/LLVMTargetMachine.cpp +++ b/lib/CodeGen/LLVMTargetMachine.cpp @@ -303,10 +303,6 @@ bool LLVMTargetMachine::addCommonCodeGenPasses(PassManagerBase &PM, 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())); |