public class CanonicalizerPhase extends BasePhase<PhaseContext>
Modifier and Type | Class and Description |
---|---|
static class |
CanonicalizerPhase.CustomCanonicalizer |
private class |
CanonicalizerPhase.Instance |
Modifier and Type | Field and Description |
---|---|
private boolean |
canonicalizeReads |
private CanonicalizerPhase.CustomCanonicalizer |
customCanonicalizer |
private static int |
MAX_ITERATION_PER_NODE |
private static DebugMetric |
METRIC_CANONICALIZATION_CONSIDERED_NODES |
private static DebugMetric |
METRIC_CANONICALIZED_NODES |
private static DebugMetric |
METRIC_GLOBAL_VALUE_NUMBERING_HITS |
private static DebugMetric |
METRIC_INFER_STAMP_CALLED |
private static DebugMetric |
METRIC_PROCESSED_NODES |
private static DebugMetric |
METRIC_SIMPLIFICATION_CONSIDERED_NODES |
private static DebugMetric |
METRIC_STAMP_CHANGED |
private boolean |
simplify |
BEFORE_PHASE_DUMP_LEVEL, PHASE_DUMP_LEVEL
Constructor and Description |
---|
CanonicalizerPhase() |
CanonicalizerPhase(CanonicalizerPhase.CustomCanonicalizer customCanonicalizer) |
Modifier and Type | Method and Description |
---|---|
void |
applyIncremental(StructuredGraph graph,
PhaseContext context,
Graph.Mark newNodesMark) |
void |
applyIncremental(StructuredGraph graph,
PhaseContext context,
Graph.Mark newNodesMark,
boolean dumpGraph) |
void |
applyIncremental(StructuredGraph graph,
PhaseContext context,
Iterable<? extends Node> workingSet) |
void |
applyIncremental(StructuredGraph graph,
PhaseContext context,
Iterable<? extends Node> workingSet,
boolean dumpGraph) |
void |
applyIncremental(StructuredGraph graph,
PhaseContext context,
Iterable<? extends Node> workingSet,
Graph.Mark newNodesMark) |
void |
applyIncremental(StructuredGraph graph,
PhaseContext context,
Iterable<? extends Node> workingSet,
Graph.Mark newNodesMark,
boolean dumpGraph) |
void |
disableReadCanonicalization() |
void |
disableSimplification() |
boolean |
getCanonicalizeReads() |
protected void |
run(StructuredGraph graph,
PhaseContext context) |
apply, apply, createName, getName
private static final int MAX_ITERATION_PER_NODE
private static final DebugMetric METRIC_CANONICALIZED_NODES
private static final DebugMetric METRIC_PROCESSED_NODES
private static final DebugMetric METRIC_CANONICALIZATION_CONSIDERED_NODES
private static final DebugMetric METRIC_INFER_STAMP_CALLED
private static final DebugMetric METRIC_STAMP_CHANGED
private static final DebugMetric METRIC_SIMPLIFICATION_CONSIDERED_NODES
private static final DebugMetric METRIC_GLOBAL_VALUE_NUMBERING_HITS
private boolean canonicalizeReads
private boolean simplify
private final CanonicalizerPhase.CustomCanonicalizer customCanonicalizer
public CanonicalizerPhase()
public CanonicalizerPhase(CanonicalizerPhase.CustomCanonicalizer customCanonicalizer)
public void disableReadCanonicalization()
public void disableSimplification()
protected void run(StructuredGraph graph, PhaseContext context)
run
in class BasePhase<PhaseContext>
public void applyIncremental(StructuredGraph graph, PhaseContext context, Graph.Mark newNodesMark)
newNodesMark
- only the new nodes specified by this
mark are processedpublic void applyIncremental(StructuredGraph graph, PhaseContext context, Graph.Mark newNodesMark, boolean dumpGraph)
public void applyIncremental(StructuredGraph graph, PhaseContext context, Iterable<? extends Node> workingSet)
workingSet
- the initial working set of nodes on which the canonicalizer works, should
be an auto-grow node bitmappublic void applyIncremental(StructuredGraph graph, PhaseContext context, Iterable<? extends Node> workingSet, boolean dumpGraph)
public void applyIncremental(StructuredGraph graph, PhaseContext context, Iterable<? extends Node> workingSet, Graph.Mark newNodesMark)
public void applyIncremental(StructuredGraph graph, PhaseContext context, Iterable<? extends Node> workingSet, Graph.Mark newNodesMark, boolean dumpGraph)
public boolean getCanonicalizeReads()