addPass(Passes, createGlobalsModRefPass()); // IP alias analysis
addPass(Passes, createLICMPass()); // Hoist loop invariants
- addPass(Passes, createLoadValueNumberingPass()); // GVN for load instrs
- addPass(Passes, createGCSEPass()); // Remove common subexprs
+ addPass(Passes, createGVNPass()); // Remove redundancies
addPass(Passes, createDeadStoreEliminationPass()); // Nuke dead stores
// Cleanup and simplify the code after the scalar optimizations.
addPass(PM, createIndVarSimplifyPass()); // Canonicalize indvars
addPass(PM, createLoopUnrollPass()); // Unroll small loops
addPass(PM, createInstructionCombiningPass()); // Clean up after the unroller
- addPass(PM, createLoadValueNumberingPass()); // GVN for load instructions
- addPass(PM, createGCSEPass()); // Remove common subexprs
+ addPass(PM, createGVNPass()); // Remove redundancies
addPass(PM, createSCCPPass()); // Constant prop with SCCP
// Run instcombine after redundancy elimination to exploit opportunities