# HG changeset patch # User Gilles Duboscq # Date 1377194734 -7200 # Node ID 8747d6af5b581b5b4c493111d6ab79950b368fd9 # Parent 956bf8c5bd8fbecf08363bd97bc87c2023ccdf37 Fix for FixedGuardNode.lower in the case where the successor of the FixedGuardNode is already an AbstractBeginNode diff -r 956bf8c5bd8f -r 8747d6af5b58 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/FixedGuardNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/FixedGuardNode.java Thu Aug 22 20:04:51 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/FixedGuardNode.java Thu Aug 22 20:05:34 2013 +0200 @@ -109,13 +109,16 @@ DeoptimizeNode deopt = graph().add(new DeoptimizeNode(action, reason)); deopt.setDeoptimizationState(getDeoptimizationState()); IfNode ifNode; + AbstractBeginNode noDeoptSuccessor; if (negated) { ifNode = graph().add(new IfNode(condition, deopt, next, 0)); + noDeoptSuccessor = ifNode.falseSuccessor(); } else { ifNode = graph().add(new IfNode(condition, next, deopt, 1)); + noDeoptSuccessor = ifNode.trueSuccessor(); } ((FixedWithNextNode) predecessor()).setNext(ifNode); - this.replaceAtUsages(next.predecessor()); + this.replaceAtUsages(noDeoptSuccessor); GraphUtil.killWithUnusedFloatingInputs(this); } }