changeset 16100:13e471b673f3

handle deleted nodes in IfNode.simplify
author Lukas Stadler <lukas.stadler@oracle.com>
date Fri, 13 Jun 2014 18:18:57 +0200
parents 0d1f79e8add9
children 99e2e006ade2
files graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/IfNode.java
diffstat 1 files changed, 10 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/IfNode.java	Fri Jun 13 18:18:28 2014 +0200
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/IfNode.java	Fri Jun 13 18:18:57 2014 +0200
@@ -229,15 +229,17 @@
                         trueNext.replaceAtPredecessor(next);
                         graph().addBeforeFixed(this, trueNext);
                         for (Node usage : trueNext.usages().snapshot()) {
-                            if (usage.getNodeClass().valueNumberable() && !usage.getNodeClass().isLeafNode()) {
-                                Node newNode = graph().findDuplicate(usage);
-                                if (newNode != null) {
-                                    usage.replaceAtUsages(newNode);
-                                    usage.safeDelete();
+                            if (usage.isAlive()) {
+                                if (usage.getNodeClass().valueNumberable() && !usage.getNodeClass().isLeafNode()) {
+                                    Node newNode = graph().findDuplicate(usage);
+                                    if (newNode != null) {
+                                        usage.replaceAtUsages(newNode);
+                                        usage.safeDelete();
+                                    }
                                 }
-                            }
-                            if (usage.isAlive()) {
-                                tool.addToWorkList(usage);
+                                if (usage.isAlive()) {
+                                    tool.addToWorkList(usage);
+                                }
                             }
                         }
                         continue;