# HG changeset patch # User Tom Rodriguez # Date 1424284628 28800 # Node ID 4eb793cfec273990949eedf9d53c8995596e6f4c # Parent b017118b412beee83fddd6f6174e708b966b4be6 Filter LogicConstantNode when detecting changes in GraphChangeMonitoringPhase diff -r b017118b412b -r 4eb793cfec27 graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/GraphChangeMonitoringPhase.java --- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/GraphChangeMonitoringPhase.java Wed Feb 18 10:36:31 2015 -0800 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/GraphChangeMonitoringPhase.java Wed Feb 18 10:37:08 2015 -0800 @@ -22,12 +22,14 @@ */ package com.oracle.graal.compiler.phases; +import java.util.*; import java.util.stream.*; import com.oracle.graal.debug.*; import com.oracle.graal.debug.Debug.Scope; import com.oracle.graal.graph.Graph.NodeEvent; import com.oracle.graal.graph.Graph.NodeEventScope; +import com.oracle.graal.graph.Node; import com.oracle.graal.nodes.*; import com.oracle.graal.phases.*; import com.oracle.graal.phases.common.util.*; @@ -72,7 +74,11 @@ Debug.handle(t); } } - if (!listener.getNodes().isEmpty()) { + /* + * Ignore LogicConstantNode since those are sometimes created and deleted as part of running + * a phase. + */ + if (listener.getNodes().stream().filter(e -> !(e instanceof LogicConstantNode)).findFirst().get() != null) { /* 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)) { @@ -81,10 +87,11 @@ Debug.dump(BasePhase.PHASE_DUMP_LEVEL, graph, "*** Before phase %s", getName()); } super.run(graph, context); + Set collect = listener.getNodes().stream().filter(e -> !e.isAlive()).filter(e -> !(e instanceof LogicConstantNode)).collect(Collectors.toSet()); if (Debug.isDumpEnabled(BasePhase.PHASE_DUMP_LEVEL)) { - Debug.dump(BasePhase.PHASE_DUMP_LEVEL, graph, "*** After phase %s", getName()); + Debug.dump(BasePhase.PHASE_DUMP_LEVEL, graph, "*** After phase %s %s", getName(), collect); } - Debug.log("*** %s %s %s\n", message, graph, listener.getNodes().stream().filter(e -> !e.isAlive()).collect(Collectors.toSet())); + Debug.log("*** %s %s %s\n", message, graph, collect); } } } else {