Mercurial > hg > truffle
diff graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/util/GraphUtil.java @ 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 | 2463eb24b644 |
children | 79a7b761755c |
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);