class BasicBlockLE extends Object
Modifier and Type | Field and Description |
---|---|
(package private) BasicBlock |
block
Basic block that this BBLE refers to.
|
private static byte |
COLOR |
(package private) BasicBlockLE |
fallThrough
The desired fallthrough (next in code order) BBLE (may be
null ). |
private byte |
flags
Encoding of random boolean state
|
private static byte |
GENERATED |
(package private) HandlerBlockLE[] |
handlers
The exception handler BBLE's for this block (
null if none) |
(package private) int |
high
Current end bytecode of this BBLE
|
private static byte |
IN_CODE_ORDER |
(package private) BasicBlockLE |
left |
private static byte |
LOCAL_KNOWN |
(package private) Operand[] |
localState
State of the local variables at the start of this basic block.
|
(package private) int |
low
Start bytecode of this BBLE
|
(package private) int |
max
Maximum possible bytecode of this BBLE (wrt exception ranges)
|
(package private) BasicBlockLE |
parent |
(package private) BasicBlockLE |
right |
private static byte |
SELF_REGEN |
private static byte |
STACK_KNOWN |
(package private) OperandStack |
stackState
State of the stack at the start of this basic block.
|
Modifier | Constructor and Description |
---|---|
protected |
BasicBlockLE(int loc) |
(package private) |
BasicBlockLE(int loc,
InlineSequence position,
ControlFlowGraph cfg)
Create a new BBLE (and basic block) for the specified bytecode index.
|
Modifier and Type | Method and Description |
---|---|
(package private) void |
addHandler(HandlerBlockLE handler)
Adds an exception handler BBLE to the handlers array.
|
(package private) void |
clearGenerated() |
(package private) void |
clearInCodeOrder() |
(package private) void |
clearLocalKnown() |
(package private) void |
clearSelfRegen() |
(package private) void |
clearStackKnown() |
(package private) void |
copyIntoLocalState(Operand[] _localState)
Save a shallow copy of the given local variable state into this.
|
(package private) Operand[] |
copyLocalState() |
String |
genState() |
(package private) boolean |
isBlack() |
(package private) boolean |
isGenerated() |
(package private) boolean |
isInCodeOrder() |
(package private) boolean |
isLocalKnown() |
(package private) boolean |
isReadyToGenerate() |
(package private) boolean |
isRed() |
(package private) boolean |
isSelfRegen() |
(package private) boolean |
isStackKnown() |
(package private) void |
setBlack() |
(package private) void |
setGenerated() |
(package private) void |
setInCodeOrder() |
(package private) void |
setLocalKnown() |
(package private) void |
setRed() |
(package private) void |
setSelfRegen() |
(package private) void |
setStackKnown() |
String |
toString()
Returns a string representation of this BBLE.
|
BasicBlockLE parent
BasicBlockLE left
BasicBlockLE right
final int low
int high
int max
BasicBlock block
OperandStack stackState
Operand[] localState
BasicBlockLE fallThrough
null
).
NOTE: we may not always end up actually falling through
(see BBSet.finalPass).HandlerBlockLE[] handlers
null
if none)private byte flags
private static final byte STACK_KNOWN
private static final byte LOCAL_KNOWN
private static final byte SELF_REGEN
private static final byte GENERATED
private static final byte COLOR
private static final byte IN_CODE_ORDER
BasicBlockLE(int loc, InlineSequence position, ControlFlowGraph cfg)
loc
- bytecode indexposition
- the inline sequencecfg
- ControlFlowGraph into which the block
will eventually be insertedprotected BasicBlockLE(int loc)
final void setStackKnown()
final void clearStackKnown()
final boolean isStackKnown()
final void setLocalKnown()
final void clearLocalKnown()
final boolean isLocalKnown()
final void setSelfRegen()
final void clearSelfRegen()
final boolean isSelfRegen()
final void setGenerated()
final void clearGenerated()
final boolean isGenerated()
final void setBlack()
final boolean isBlack()
final void setRed()
final boolean isRed()
final void setInCodeOrder()
final void clearInCodeOrder()
final boolean isInCodeOrder()
final boolean isReadyToGenerate()
final void copyIntoLocalState(Operand[] _localState)
_localState
- local variable state to savefinal Operand[] copyLocalState()
final void addHandler(HandlerBlockLE handler)
NOTE: this isn't incredibly efficient, but empirically the expected number of handlers per basic block is 0, with an observed maximum across 10,000+ methods of 3. Until this changes, we just don't care.
handler
- the handler block to add