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
PM.add(createVerifierPass()); // Verify that input is correct
addPass(PM, createLowerSetJmpPass()); // Lower llvm.setjmp/.longjmp
addPass(PM, createFunctionResolvingPass()); // Resolve (...) functions
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, 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, 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
addPass(PM, createPruneEHPass()); // Remove dead EH info