changeset 7248:b903c1099f41

Fix in MergeNode.removeEnd: while deleting phi inputs some other phis can die
author Gilles Duboscq <duboscq@ssw.jku.at>
date Mon, 17 Dec 2012 17:15:11 +0100
parents 1706be855f0e
children 73139223837c
files graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/MergeNode.java
diffstat 1 files changed, 3 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/MergeNode.java	Mon Dec 17 16:38:48 2012 +0100
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/MergeNode.java	Mon Dec 17 17:15:11 2012 +0100
@@ -82,6 +82,9 @@
         assert predIndex != -1;
         deleteEnd(pred);
         for (PhiNode phi : phis().snapshot()) {
+            if (phi.isDeleted()) {
+                continue;
+            }
             ValueNode removedValue = phi.valueAt(predIndex);
             phi.removeInput(predIndex);
             if (removedValue != null && removedValue.isAlive() && removedValue.usages().isEmpty() && GraphUtil.isFloatingNode().apply(removedValue)) {