public class OptimizeGuardAnchorsPhase extends Phase
Modifier and Type | Class and Description |
---|---|
static class |
OptimizeGuardAnchorsPhase.LazyCFG |
Modifier and Type | Field and Description |
---|---|
private static DebugMetric |
metricGuardsAnchorOptimized |
private static DebugMetric |
metricGuardsOptimizedAtSplit |
BEFORE_PHASE_DUMP_LEVEL, PHASE_DUMP_LEVEL
Constructor and Description |
---|
OptimizeGuardAnchorsPhase() |
Modifier and Type | Method and Description |
---|---|
private static boolean |
compatibleGuards(GuardNode guard,
GuardNode conditonGuard) |
private static AbstractBeginNode |
computeOptimalAnchor(ControlFlowGraph cfg,
AbstractBeginNode begin) |
private static AbstractBeginNode |
findMinimumUsagesSuccessor(ControlSplitNode controlSplit) |
static AbstractBeginNode |
getOptimalAnchor(OptimizeGuardAnchorsPhase.LazyCFG cfg,
AbstractBeginNode begin) |
private static void |
optimizeAtControlSplit(ControlSplitNode controlSplit,
OptimizeGuardAnchorsPhase.LazyCFG cfg) |
protected void |
run(StructuredGraph graph) |
apply, apply, createName, getName
private static final DebugMetric metricGuardsAnchorOptimized
private static final DebugMetric metricGuardsOptimizedAtSplit
public OptimizeGuardAnchorsPhase()
protected void run(StructuredGraph graph)
public static AbstractBeginNode getOptimalAnchor(OptimizeGuardAnchorsPhase.LazyCFG cfg, AbstractBeginNode begin)
private static AbstractBeginNode computeOptimalAnchor(ControlFlowGraph cfg, AbstractBeginNode begin)
private static void optimizeAtControlSplit(ControlSplitNode controlSplit, OptimizeGuardAnchorsPhase.LazyCFG cfg)
private static boolean compatibleGuards(GuardNode guard, GuardNode conditonGuard)
private static AbstractBeginNode findMinimumUsagesSuccessor(ControlSplitNode controlSplit)