Mercurial > hg > truffle
changeset 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 | 7404e1113697 |
children | 3e4d3be0b6bf |
files | graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/UseTrappingNullChecksPhase.java |
diffstat | 1 files changed, 8 insertions(+), 4 deletions(-) [+] |
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()) {