Early CFG simplification can fold conditionals down to selects, which is often a...
[oota-llvm.git] / include / llvm / Support / StandardPasses.h
index bb3bddd3c7993aa2d2c6e78fc8d1cf0875f59157..6e76426b2057cb6647c44e7810d3a46b3b364fd6 100644 (file)
@@ -104,6 +104,7 @@ namespace llvm {
       PM->add(createDeadArgEliminationPass());  // Dead argument elimination
     }
     PM->add(createInstructionCombiningPass());  // Clean up after IPCP & DAE
+    PM->add(createJumpThreadingPass());         // Clean up after IPCP & DAE
     PM->add(createCFGSimplificationPass());     // Clean up after IPCP & DAE
     
     // Start of CallGraph SCC passes.
@@ -122,6 +123,7 @@ namespace llvm {
       PM->add(createSimplifyLibCallsPass());    // Library Call Optimizations
     PM->add(createInstructionCombiningPass());  // Cleanup for scalarrepl.
     PM->add(createJumpThreadingPass());         // Thread jumps.
+    PM->add(createCorrelatedValuePropagationPass()); // Propagate conditionals
     PM->add(createCFGSimplificationPass());     // Merge & remove BBs
     PM->add(createInstructionCombiningPass());  // Combine silly seq's