Mercurial > hg > truffle
changeset 11398:8747d6af5b58
Fix for FixedGuardNode.lower in the case where the successor of the FixedGuardNode is already an AbstractBeginNode
author | Gilles Duboscq <duboscq@ssw.jku.at> |
---|---|
date | Thu, 22 Aug 2013 20:05:34 +0200 |
parents | 956bf8c5bd8f |
children | c8a9914b36e8 7401a9c8a7bb |
files | graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/FixedGuardNode.java |
diffstat | 1 files changed, 4 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- 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); } }