# HG changeset patch # User Gilles Duboscq # Date 1309858780 -7200 # Node ID a32be743f0466b60308684115cd0d20f0e451859 # Parent 33794640fc148a4f30e78638d6ffbad40435000d Delete framestate along with statesplit nodes if the framestate is not re-used somewhere diff -r 33794640fc14 -r a32be743f046 graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/ir/StateSplit.java --- a/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/ir/StateSplit.java Mon Jul 04 17:44:07 2011 +0200 +++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/ir/StateSplit.java Tue Jul 05 11:39:40 2011 +0200 @@ -76,6 +76,17 @@ } @Override + public void delete() { + FrameState stateAfter = stateAfter(); + super.delete(); + if (stateAfter != null) { + if (stateAfter.usages().isEmpty()) { + stateAfter.delete(); + } + } + } + + @Override public Iterable< ? extends Node> dataInputs() { final Iterator< ? extends Node> dataInputs = super.dataInputs().iterator(); return new Iterable() { diff -r 33794640fc14 -r a32be743f046 graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/phases/DeadCodeEliminationPhase.java --- a/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/phases/DeadCodeEliminationPhase.java Mon Jul 04 17:44:07 2011 +0200 +++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/phases/DeadCodeEliminationPhase.java Tue Jul 05 11:39:40 2011 +0200 @@ -150,10 +150,10 @@ if (node.predecessors().size() > 0) { for (Node pred : node.predecessors()) { TTY.println("!PRED! " + pred + " (" + flood.isMarked(pred) + ")"); - for (int i=0; isucc: " + pred.successors().get(i)); } - for (int i=0; iusage: " + pred.usages().get(i)); } } diff -r 33794640fc14 -r a32be743f046 src/share/tools/IdealGraphVisualizer/Coordinator/src/com/sun/hotspot/igv/coordinator/StandardGroupOrganizer.java --- a/src/share/tools/IdealGraphVisualizer/Coordinator/src/com/sun/hotspot/igv/coordinator/StandardGroupOrganizer.java Mon Jul 04 17:44:07 2011 +0200 +++ b/src/share/tools/IdealGraphVisualizer/Coordinator/src/com/sun/hotspot/igv/coordinator/StandardGroupOrganizer.java Tue Jul 05 11:39:40 2011 +0200 @@ -50,7 +50,7 @@ for (Group g : groups) { List children = new ArrayList(); children.add(g); - if(g.getGraphs().size() == 1) { + if(false && g.getGraphs().size() == 1) { //g.getGraphs().get(0).setName(g.getName() + " / " + g.getGraphs().get(0).getName()); result.add(new Pair>("", children)); } else {