public class LoopSafepointEliminationPhase extends BasePhase<MidTierContext>
BasePhase.ApplyScope, BasePhase.BasePhaseStatistics, BasePhase.PhaseOptions, BasePhase.SharedGlobalPhaseState| Constructor and Description |
|---|
LoopSafepointEliminationPhase() |
| Modifier and Type | Method and Description |
|---|---|
protected boolean |
allowGuestSafepoints()
Determines whether guest safepoints should be allowed at all.
|
static boolean |
canDisableSafepoint(FixedNode node,
CoreProviders context) |
static boolean |
loopIsIn32BitRange(LoopEx loop) |
protected boolean |
onCallInLoop(LoopEndNode loopEnd,
FixedNode currentCallNode)
To be implemented by subclasses to perform additional checks.
|
protected void |
onSafepointDisabledLoopBegin(LoopEx loop)
To be implemented by subclasses to compute additional fields.
|
protected void |
run(StructuredGraph graph,
MidTierContext context) |
apply, apply, applyScope, codeSizeIncrease, contractorName, equals, getName, hashCode, shouldDumpAfterAtBasicLevel, shouldDumpBeforeAtBasicLevelclone, getClass, notify, notifyAll, toString, wait, wait, waitcheckContractprotected boolean onCallInLoop(LoopEndNode loopEnd, FixedNode currentCallNode)
true if
the safepoint was also disabled in subclasses and we therefore don't need to continue
traversing.protected void onSafepointDisabledLoopBegin(LoopEx loop)
protected boolean allowGuestSafepoints()
false, leading to guest
safepoints being disabled for all loops in the graph.public static boolean loopIsIn32BitRange(LoopEx loop)
protected final void run(StructuredGraph graph, MidTierContext context)
run in class BasePhase<MidTierContext>public static boolean canDisableSafepoint(FixedNode node, CoreProviders context)