diff 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
line wrap: on
line diff
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/InliningUtil.java	Wed Oct 02 18:40:48 2013 +0200
+++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/InliningUtil.java	Wed Oct 02 21:54:12 2013 +0200
@@ -1363,6 +1363,13 @@
             } else {
                 invokeWithException.killExceptionEdge();
             }
+
+            // get rid of memory kill
+            AbstractBeginNode begin = invokeWithException.next();
+            if (begin instanceof KillingBeginNode) {
+                graph.addAfterFixed(begin, graph.add(new BeginNode()));
+                graph.removeFixed(begin);
+            }
         } else {
             if (unwindNode != null) {
                 UnwindNode unwindDuplicate = (UnwindNode) duplicates.get(unwindNode);