# HG changeset patch # User Lukas Stadler # Date 1363708993 -3600 # Node ID e53b31b29aa42b715add0f248c4684770af1cb04 # Parent bcfe9832552a3f632a369d3b9705994a20cdceaf clean up unused true/false constants in ConditionalEliminationPhase diff -r bcfe9832552a -r e53b31b29aa4 graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/ConditionalEliminationPhase.java --- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/ConditionalEliminationPhase.java Wed Mar 20 00:06:09 2013 +0100 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/ConditionalEliminationPhase.java Tue Mar 19 17:03:13 2013 +0100 @@ -299,8 +299,18 @@ public ConditionalElimination(FixedNode start, State initialState) { super(start, initialState); - this.trueConstant = LogicConstantNode.tautology(graph); - this.falseConstant = LogicConstantNode.contradiction(graph); + trueConstant = LogicConstantNode.tautology(graph); + falseConstant = LogicConstantNode.contradiction(graph); + } + + @Override + public void finished() { + if (trueConstant.usages().isEmpty()) { + graph.removeFloating(trueConstant); + } + if (falseConstant.usages().isEmpty()) { + graph.removeFloating(falseConstant); + } } private void registerCondition(boolean isTrue, LogicNode condition, ValueNode anchor) { diff -r bcfe9832552a -r e53b31b29aa4 graal/com.oracle.graal.phases/src/com/oracle/graal/phases/graph/PostOrderNodeIterator.java --- a/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/graph/PostOrderNodeIterator.java Wed Mar 20 00:06:09 2013 +0100 +++ b/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/graph/PostOrderNodeIterator.java Tue Mar 19 17:03:13 2013 +0100 @@ -100,6 +100,7 @@ assert false : current; } } while (current != null); + finished(); } private void queueSuccessors(FixedNode x, Set successors) { @@ -218,4 +219,8 @@ protected void invoke(Invoke invoke) { node(invoke.node()); } + + protected void finished() { + // nothing to do + } }