# HG changeset patch # User Gilles Duboscq # Date 1355756515 -3600 # Node ID 1e099e2c619749ceb87dfa083a2ec3afbc2ce695 # Parent a023cfaeb92eb5e6995a65f84b08d6309408f1c1 Fix for KillCFG while killing infinite empty loops diff -r a023cfaeb92e -r 1e099e2c6197 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/util/GraphUtil.java --- 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);