Mercurial > hg > graal-jvmci-8
changeset 20026:3bda2c03d089
Add scope with the schedule in EffectsPhase
author | Gilles Duboscq <gilles.m.duboscq@oracle.com> |
---|---|
date | Wed, 25 Mar 2015 16:15:20 +0100 |
parents | dc3c886e3cca |
children | 87419b0d9bfb |
files | graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/EffectsPhase.java |
diffstat | 1 files changed, 23 insertions(+), 20 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/EffectsPhase.java Wed Mar 25 16:31:35 2015 +0100 +++ b/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/EffectsPhase.java Wed Mar 25 16:15:20 2015 +0100 @@ -83,33 +83,36 @@ schedule.apply(graph, false); cfg = schedule.getCFG(); } - - Closure<?> closure = createEffectsClosure(context, schedule, cfg); - ReentrantBlockIterator.apply(closure, cfg.getStartBlock()); + try (Scope scheduleScope = Debug.scope("EffectsPhaseWithSchedule", schedule)) { + Closure<?> closure = createEffectsClosure(context, schedule, cfg); + ReentrantBlockIterator.apply(closure, cfg.getStartBlock()); - if (!closure.hasChanged()) { - break; - } + if (!closure.hasChanged()) { + break; + } - // apply the effects collected during this iteration - HashSetNodeEventListener listener = new HashSetNodeEventListener(); - try (NodeEventScope nes = graph.trackNodeEvents(listener)) { - closure.applyEffects(); - } + // apply the effects collected during this iteration + HashSetNodeEventListener listener = new HashSetNodeEventListener(); + try (NodeEventScope nes = graph.trackNodeEvents(listener)) { + closure.applyEffects(); + } - if (Debug.isDumpEnabled()) { - Debug.dump(graph, "after " + getName() + " iteration"); - } + if (Debug.isDumpEnabled()) { + Debug.dump(graph, "after " + getName() + " iteration"); + } - new DeadCodeEliminationPhase(Required).apply(graph); + new DeadCodeEliminationPhase(Required).apply(graph); - Set<Node> changedNodes = listener.getNodes(); - for (Node node : graph.getNodes()) { - if (node instanceof Simplifiable) { - changedNodes.add(node); + Set<Node> changedNodes = listener.getNodes(); + for (Node node : graph.getNodes()) { + if (node instanceof Simplifiable) { + changedNodes.add(node); + } } + postIteration(graph, context, changedNodes); + } catch (Throwable t) { + throw Debug.handle(t); } - postIteration(graph, context, changedNodes); } changed = true; }