Mercurial > hg > truffle
changeset 8387:9f0ae7df921e
Bug fix and additional assertions in deoptimize to guard phase.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Tue, 19 Mar 2013 23:08:03 +0100 |
parents | a019b27cb9ef |
children | bcfe9832552a |
files | graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/ConvertDeoptimizeToGuardPhase.java |
diffstat | 1 files changed, 3 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/ConvertDeoptimizeToGuardPhase.java Tue Mar 19 20:48:53 2013 +0100 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/ConvertDeoptimizeToGuardPhase.java Tue Mar 19 23:08:03 2013 +0100 @@ -64,7 +64,9 @@ Debug.log("Visiting %s followed by %s", mergeNode, deopt); List<BeginNode> begins = new ArrayList<>(); for (EndNode end : mergeNode.forwardEnds()) { - begins.add(findBeginNode(end)); + BeginNode newBeginNode = findBeginNode(end); + assert !begins.contains(newBeginNode); + begins.add(newBeginNode); } for (BeginNode begin : begins) { assert !begin.isDeleted(); @@ -97,8 +99,6 @@ // We could not convert the control split - at least cut off control flow after the split. FixedNode next = deoptBegin.next(); if (next != deopt) { - FixedWithNextNode pred = (FixedWithNextNode) deopt.predecessor(); - pred.setNext(null); DeoptimizeNode newDeoptNode = (DeoptimizeNode) deopt.clone(graph); deoptBegin.setNext(newDeoptNode); assert deoptBegin == newDeoptNode.predecessor();