Mercurial > hg > graal-compiler
changeset 19583:4eb793cfec27
Filter LogicConstantNode when detecting changes in GraphChangeMonitoringPhase
author | Tom Rodriguez <tom.rodriguez@oracle.com> |
---|---|
date | Wed, 18 Feb 2015 10:37:08 -0800 |
parents | b017118b412b |
children | f7c6b33489c9 |
files | graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/GraphChangeMonitoringPhase.java |
diffstat | 1 files changed, 10 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- 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<Node> 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 {