changeset 16582:0eb70f622d01

Truffle: make NeverPartOfCompilationNode a MacroStateSplitNode for better debuggability
author Andreas Woess <andreas.woess@jku.at>
date Fri, 18 Jul 2014 00:33:37 +0200
parents 8be5c68a779d
children 342fe74e3b90
files graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/asserts/NeverPartOfCompilationNode.java graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/typesystem/CustomizedUnsafeStoreMacroNode.java
diffstat 2 files changed, 2 insertions(+), 26 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/asserts/NeverPartOfCompilationNode.java	Tue Jul 22 16:32:43 2014 +0200
+++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/asserts/NeverPartOfCompilationNode.java	Fri Jul 18 00:33:37 2014 +0200
@@ -24,11 +24,9 @@
 
 import com.oracle.graal.graph.*;
 import com.oracle.graal.nodes.*;
-import com.oracle.graal.nodes.spi.*;
-import com.oracle.graal.nodes.util.*;
 import com.oracle.graal.replacements.nodes.*;
 
-public class NeverPartOfCompilationNode extends MacroNode implements IterableNodeType {
+public class NeverPartOfCompilationNode extends MacroStateSplitNode implements IterableNodeType {
 
     private final String message;
 
@@ -44,9 +42,4 @@
     public final String getMessage() {
         return message + " " + arguments.toString();
     }
-
-    @Override
-    public void lower(LoweringTool tool) {
-        throw GraphUtil.approxSourceException(this, new VerificationError(getMessage()));
-    }
 }
--- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/typesystem/CustomizedUnsafeStoreMacroNode.java	Tue Jul 22 16:32:43 2014 +0200
+++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/typesystem/CustomizedUnsafeStoreMacroNode.java	Fri Jul 18 00:33:37 2014 +0200
@@ -35,9 +35,6 @@
  * Macro node for method {@link CompilerDirectives#unsafeCast(Object, Class, boolean)}.
  */
 public class CustomizedUnsafeStoreMacroNode extends NeverPartOfCompilationNode implements Canonicalizable, StateSplit {
-
-    @Input(InputType.State) private FrameState stateAfter;
-
     private static final int ARGUMENT_COUNT = 4;
     private static final int OBJECT_ARGUMENT_INDEX = 0;
     private static final int OFFSET_ARGUMENT_INDEX = 1;
@@ -47,7 +44,6 @@
     public CustomizedUnsafeStoreMacroNode(Invoke invoke) {
         super(invoke, "The location argument could not be resolved to a constant.");
         assert arguments.size() == ARGUMENT_COUNT;
-        this.stateAfter = invoke.stateAfter();
     }
 
     @Override
@@ -64,21 +60,8 @@
                 locationIdentity = ObjectLocationIdentity.create(locationArgument.asConstant());
             }
 
-            return new UnsafeStoreNode(objectArgument, offsetArgument, valueArgument, this.getTargetMethod().getSignature().getParameterKind(VALUE_ARGUMENT_INDEX), locationIdentity, stateAfter);
+            return new UnsafeStoreNode(objectArgument, offsetArgument, valueArgument, this.getTargetMethod().getSignature().getParameterKind(VALUE_ARGUMENT_INDEX), locationIdentity, stateAfter());
         }
         return this;
     }
-
-    @Override
-    public FrameState stateAfter() {
-        return stateAfter;
-    }
-
-    public void setStateAfter(FrameState x) {
-        this.stateAfter = x;
-    }
-
-    public boolean hasSideEffect() {
-        return true;
-    }
 }