< prev index next >

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core/src/org/graalvm/compiler/core/phases/GraphChangeMonitoringPhase.java

Print this page
rev 52509 : [mq]: graal2

*** 32,42 **** import org.graalvm.compiler.graph.Node; import org.graalvm.compiler.nodes.LogicConstantNode; import org.graalvm.compiler.nodes.StructuredGraph; import org.graalvm.compiler.phases.BasePhase; import org.graalvm.compiler.phases.PhaseSuite; ! import org.graalvm.compiler.phases.common.util.HashSetNodeEventListener; import org.graalvm.compiler.phases.tiers.PhaseContext; /** * A utility phase for detecting when a phase would change the graph and reporting extra information * about the effects. The phase is first run on a copy of the graph and if a change in that graph is --- 32,42 ---- import org.graalvm.compiler.graph.Node; import org.graalvm.compiler.nodes.LogicConstantNode; import org.graalvm.compiler.nodes.StructuredGraph; import org.graalvm.compiler.phases.BasePhase; import org.graalvm.compiler.phases.PhaseSuite; ! import org.graalvm.compiler.phases.common.util.EconomicSetNodeEventListener; import org.graalvm.compiler.phases.tiers.PhaseContext; /** * A utility phase for detecting when a phase would change the graph and reporting extra information * about the effects. The phase is first run on a copy of the graph and if a change in that graph is
*** 66,76 **** protected void run(StructuredGraph graph, C context) { /* * Phase may add nodes but not end up using them so ignore additions. Nodes going dead and * having their inputs change are the main interesting differences. */ ! HashSetNodeEventListener listener = new HashSetNodeEventListener().exclude(NodeEvent.NODE_ADDED); StructuredGraph graphCopy = (StructuredGraph) graph.copy(graph.getDebug()); DebugContext debug = graph.getDebug(); try (NodeEventScope s = graphCopy.trackNodeEvents(listener)) { try (DebugContext.Scope s2 = debug.sandbox("WithoutMonitoring", null)) { super.run(graphCopy, context); --- 66,76 ---- protected void run(StructuredGraph graph, C context) { /* * Phase may add nodes but not end up using them so ignore additions. Nodes going dead and * having their inputs change are the main interesting differences. */ ! EconomicSetNodeEventListener listener = new EconomicSetNodeEventListener().exclude(NodeEvent.NODE_ADDED); StructuredGraph graphCopy = (StructuredGraph) graph.copy(graph.getDebug()); DebugContext debug = graph.getDebug(); try (NodeEventScope s = graphCopy.trackNodeEvents(listener)) { try (DebugContext.Scope s2 = debug.sandbox("WithoutMonitoring", null)) { super.run(graphCopy, context);
*** 88,98 **** filteredNodes.add(n); } } if (!filteredNodes.isEmpty()) { /* rerun it on the real graph in a new Debug scope so Dump and Log can find it. */ ! listener = new HashSetNodeEventListener(); try (NodeEventScope s = graph.trackNodeEvents(listener)) { try (DebugContext.Scope s2 = debug.scope("WithGraphChangeMonitoring")) { if (debug.isDumpEnabled(DebugContext.DETAILED_LEVEL)) { debug.dump(DebugContext.DETAILED_LEVEL, graph, "*** Before phase %s", getName()); } --- 88,98 ---- filteredNodes.add(n); } } if (!filteredNodes.isEmpty()) { /* rerun it on the real graph in a new Debug scope so Dump and Log can find it. */ ! listener = new EconomicSetNodeEventListener(); try (NodeEventScope s = graph.trackNodeEvents(listener)) { try (DebugContext.Scope s2 = debug.scope("WithGraphChangeMonitoring")) { if (debug.isDumpEnabled(DebugContext.DETAILED_LEVEL)) { debug.dump(DebugContext.DETAILED_LEVEL, graph, "*** Before phase %s", getName()); }
< prev index next >