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);