# HG changeset patch # User Thomas Wuerthinger # Date 1424268657 -3600 # Node ID 076cb9f9bdbcd394dd5f5e41c90d019467e52828 # Parent 1cbf4661e1e949c9286640afba365e08f751cdf8 Correctly kill the condition when cannonicalizing IfNode. diff -r 1cbf4661e1e9 -r 076cb9f9bdbc graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/IfNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/IfNode.java Wed Feb 18 15:10:28 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/IfNode.java Wed Feb 18 15:10:57 2015 +0100 @@ -601,7 +601,6 @@ * Multiple phis but merging same values for true and false, so simply delete * the path */ - tool.addToWorkList(condition()); removeThroughFalseBranch(tool); return true; } else if (distinct == 1) { @@ -644,6 +643,9 @@ AbstractBeginNode trueBegin = trueSuccessor(); graph().removeSplitPropagate(this, trueBegin, tool); tool.addToWorkList(trueBegin); + if (condition().isAlive() && condition().hasNoUsages()) { + GraphUtil.killWithUnusedFloatingInputs(condition()); + } } private ConditionalNode canonicalizeConditionalCascade(ValueNode trueValue, ValueNode falseValue) {