use of org.jikesrvm.compilers.opt.controlflow.ReorderingPhase in project JikesRVM by JikesRVM.
the class OptimizationPlanner method LIROptimizations.
/**
* This method defines the optimization plan elements that
* are to be performed on the LIR.
*
* @param p the plan under construction
*/
private static void LIROptimizations(ArrayList<OptimizationPlanElement> p) {
// SSA meta-phase
SSAinLIR(p);
// Perform local copy propagation for a factored basic block.
addComponent(p, new LocalCopyProp());
// Perform local constant propagation for a factored basic block.
addComponent(p, new LocalConstantProp());
// Perform local common-subexpression elimination for a factored basic block.
addComponent(p, new LocalCSE(false));
// Simple flow-insensitive optimizations
addComponent(p, new Simple(0, false, false, false, VM.BuildForIA32));
// Use the LST to estimate basic block frequency
addComponent(p, new OptimizationPlanCompositeElement("Basic Block Frequency Estimation", new Object[] { new BuildLST(), new EstimateBlockFrequencies() }));
// Perform basic block reordering
addComponent(p, new ReorderingPhase());
// Perform peephole branch optimizations
addComponent(p, new BranchOptimizations(0, false, true));
if (VM.BuildForAdaptiveSystem) {
// Arnold & Ryder instrumentation sampling framework
addComponent(p, new InstrumentationSamplingFramework());
// Convert high level place holder instructions into actual instrumentation
addComponent(p, new LowerInstrumentation());
}
}
Aggregations