Search in sources :

Example 1 with ExpandFPRStackConvention

use of org.jikesrvm.compilers.opt.regalloc.ia32.ExpandFPRStackConvention in project JikesRVM by JikesRVM.

the class MIROptimizationPlanner method MIROptimizations.

/**
 * This method defines the optimization plan elements that
 * are to be performed on IA32 MIR.
 *
 * @param p the plan under construction
 */
private static void MIROptimizations(ArrayList<OptimizationPlanElement> p) {
    // Register Allocation
    composeComponents(p, "Register Mapping", new Object[] { new RewriteMemoryOperandsWithOversizedDisplacements(), new MIRSplitRanges(), // MANDATORY: Expand calling convention
    new ExpandCallingConvention(), // MANDATORY: Insert defs/uses due to floating-point stack
    new ExpandFPRStackConvention(), // MANDATORY: Perform Live analysis and create GC maps
    new LiveAnalysis(true, false), // MANDATORY: Perform register allocation
    new RegisterAllocator(), // MANDATORY: Add prologue and epilogue
    new PrologueEpilogueCreator() });
    // Peephole branch optimizations
    addComponent(p, new MIRBranchOptimizations(1));
}
Also used : RegisterAllocator(org.jikesrvm.compilers.opt.regalloc.RegisterAllocator) PrologueEpilogueCreator(org.jikesrvm.compilers.opt.regalloc.PrologueEpilogueCreator) RewriteMemoryOperandsWithOversizedDisplacements(org.jikesrvm.compilers.opt.regalloc.ia32.RewriteMemoryOperandsWithOversizedDisplacements) LiveAnalysis(org.jikesrvm.compilers.opt.liveness.LiveAnalysis) MIRBranchOptimizations(org.jikesrvm.compilers.opt.controlflow.MIRBranchOptimizations) ExpandCallingConvention(org.jikesrvm.compilers.opt.regalloc.ExpandCallingConvention) ExpandFPRStackConvention(org.jikesrvm.compilers.opt.regalloc.ia32.ExpandFPRStackConvention) MIRSplitRanges(org.jikesrvm.compilers.opt.regalloc.ia32.MIRSplitRanges)

Aggregations

MIRBranchOptimizations (org.jikesrvm.compilers.opt.controlflow.MIRBranchOptimizations)1 LiveAnalysis (org.jikesrvm.compilers.opt.liveness.LiveAnalysis)1 ExpandCallingConvention (org.jikesrvm.compilers.opt.regalloc.ExpandCallingConvention)1 PrologueEpilogueCreator (org.jikesrvm.compilers.opt.regalloc.PrologueEpilogueCreator)1 RegisterAllocator (org.jikesrvm.compilers.opt.regalloc.RegisterAllocator)1 ExpandFPRStackConvention (org.jikesrvm.compilers.opt.regalloc.ia32.ExpandFPRStackConvention)1 MIRSplitRanges (org.jikesrvm.compilers.opt.regalloc.ia32.MIRSplitRanges)1 RewriteMemoryOperandsWithOversizedDisplacements (org.jikesrvm.compilers.opt.regalloc.ia32.RewriteMemoryOperandsWithOversizedDisplacements)1