private final class LoweringPhase.Round extends Phase
| Modifier and Type | Class and Description |
|---|---|
private class |
LoweringPhase.Round.ProcessFrame |
| Modifier and Type | Field and Description |
|---|---|
private PhaseContext |
context |
private int |
iteration |
private SchedulePhase |
schedule |
BEFORE_PHASE_DUMP_LEVEL, PHASE_DUMP_LEVEL| Modifier | Constructor and Description |
|---|---|
private |
Round(int iteration,
PhaseContext context) |
| Modifier and Type | Method and Description |
|---|---|
protected CharSequence |
createName() |
private Collection<Node> |
getUnscheduledUsages(Node node)
Gets all usages of a floating, lowerable node that are unscheduled.
|
private AnchoringNode |
process(Block b,
NodeBitMap activeGuards,
AnchoringNode startAnchor) |
void |
run(StructuredGraph graph) |
private final PhaseContext context
private final SchedulePhase schedule
private final int iteration
private Round(int iteration, PhaseContext context)
protected CharSequence createName()
createName in class BasePhase<Object>public void run(StructuredGraph graph)
private AnchoringNode process(Block b, NodeBitMap activeGuards, AnchoringNode startAnchor)
private Collection<Node> getUnscheduledUsages(Node node)
Given that the lowering of such nodes may introduce fixed nodes, they must be lowered in the context of a usage that dominates all other usages. The fixed nodes resulting from lowering are attached to the fixed node context of the dominating usage. This ensures the post-lowering graph still has a valid schedule.
node - a Lowerable node