public class LIRFrameState extends Object
Modifier and Type | Field and Description |
---|---|
protected DebugInfo |
debugInfo |
LabelRef |
exceptionEdge |
private IndexedValueMap |
liveBasePointers |
protected static EnumSet<LIRInstruction.OperandFlag> |
STATE_FLAGS
We filter out constant and illegal values ourself before calling the procedure, so
LIRInstruction.OperandFlag.CONST and LIRInstruction.OperandFlag.ILLEGAL need not be set. |
BytecodeFrame |
topFrame |
private VirtualObject[] |
virtualObjects |
Constructor and Description |
---|
LIRFrameState(BytecodeFrame topFrame,
VirtualObject[] virtualObjects,
LabelRef exceptionEdge) |
Modifier and Type | Method and Description |
---|---|
DebugInfo |
debugInfo() |
void |
forEachState(LIRInstruction inst,
InstructionValueConsumer proc)
Iterates the frame state and calls the
InstructionValueProcedure for every variable. |
void |
forEachState(LIRInstruction inst,
InstructionValueProcedure proc)
Iterates the frame state and calls the
InstructionValueProcedure for every variable. |
IndexedValueMap |
getLiveBasePointers() |
boolean |
hasDebugInfo() |
void |
initDebugInfo(FrameMap frameMap,
boolean canHaveRegisters)
Called by the register allocator to initialize the frame state.
|
protected void |
processValues(LIRInstruction inst,
Value[] values,
InstructionValueConsumer proc) |
protected void |
processValues(LIRInstruction inst,
Value[] values,
InstructionValueProcedure proc) |
void |
setLiveBasePointers(IndexedValueMap liveBasePointers) |
String |
toString() |
private boolean |
unprocessed(Value value) |
public final BytecodeFrame topFrame
private final VirtualObject[] virtualObjects
public final LabelRef exceptionEdge
private IndexedValueMap liveBasePointers
protected static final EnumSet<LIRInstruction.OperandFlag> STATE_FLAGS
LIRInstruction.OperandFlag.CONST
and LIRInstruction.OperandFlag.ILLEGAL
need not be set.public LIRFrameState(BytecodeFrame topFrame, VirtualObject[] virtualObjects, LabelRef exceptionEdge)
public boolean hasDebugInfo()
public void forEachState(LIRInstruction inst, InstructionValueProcedure proc)
InstructionValueProcedure
for every variable.proc
- The procedure called for variables.public void forEachState(LIRInstruction inst, InstructionValueConsumer proc)
InstructionValueProcedure
for every variable.proc
- The procedure called for variables.protected void processValues(LIRInstruction inst, Value[] values, InstructionValueProcedure proc)
protected void processValues(LIRInstruction inst, Value[] values, InstructionValueConsumer proc)
private boolean unprocessed(Value value)
public void initDebugInfo(FrameMap frameMap, boolean canHaveRegisters)
frameMap
- The frame map.canHaveRegisters
- True if there can be any register map entries.public IndexedValueMap getLiveBasePointers()
public void setLiveBasePointers(IndexedValueMap liveBasePointers)