# HG changeset patch # User Andreas Woess # Date 1392808117 -3600 # Node ID 4ab3f98d724a40ef79136a90971486561c15e7a4 # Parent faa6fda7ee3635d10e1540645067a2e854c8eba8 pass concrete frame type as argument to NewFrameNode constructor diff -r faa6fda7ee36 -r 4ab3f98d724a graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/frame/NewFrameNode.java --- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/frame/NewFrameNode.java Tue Feb 18 21:55:26 2014 -0800 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/frame/NewFrameNode.java Wed Feb 19 12:08:37 2014 +0100 @@ -25,7 +25,6 @@ import java.util.*; import com.oracle.graal.api.meta.*; -import com.oracle.graal.api.runtime.*; import com.oracle.graal.graph.*; import com.oracle.graal.graph.spi.*; import com.oracle.graal.nodes.*; @@ -34,7 +33,6 @@ import com.oracle.graal.nodes.type.*; import com.oracle.graal.nodes.util.*; import com.oracle.graal.nodes.virtual.*; -import com.oracle.graal.runtime.*; import com.oracle.graal.truffle.*; import com.oracle.graal.truffle.nodes.*; import com.oracle.truffle.api.*; @@ -46,8 +44,6 @@ */ public class NewFrameNode extends FixedWithNextNode implements IterableNodeType, VirtualizableAllocation, Canonicalizable { - static final ResolvedJavaType FRAME_TYPE = Graal.getRequiredCapability(RuntimeProvider.class).getHostBackend().getProviders().getMetaAccess().lookupJavaType(FrameWithoutBoxing.class); - @Input private ValueNode descriptor; @Input private ValueNode caller; @Input private ValueNode arguments; @@ -59,8 +55,8 @@ this.arguments = arguments; } - public NewFrameNode(ValueNode descriptor, ValueNode caller, ValueNode arguments) { - this(StampFactory.exactNonNull(FRAME_TYPE), descriptor, caller, arguments); + public NewFrameNode(ResolvedJavaType frameType, ValueNode descriptor, ValueNode caller, ValueNode arguments) { + this(StampFactory.exactNonNull(frameType), descriptor, caller, arguments); } public ValueNode getDescriptor() { @@ -233,5 +229,5 @@ } @NodeIntrinsic - public static native FrameWithoutBoxing allocate(FrameDescriptor descriptor, PackedFrame caller, Arguments args); + public static native FrameWithoutBoxing allocate(@ConstantNodeParameter Class frameType, FrameDescriptor descriptor, PackedFrame caller, Arguments args); } diff -r faa6fda7ee36 -r 4ab3f98d724a graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/substitutions/OptimizedCallTargetSubstitutions.java --- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/substitutions/OptimizedCallTargetSubstitutions.java Tue Feb 18 21:55:26 2014 -0800 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/substitutions/OptimizedCallTargetSubstitutions.java Wed Feb 19 12:08:37 2014 +0100 @@ -44,6 +44,6 @@ @MethodSubstitution private static FrameWithoutBoxing createFrame(FrameDescriptor descriptor, PackedFrame caller, Arguments args) { - return NewFrameNode.allocate(descriptor, caller, args); + return NewFrameNode.allocate(FrameWithoutBoxing.class, descriptor, caller, args); } }