The ARC language-specific optimizer. Credit to Dan Gohman.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133108 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
John McCall
2011-06-15 23:37:01 +00:00
parent 5f36bb1759
commit 9fbd318d36
28 changed files with 6947 additions and 0 deletions

View File

@@ -188,6 +188,7 @@ 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
@@ -223,6 +224,7 @@ public:
MPM.add(createJumpThreadingPass()); // Thread jumps
MPM.add(createCorrelatedValuePropagationPass());
MPM.add(createDeadStoreEliminationPass()); // Delete dead stores
MPM.add(createObjCARCOptPass()); // Objective-C ARC optimizations.
MPM.add(createAggressiveDCEPass()); // Delete dead instructions
MPM.add(createCFGSimplificationPass()); // Merge & remove BBs
MPM.add(createInstructionCombiningPass()); // Clean up after everything.