Reorder passes a bit. In particular, it makes sense to run globaldce IMMEDIATELY...
authorChris Lattner <sabre@nondot.org>
Fri, 21 Nov 2003 21:44:35 +0000 (21:44 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 21 Nov 2003 21:44:35 +0000 (21:44 +0000)
Run instcombine and simplify cfg after this to cleanup the intraprocedural messes we create.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10134 91177308-0d34-0410-b5e6-96231b3b80d8

tools/gccas/gccas.cpp

index 0ed58b97db5365e1a7919da1d73776507780bf84..7d44d00a55b9e25ffc07207a09218bffe656d0bd 100644 (file)
@@ -58,11 +58,13 @@ void AddConfiguredTransformationPasses(PassManager &PM) {
   PM.add(createVerifierPass());                  // Verify that input is correct
   addPass(PM, createLowerSetJmpPass());          // Lower llvm.setjmp/.longjmp
   addPass(PM, createFunctionResolvingPass());    // Resolve (...) functions
-  addPass(PM, createCFGSimplificationPass());    // Clean up disgusting code
-  addPass(PM, createRaiseAllocationsPass());     // call %malloc -> malloc inst
   addPass(PM, createGlobalDCEPass());            // Remove unused globals
+  addPass(PM, createRaiseAllocationsPass());     // call %malloc -> malloc inst
+  addPass(PM, createPromoteMemoryToRegister());  // "Construct SSA form"
   addPass(PM, createIPConstantPropagationPass());// IP Constant Propagation
   addPass(PM, createDeadArgEliminationPass());   // Dead argument elimination
+  addPass(PM, createInstructionCombiningPass()); // Cleanup after IPCP & DAE
+  addPass(PM, createCFGSimplificationPass());    // Clean up disgusting code
 
   addPass(PM, createPruneEHPass());              // Remove dead EH info