24 |
24 |
25 package org.graalvm.compiler.phases.common; |
25 package org.graalvm.compiler.phases.common; |
26 |
26 |
27 import org.graalvm.compiler.graph.Graph.NodeEventScope; |
27 import org.graalvm.compiler.graph.Graph.NodeEventScope; |
28 import org.graalvm.compiler.nodes.StructuredGraph; |
28 import org.graalvm.compiler.nodes.StructuredGraph; |
|
29 import org.graalvm.compiler.nodes.spi.CoreProviders; |
29 import org.graalvm.compiler.phases.BasePhase; |
30 import org.graalvm.compiler.phases.BasePhase; |
30 import org.graalvm.compiler.phases.PhaseSuite; |
31 import org.graalvm.compiler.phases.PhaseSuite; |
31 import org.graalvm.compiler.phases.common.util.EconomicSetNodeEventListener; |
32 import org.graalvm.compiler.phases.common.util.EconomicSetNodeEventListener; |
32 import org.graalvm.compiler.phases.tiers.PhaseContext; |
|
33 |
33 |
34 /** |
34 /** |
35 * A phase suite that applies {@linkplain CanonicalizerPhase canonicalization} to a graph after all |
35 * A phase suite that applies {@linkplain CanonicalizerPhase canonicalization} to a graph after all |
36 * phases in the suite have been applied if any of the phases changed the graph. |
36 * phases in the suite have been applied if any of the phases changed the graph. |
37 */ |
37 */ |
38 public class IncrementalCanonicalizerPhase<C extends PhaseContext> extends PhaseSuite<C> { |
38 public class IncrementalCanonicalizerPhase<C extends CoreProviders> extends PhaseSuite<C> { |
39 |
39 |
40 private final CanonicalizerPhase canonicalizer; |
40 private final CanonicalizerPhase canonicalizer; |
41 |
41 |
42 public IncrementalCanonicalizerPhase(CanonicalizerPhase canonicalizer) { |
42 public IncrementalCanonicalizerPhase(CanonicalizerPhase canonicalizer) { |
43 this.canonicalizer = canonicalizer; |
43 this.canonicalizer = canonicalizer; |