Mercurial > hg > graal-jvmci-8
changeset 21295:3703ad7bf6b5
Fix SimpleInfopointNode processing for PEGraphDecoder
author | Tom Rodriguez <tom.rodriguez@oracle.com> |
---|---|
date | Mon, 11 May 2015 10:30:02 -0700 |
parents | d5ee8f60459d |
children | c3a6c85aec82 |
files | graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/GraphDecoder.java graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/SimplifyingGraphDecoder.java graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/PEGraphDecoder.java |
diffstat | 3 files changed, 22 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/GraphDecoder.java Mon May 11 10:29:42 2015 -0700 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/GraphDecoder.java Mon May 11 10:30:02 2015 -0700 @@ -409,7 +409,7 @@ methodScope.unwindNode = (UnwindNode) node; } else { - simplifyFixedNode(methodScope, loopScope, nodeOrderId, node); + handleFixedNode(methodScope, loopScope, nodeOrderId, node); } return resultScope; @@ -527,7 +527,7 @@ * @param nodeOrderId The orderId of the node. * @param node The node to be simplified. */ - protected void simplifyFixedNode(MethodScope methodScope, LoopScope loopScope, int nodeOrderId, FixedNode node) { + protected void handleFixedNode(MethodScope methodScope, LoopScope loopScope, int nodeOrderId, FixedNode node) { } protected void handleProxyNodes(MethodScope methodScope, LoopScope loopScope, LoopExitNode loopExit) {
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/SimplifyingGraphDecoder.java Mon May 11 10:29:42 2015 -0700 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/SimplifyingGraphDecoder.java Mon May 11 10:30:02 2015 -0700 @@ -91,7 +91,7 @@ } @Override - protected void simplifyFixedNode(MethodScope methodScope, LoopScope loopScope, int nodeOrderId, FixedNode node) { + protected void handleFixedNode(MethodScope methodScope, LoopScope loopScope, int nodeOrderId, FixedNode node) { if (node instanceof IfNode) { IfNode ifNode = (IfNode) node; if (ifNode.condition() instanceof LogicNegationNode) {
--- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/PEGraphDecoder.java Mon May 11 10:29:42 2015 -0700 +++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/PEGraphDecoder.java Mon May 11 10:30:02 2015 -0700 @@ -97,6 +97,15 @@ public boolean isInlinedMethod() { return caller != null; } + + public BytecodePosition getBytecodePosition() { + if (bytecodePosition == null) { + ensureOuterStateDecoded(this); + ensureExceptionStateDecoded(this); + bytecodePosition = InliningUtil.processBytecodePosition(invokeData.invoke, null); + } + return bytecodePosition; + } } protected class PENonAppendGraphBuilderContext implements GraphBuilderContext { @@ -519,6 +528,15 @@ protected abstract EncodedGraph lookupEncodedGraph(ResolvedJavaMethod method); @Override + protected void handleFixedNode(MethodScope s, LoopScope loopScope, int nodeOrderId, FixedNode node) { + PEMethodScope methodScope = (PEMethodScope) s; + if (node instanceof SimpleInfopointNode && methodScope.isInlinedMethod()) { + InliningUtil.processSimpleInfopoint(methodScope.invokeData.invoke, (SimpleInfopointNode) node, methodScope.getBytecodePosition()); + } + super.handleFixedNode(s, loopScope, nodeOrderId, node); + } + + @Override protected Node handleFloatingNodeBeforeAdd(MethodScope s, LoopScope loopScope, Node node) { PEMethodScope methodScope = (PEMethodScope) s; @@ -591,11 +609,7 @@ PEMethodScope methodScope = (PEMethodScope) s; if (methodScope.isInlinedMethod()) { - if (node instanceof SimpleInfopointNode) { - methodScope.bytecodePosition = InliningUtil.processSimpleInfopoint(methodScope.invokeData.invoke, (SimpleInfopointNode) node, methodScope.bytecodePosition); - return node; - - } else if (node instanceof FrameState) { + if (node instanceof FrameState) { FrameState frameState = (FrameState) node; ensureOuterStateDecoded(methodScope);