changeset 13191:c50290e743f9

Canonicalizer: when replacing a fixed node with a controlsink, set the next of the replacee *before* calling killCFG() (GRAAL-609)
author Bernhard Urban <bernhard.urban@jku.at>
date Thu, 28 Nov 2013 19:54:48 +0100
parents 1b9aaf25c609
children 824e40a3a4a1 ada266d00876
files graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/CanonicalizerPhase.java
diffstat 1 files changed, 1 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/CanonicalizerPhase.java	Thu Nov 28 19:52:05 2013 +0100
+++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/CanonicalizerPhase.java	Thu Nov 28 19:54:48 2013 +0100
@@ -302,9 +302,8 @@
                     FixedNode fixed = (FixedNode) node;
                     if (canonical instanceof ControlSinkNode) {
                         // case 7
-                        FixedWithNextNode pred = (FixedWithNextNode) node.predecessor();
+                        fixed.predecessor().replaceFirstSuccessor(fixed, canonical);
                         GraphUtil.killCFG(fixed);
-                        pred.setNext((FixedNode) canonical);
                         return true;
                     } else {
                         assert fixed instanceof FixedWithNextNode;