Reinstate r133513 (reverted in r133700) with an additional fix for a
[oota-llvm.git] / include / llvm / Support / PassManagerBuilder.h
index fdbcc8fa41a68d71fd44b89f63d8176225a9329d..31624db8139b82c22e0111b7f30e70ffe6dc62fc 100644 (file)
@@ -1,4 +1,4 @@
-//===-- llvm/Support/PasaMangerBuilder.h - Build Standard Pass --*- C++ -*-===//
+//===-- llvm/Support/PassManagerBuilder.h - Build Standard Pass -*- C++ -*-===//
 //
 //                     The LLVM Compiler Infrastructure
 //
@@ -32,8 +32,8 @@ namespace llvm {
 /// sequence for languages like C and C++, allowing some APIs to customize the
 /// pass sequence in various ways. A simple example of using it would be:
 ///
-///  OptimizerBuilder Builder;
-///  Builder.setOptimizationLevel(2);
+///  PassManagerBuilder Builder;
+///  Builder.OptLevel = 2;
 ///  Builder.populateFunctionPassManager(FPM);
 ///  Builder.populateModulePassManager(MPM);
 ///
@@ -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.