changeset 7245:1e099e2c6197

Fix for KillCFG while killing infinite empty loops
author Gilles Duboscq <duboscq@ssw.jku.at>
date Mon, 17 Dec 2012 16:01:55 +0100
parents a023cfaeb92e
children cccec951cb76
files graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/util/GraphUtil.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/util/GraphUtil.java	Mon Dec 17 15:24:13 2012 +0100
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/util/GraphUtil.java	Mon Dec 17 16:01:55 2012 +0100
@@ -76,7 +76,10 @@
                     loopend.safeDelete();
                 }
                 begin.removeExits();
-                killCFG(begin.next());
+                FixedNode loopBody = begin.next();
+                if (loopBody != null) { // for small infinite loops, the body may be killed while killing the loop ends
+                    killCFG(loopBody);
+                }
                 begin.safeDelete();
             } else if (merge instanceof LoopBeginNode && ((LoopBeginNode) merge).loopEnds().isEmpty()) { // not a loop anymore
                 graph.reduceDegenerateLoopBegin((LoopBeginNode) merge);