20 * or visit www.oracle.com if you need additional information or have any |
20 * or visit www.oracle.com if you need additional information or have any |
21 * questions. |
21 * questions. |
22 */ |
22 */ |
23 package org.graalvm.compiler.core.phases; |
23 package org.graalvm.compiler.core.phases; |
24 |
24 |
|
25 import org.graalvm.collections.EconomicSet; |
|
26 import org.graalvm.collections.Equivalence; |
25 import org.graalvm.compiler.debug.DebugContext; |
27 import org.graalvm.compiler.debug.DebugContext; |
26 import org.graalvm.compiler.graph.Graph.NodeEvent; |
28 import org.graalvm.compiler.graph.Graph.NodeEvent; |
27 import org.graalvm.compiler.graph.Graph.NodeEventScope; |
29 import org.graalvm.compiler.graph.Graph.NodeEventScope; |
28 import org.graalvm.compiler.graph.Node; |
30 import org.graalvm.compiler.graph.Node; |
29 import org.graalvm.compiler.nodes.LogicConstantNode; |
31 import org.graalvm.compiler.nodes.LogicConstantNode; |
30 import org.graalvm.compiler.nodes.StructuredGraph; |
32 import org.graalvm.compiler.nodes.StructuredGraph; |
31 import org.graalvm.compiler.phases.BasePhase; |
33 import org.graalvm.compiler.phases.BasePhase; |
32 import org.graalvm.compiler.phases.PhaseSuite; |
34 import org.graalvm.compiler.phases.PhaseSuite; |
33 import org.graalvm.compiler.phases.common.util.HashSetNodeEventListener; |
35 import org.graalvm.compiler.phases.common.util.HashSetNodeEventListener; |
34 import org.graalvm.compiler.phases.tiers.PhaseContext; |
36 import org.graalvm.compiler.phases.tiers.PhaseContext; |
35 import org.graalvm.util.EconomicSet; |
|
36 import org.graalvm.util.Equivalence; |
|
37 |
37 |
38 /** |
38 /** |
39 * A utility phase for detecting when a phase would change the graph and reporting extra information |
39 * A utility phase for detecting when a phase would change the graph and reporting extra information |
40 * about the effects. The phase is first run on a copy of the graph and if a change in that graph is |
40 * about the effects. The phase is first run on a copy of the graph and if a change in that graph is |
41 * detected then it's rerun on the original graph inside a new debug scope under |
41 * detected then it's rerun on the original graph inside a new debug scope under |