summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2011-07-05 22:01:44 +0000
committerDan Gohman <gohman@apple.com>2011-07-05 22:01:44 +0000
commit9c04b5bd282bd5d03ab2114339d670ca95073664 (patch)
tree36f823f688018a3dd1ffbcecc65553be3a4de497
parentc5ecbdc1896f1cc089372feef3191ace2f840898 (diff)
downloadllvm-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.h12
-rw-r--r--lib/CodeGen/LLVMTargetMachine.cpp4
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()));