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, createIPConstantPropagationPass());// IP Constant Propagation
+ addPass(PM, createDeadArgEliminationPass()); // Dead argument elimination
+
addPass(PM, createPruneEHPass()); // Remove dead EH info
if (!DisableInline)
Passes.add(createInternalizePass());
}
+ // Propagate constants at call sites into the functions they call.
+ Passes.add(createIPConstantPropagationPass());
+
// Remove unused arguments from functions...
Passes.add(createDeadArgEliminationPass());