org.jikesrvm.compilers.opt.bc2ir
Class BC2IR.InliningBlockLE
java.lang.Object
org.jikesrvm.compilers.opt.bc2ir.BC2IR.BasicBlockLE
org.jikesrvm.compilers.opt.bc2ir.BC2IR.InliningBlockLE
- Enclosing class:
- BC2IR
private static final class BC2IR.InliningBlockLE
- extends BC2IR.BasicBlockLE
Extend BasicBlockLE to support inlining during IR generation.
| Fields inherited from class org.jikesrvm.compilers.opt.bc2ir.BC2IR.BasicBlockLE |
block, fallThrough, handlers, high, left, localState, low, max, parent, right, stackState |
|
Method Summary |
(package private) void |
deleteAllOutEdges()
delete the outgoing CFG edges from all
basic blocks in the callee (gc.cfg). |
String |
toString()
Returns a string representation of this BBLE. |
| Methods inherited from class org.jikesrvm.compilers.opt.bc2ir.BC2IR.BasicBlockLE |
addHandler, clearGenerated, clearInCodeOrder, clearLocalKnown, clearSelfRegen, clearStackKnown, copyIntoLocalState, copyLocalState, genState, isBlack, isGenerated, isInCodeOrder, isLocalKnown, isReadyToGenerate, isRed, isSelfRegen, isStackKnown, setBlack, setGenerated, setInCodeOrder, setLocalKnown, setRed, setSelfRegen, setStackKnown |
gc
final GenerationContext gc
epilogueBBLE
final BC2IR.BasicBlockLE epilogueBBLE
BC2IR.InliningBlockLE
BC2IR.InliningBlockLE(GenerationContext c,
BC2IR.BasicBlockLE bble)
toString
public String toString()
- Description copied from class:
BC2IR.BasicBlockLE
- Returns a string representation of this BBLE.
- Overrides:
toString in class BC2IR.BasicBlockLE
deleteAllOutEdges
void deleteAllOutEdges()
- delete the outgoing CFG edges from all
basic blocks in the callee (gc.cfg).
This is used when the BBLE preceeding the inlined
method block needs to be regenerated, thus forcing
us to discard the callee IR (which may contains
control flow links to the caller IR because of exception handlers).
TODO: One might be able to do this more efficiently by
keeping track of the exposed edges in the generation context
and commiting them once the top level generation
completes. Probably not worth it, since we expect this
method to be called very infrequently.