org.jikesrvm.compilers.opt.inlining
Class CompilationState

java.lang.Object
  extended by org.jikesrvm.compilers.opt.inlining.CompilationState

public final class CompilationState
extends Object

This class holds miscellaneous information regarding the state of a compilation


Field Summary
private  Instruction call
           
private  CompiledMethod cm
           
private  boolean isExtant
           
private  OptOptions options
           
private  int realBCI
           
 
Constructor Summary
CompilationState(Instruction call, boolean isExtant, OptOptions options, CompiledMethod cm, int realBCI)
           
 
Method Summary
 Instruction getCallInstruction()
          Return the call instruction being considered for inlining
 CompiledMethod getCompiledMethod()
          Return the compiled method
 boolean getHasPreciseTarget()
          Return whether or not the target is precise (ie needs no guard)
 int getInlineDepth()
          Return the depth of inlining so far.
 boolean getIsExtant()
          Return whether or not the receiving object is extant
 NormalMethod getMethod()
          Return the method being compiled
 OptOptions getOptions()
          Return the controlling compiler options
 int getRealBytecodeIndex()
          Return the real bytecode index associated with this call
 NormalMethod getRootMethod()
          Return the root method of the compilation
 InlineSequence getSequence()
          Return the inlining sequence
 boolean isInvokeInterface()
          Does this state represent an invokeinterface call?
 RVMMethod obtainTarget()
          Obtain the target method from the compilation state.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

call

private final Instruction call

isExtant

private final boolean isExtant

options

private final OptOptions options

cm

private final CompiledMethod cm

realBCI

private final int realBCI
Constructor Detail

CompilationState

public CompilationState(Instruction call,
                        boolean isExtant,
                        OptOptions options,
                        CompiledMethod cm,
                        int realBCI)
Parameters:
call - the call instruction being considered for inlining.
isExtant - is the receiver of a virtual call an extant object?
options - controlling compiler options
cm - compiled method of the IR object being compiled
realBCI - the real bytecode index of the call instruction, not adjusted because of OSR
Method Detail

isInvokeInterface

public boolean isInvokeInterface()
Does this state represent an invokeinterface call?

Returns:
true if it is an interface call or false if it is not.

getInlineDepth

public int getInlineDepth()
Return the depth of inlining so far.


getCallInstruction

public Instruction getCallInstruction()
Return the call instruction being considered for inlining


obtainTarget

public RVMMethod obtainTarget()
Obtain the target method from the compilation state. If a computed target is present, use it.


getOptions

public OptOptions getOptions()
Return the controlling compiler options


getIsExtant

public boolean getIsExtant()
Return whether or not the receiving object is extant


getHasPreciseTarget

public boolean getHasPreciseTarget()
Return whether or not the target is precise (ie needs no guard)


getRootMethod

public NormalMethod getRootMethod()
Return the root method of the compilation


getMethod

public NormalMethod getMethod()
Return the method being compiled


getRealBytecodeIndex

public int getRealBytecodeIndex()
Return the real bytecode index associated with this call


getSequence

public InlineSequence getSequence()
Return the inlining sequence


getCompiledMethod

public CompiledMethod getCompiledMethod()
Return the compiled method