Mercurial > hg > truffle
diff graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/UseTrappingNullChecksPhase.java @ 17054:fb8fe09c00a3
Don't remove LoopExitNodes in UseTrappingNullChecksPhase.
author | Roland Schatz <roland.schatz@oracle.com> |
---|---|
date | Fri, 05 Sep 2014 12:27:04 +0200 |
parents | 06c15e88d383 |
children | 45b45f902bed |
line wrap: on
line diff
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/UseTrappingNullChecksPhase.java Fri Sep 05 11:50:52 2014 +0200 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/UseTrappingNullChecksPhase.java Fri Sep 05 12:27:04 2014 +0200 @@ -172,10 +172,14 @@ * then remove the Begin from the graph. */ nonTrappingContinuation.replaceAtUsages(InputType.Guard, trappingNullCheck); - FixedNode next = nonTrappingContinuation.next(); - nonTrappingContinuation.clearSuccessors(); - trappingNullCheck.setNext(next); - nonTrappingContinuation.safeDelete(); + if (nonTrappingContinuation.getNodeClass().is(BeginNode.class)) { + FixedNode next = nonTrappingContinuation.next(); + nonTrappingContinuation.clearSuccessors(); + trappingNullCheck.setNext(next); + nonTrappingContinuation.safeDelete(); + } else { + trappingNullCheck.setNext(nonTrappingContinuation); + } GraphUtil.killCFG(trappingContinuation); if (isNullNode.usages().isEmpty()) {