Mercurial > hg > graal-compiler
changeset 23035:075e134c16ff
Fix for the GraphDecoder for the case when merge loop explosions is enabled.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Thu, 19 Nov 2015 20:35:05 +0100 |
parents | 73fa2bf51eaa |
children | b2243b94f6c1 |
files | graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/FrameState.java graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/GraphDecoder.java graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/InliningUtil.java |
diffstat | 3 files changed, 2 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/FrameState.java Thu Nov 19 18:01:10 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/FrameState.java Thu Nov 19 20:35:05 2015 +0100 @@ -204,6 +204,7 @@ } public void setOuterFrameState(FrameState x) { + assert x == null || !x.isDeleted(); updateUsages(this.outerFrameState, x); this.outerFrameState = x; }
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/GraphDecoder.java Thu Nov 19 18:01:10 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/GraphDecoder.java Thu Nov 19 20:35:05 2015 +0100 @@ -278,7 +278,6 @@ try (Debug.Scope scope = Debug.scope("GraphDecoder", graph)) { MethodScope methodScope = new MethodScope(graph, encodedGraph, LoopExplosionKind.NONE); decode(methodScope, null); - cleanupGraph(methodScope, null); methodScope.graph.verify(); } catch (Throwable ex) { Debug.handle(ex);
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/InliningUtil.java Thu Nov 19 18:01:10 2015 +0100 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/InliningUtil.java Thu Nov 19 20:35:05 2015 +0100 @@ -525,6 +525,7 @@ public static FrameState processFrameState(FrameState frameState, Invoke invoke, ResolvedJavaMethod inlinedMethod, FrameState stateAtExceptionEdge, FrameState outerFrameState, boolean alwaysDuplicateStateAfter, ResolvedJavaMethod invokeTargetMethod, List<ValueNode> invokeArgsList) { + assert outerFrameState == null || !outerFrameState.isDeleted() : outerFrameState; FrameState stateAtReturn = invoke.stateAfter(); JavaKind invokeReturnKind = invoke.asNode().getStackKind();