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