changeset 21280:b97ec8aec2c7

changed GraphBuilderContext.createStateAfter() to .setStateAfter(StateSplit)
author Doug Simon <doug.simon@oracle.com>
date Wed, 22 Apr 2015 16:01:59 +0200
parents b8ad48692008
children 326a1f374198
files graal/com.oracle.graal.graphbuilderconf/src/com/oracle/graal/graphbuilderconf/GraphBuilderContext.java graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/DefaultGenericInvocationPlugin.java graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/IntrinsicGraphBuilder.java graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/PEGraphDecoder.java graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/asserts/NeverPartOfCompilationNode.java graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/substitutions/TruffleGraphBuilderPlugins.java
diffstat 7 files changed, 20 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.graphbuilderconf/src/com/oracle/graal/graphbuilderconf/GraphBuilderContext.java	Mon May 11 11:11:27 2015 +0200
+++ b/graal/com.oracle.graal.graphbuilderconf/src/com/oracle/graal/graphbuilderconf/GraphBuilderContext.java	Wed Apr 22 16:01:59 2015 +0200
@@ -116,7 +116,7 @@
         if (equivalentValue instanceof StateSplit) {
             StateSplit stateSplit = (StateSplit) equivalentValue;
             if (stateSplit.stateAfter() == null) {
-                stateSplit.setStateAfter(createStateAfter());
+                setStateAfter(stateSplit);
             }
         }
         return equivalentValue;
@@ -150,7 +150,7 @@
         if (equivalentValue instanceof StateSplit) {
             StateSplit stateSplit = (StateSplit) equivalentValue;
             if (stateSplit.stateAfter() == null) {
-                stateSplit.setStateAfter(createStateAfter());
+                setStateAfter(stateSplit);
             }
         }
         return equivalentValue;
@@ -194,9 +194,11 @@
 
     /**
      * Creates a snap shot of the current frame state with the BCI of the instruction after the one
-     * currently being parsed.
+     * currently being parsed and assigns it to a given state split node.
+     *
+     * @param stateSplit a node just appended to the graph that needs a frame state
      */
-    FrameState createStateAfter();
+    void setStateAfter(StateSplit stateSplit);
 
     /**
      * Gets the parsing context for the method that inlines the method being parsed by this context.
--- a/graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java	Mon May 11 11:11:27 2015 +0200
+++ b/graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java	Wed Apr 22 16:01:59 2015 +0200
@@ -2422,8 +2422,9 @@
                 return frameState.create(bci);
             }
 
-            public FrameState createStateAfter() {
-                return createFrameState(stream.nextBCI());
+            public void setStateAfter(StateSplit stateSplit) {
+                FrameState stateAfter = createFrameState(stream.nextBCI());
+                stateSplit.setStateAfter(stateAfter);
             }
         }
     }
--- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/DefaultGenericInvocationPlugin.java	Mon May 11 11:11:27 2015 +0200
+++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/DefaultGenericInvocationPlugin.java	Wed Apr 22 16:01:59 2015 +0200
@@ -170,7 +170,7 @@
         if (res instanceof StateSplit) {
             StateSplit stateSplit = (StateSplit) res;
             if (stateSplit.stateAfter() == null) {
-                stateSplit.setStateAfter(b.createStateAfter());
+                b.setStateAfter(stateSplit);
             }
         }
 
--- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/IntrinsicGraphBuilder.java	Mon May 11 11:11:27 2015 +0200
+++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/IntrinsicGraphBuilder.java	Wed Apr 22 16:01:59 2015 +0200
@@ -152,8 +152,9 @@
         return graph;
     }
 
-    public FrameState createStateAfter() {
-        return getGraph().add(new FrameState(BytecodeFrame.BEFORE_BCI));
+    public void setStateAfter(StateSplit stateSplit) {
+        FrameState stateAfter = getGraph().add(new FrameState(BytecodeFrame.BEFORE_BCI));
+        stateSplit.setStateAfter(stateAfter);
     }
 
     public GraphBuilderContext getParent() {
--- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/PEGraphDecoder.java	Mon May 11 11:11:27 2015 +0200
+++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/PEGraphDecoder.java	Wed Apr 22 16:01:59 2015 +0200
@@ -169,7 +169,7 @@
         }
 
         @Override
-        public FrameState createStateAfter() {
+        public void setStateAfter(StateSplit stateSplit) {
             throw unimplemented();
         }
 
@@ -217,10 +217,11 @@
         }
 
         @Override
-        public FrameState createStateAfter() {
+        public void setStateAfter(StateSplit stateSplit) {
             Node stateAfter = decodeFloatingNode(methodScope.caller, methodScope.callerLoopScope, methodScope.invokeData.stateAfterOrderId);
             getGraph().add(stateAfter);
-            return (FrameState) handleFloatingNodeAfterAdd(methodScope.caller, methodScope.callerLoopScope, stateAfter);
+            FrameState fs = (FrameState) handleFloatingNodeAfterAdd(methodScope.caller, methodScope.callerLoopScope, stateAfter);
+            stateSplit.setStateAfter(fs);
         }
 
         @Override
--- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/asserts/NeverPartOfCompilationNode.java	Mon May 11 11:11:27 2015 +0200
+++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/asserts/NeverPartOfCompilationNode.java	Wed Apr 22 16:01:59 2015 +0200
@@ -34,8 +34,8 @@
     public static final NodeClass<NeverPartOfCompilationNode> TYPE = NodeClass.create(NeverPartOfCompilationNode.class);
     protected final String message;
 
-    public NeverPartOfCompilationNode(String message, FrameState stateAfter) {
-        super(TYPE, StampFactory.forVoid(), stateAfter);
+    public NeverPartOfCompilationNode(String message) {
+        super(TYPE, StampFactory.forVoid());
         this.message = message;
     }
 
--- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/substitutions/TruffleGraphBuilderPlugins.java	Mon May 11 11:11:27 2015 +0200
+++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/substitutions/TruffleGraphBuilderPlugins.java	Wed Apr 22 16:01:59 2015 +0200
@@ -239,7 +239,7 @@
             public boolean apply(GraphBuilderContext b, ResolvedJavaMethod targetMethod, Receiver receiver, ValueNode message) {
                 if (message.isConstant()) {
                     String messageString = message.asConstant().toValueString();
-                    b.add(new NeverPartOfCompilationNode(messageString, b.createStateAfter()));
+                    b.add(new NeverPartOfCompilationNode(messageString));
                     return true;
                 } else if (canDelayIntrinsification) {
                     return false;