org.jikesrvm.compilers.opt.driver
Class CompilationPlan

java.lang.Object
  extended by org.jikesrvm.compilers.opt.driver.CompilationPlan

public final class CompilationPlan
extends Object


Field Summary
 boolean analyzeOnly
          Whether this compilation is for analysis only?
 InlineOracle inlinePlan
          The oracle to be consulted for all inlining decisions.
 InstrumentationPlan instrumentationPlan
          The instrumentation plan for the method.
 boolean irGeneration
           
 NormalMethod method
          The method to be compiled.
 OptimizationPlanElement[] optimizationPlan
          The OptimizationPlanElements to be invoked during compilation.
 OptOptions options
          The Options object that contains misc compilation control data
 TypeReference[] params
          The specialized parameters to use in place of those defined in method.
 
Constructor Summary
CompilationPlan(NormalMethod m, OptimizationPlanElement[] op, InstrumentationPlan mp, OptOptions opts)
          Construct a compilation plan
CompilationPlan(NormalMethod m, OptimizationPlanElement op, InstrumentationPlan mp, OptOptions opts)
          Construct a compilation plan
CompilationPlan(NormalMethod m, TypeReference[] pms, OptimizationPlanElement[] op, InstrumentationPlan mp, OptOptions opts)
          Construct a compilation plan
 
Method Summary
 IR execute()
          Execute a compilation plan by executing each element in the optimization plan.
 NormalMethod getMethod()
           
 void setInlineOracle(InlineOracle o)
          Set the inline oracle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

method

public final NormalMethod method
The method to be compiled.


params

public final TypeReference[] params
The specialized parameters to use in place of those defined in method.


optimizationPlan

public final OptimizationPlanElement[] optimizationPlan
The OptimizationPlanElements to be invoked during compilation.


instrumentationPlan

public final InstrumentationPlan instrumentationPlan
The instrumentation plan for the method.


inlinePlan

public InlineOracle inlinePlan
The oracle to be consulted for all inlining decisions.


options

public final OptOptions options
The Options object that contains misc compilation control data


analyzeOnly

public boolean analyzeOnly
Whether this compilation is for analysis only?


irGeneration

public boolean irGeneration
Constructor Detail

CompilationPlan

public CompilationPlan(NormalMethod m,
                       TypeReference[] pms,
                       OptimizationPlanElement[] op,
                       InstrumentationPlan mp,
                       OptOptions opts)
Construct a compilation plan

Parameters:
m - The NormalMethod representing the source method to be compiled
pms - The specialized parameters to use in place of those defined in method
op - The optimization plan to be executed on m
mp - The instrumentation plan to be executed on m
opts - The Options to be used for compiling m

CompilationPlan

public CompilationPlan(NormalMethod m,
                       OptimizationPlanElement[] op,
                       InstrumentationPlan mp,
                       OptOptions opts)
Construct a compilation plan

Parameters:
m - The NormalMethod representing the source method to be compiled
op - The optimization plan to be executed on m
mp - The instrumentation plan to be executed on m
opts - The Options to be used for compiling m

CompilationPlan

public CompilationPlan(NormalMethod m,
                       OptimizationPlanElement op,
                       InstrumentationPlan mp,
                       OptOptions opts)
Construct a compilation plan

Parameters:
m - The NormalMethod representing the source method to be compiled
op - A single optimization pass to execute on m
mp - The instrumentation plan to be executed on m
opts - The Options to be used for compiling m
Method Detail

getMethod

public NormalMethod getMethod()

setInlineOracle

public void setInlineOracle(InlineOracle o)
Set the inline oracle


execute

public IR execute()
Execute a compilation plan by executing each element in the optimization plan.