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, verify
public YieldPoints()
public final String getName()
getName
in class CompilerPhase
public final CompilerPhase newExecution(IR ir)
newExecution
in class CompilerPhase
ir
- the IR that is about to be passed to performPhasepublic final void perform(IR ir)
perform
in class CompilerPhase
ir
- 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