org.jikesrvm.compilers.opt.bc2ir
Class InliningBlockLE
java.lang.Object
org.jikesrvm.compilers.opt.bc2ir.BasicBlockLE
org.jikesrvm.compilers.opt.bc2ir.InliningBlockLE
final class InliningBlockLE
- extends BasicBlockLE
Extend BasicBlockLE to support inlining during IR generation.
Fields inherited from class org.jikesrvm.compilers.opt.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.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 BasicBlockLE epilogueBBLE
InliningBlockLE
InliningBlockLE(GenerationContext c,
BasicBlockLE bble)
toString
public String toString()
- Description copied from class:
BasicBlockLE
- Returns a string representation of this BBLE.
- Overrides:
toString
in class 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.