public class YieldPoints extends CompilerPhase
container| Constructor and Description |
|---|
YieldPoints() |
| Modifier and Type | Method and Description |
|---|---|
String |
getName()
Return the name of this phase
|
CompilerPhase |
newExecution(IR ir)
This phase contains no per-compilation instance fields.
|
void |
perform(IR ir)
Insert yield points in method prologues, loop heads, and method exits
|
private void |
prependYield(BasicBlock bb,
Operator yp,
int bcIndex,
InlineSequence position)
Add a YIELD instruction to the appropriate place for the basic
block passed.
|
private void |
processLoopNest(LSTNode n)
Process all loop heads in a loop nest by inserting a backedge yieldpoint in each of them.
|
dumpIR, dumpIR, getClassConstructor, getCompilerPhaseConstructor, getCompilerPhaseConstructor, performPhase, printingEnabled, reportAdditionalStats, setContainer, shouldPerform, verifypublic YieldPoints()
public final String getName()
getName in class CompilerPhasepublic final CompilerPhase newExecution(IR ir)
newExecution in class CompilerPhaseir - the IR that is about to be passed to performPhasepublic final void perform(IR ir)
perform in class CompilerPhaseir - the IR on which to apply the phaseprivate void processLoopNest(LSTNode n)
n - a loop nodeprivate void prependYield(BasicBlock bb, Operator yp, int bcIndex, InlineSequence position)
bb - the basic blockyp - the yieldpoint operator to insertbcIndex - the bcIndex of the yieldpointposition - the source position of the yieldpoint