Mercurial > hg > truffle
comparison graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/InliningUtil.java @ 11878:39e9ec0cf310
Inlining: remove killing begin node in non-exceptional path of InvokeWithException after inlining
author | Bernhard Urban <bernhard.urban@jku.at> |
---|---|
date | Wed, 02 Oct 2013 21:54:12 +0200 |
parents | 0e2cceed1caf |
children | 23ccaa863eda |
comparison
equal
deleted
inserted
replaced
11877:ef895852aeb4 | 11878:39e9ec0cf310 |
---|---|
1360 Node n = obj.next(); | 1360 Node n = obj.next(); |
1361 obj.setNext(null); | 1361 obj.setNext(null); |
1362 unwindDuplicate.replaceAndDelete(n); | 1362 unwindDuplicate.replaceAndDelete(n); |
1363 } else { | 1363 } else { |
1364 invokeWithException.killExceptionEdge(); | 1364 invokeWithException.killExceptionEdge(); |
1365 } | |
1366 | |
1367 // get rid of memory kill | |
1368 AbstractBeginNode begin = invokeWithException.next(); | |
1369 if (begin instanceof KillingBeginNode) { | |
1370 graph.addAfterFixed(begin, graph.add(new BeginNode())); | |
1371 graph.removeFixed(begin); | |
1365 } | 1372 } |
1366 } else { | 1373 } else { |
1367 if (unwindNode != null) { | 1374 if (unwindNode != null) { |
1368 UnwindNode unwindDuplicate = (UnwindNode) duplicates.get(unwindNode); | 1375 UnwindNode unwindDuplicate = (UnwindNode) duplicates.get(unwindNode); |
1369 MonitorExitNode monitorExit = findPrecedingMonitorExit(unwindDuplicate); | 1376 MonitorExitNode monitorExit = findPrecedingMonitorExit(unwindDuplicate); |