# HG changeset patch # User Gilles Duboscq # Date 1371201401 -7200 # Node ID 6b34d50d3d24ed9b3b405b8e6408dc986168920e # Parent 92cbc5e8848450b57c635ac230d39ea0a9442bc7 Remove PiNode.anchor, use the guard field of FloatingGuardedNode instead diff -r 92cbc5e88484 -r 6b34d50d3d24 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/PiNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/PiNode.java Fri Jun 14 12:11:19 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/PiNode.java Fri Jun 14 11:16:41 2013 +0200 @@ -35,7 +35,6 @@ public class PiNode extends FloatingGuardedNode implements LIRLowerable, Virtualizable, Node.IterableNodeType, GuardingNode { @Input private ValueNode object; - @Input private FixedNode anchor; public ValueNode object() { return object; @@ -46,10 +45,9 @@ this.object = object; } - public PiNode(ValueNode object, Stamp stamp, FixedNode anchor) { - super(stamp); + public PiNode(ValueNode object, Stamp stamp, GuardingNode anchor) { + super(stamp, anchor); this.object = object; - this.anchor = anchor; } @Override diff -r 92cbc5e88484 -r 6b34d50d3d24 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/UnsafeArrayCastNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/UnsafeArrayCastNode.java Fri Jun 14 12:11:19 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/UnsafeArrayCastNode.java Fri Jun 14 11:16:41 2013 +0200 @@ -42,11 +42,15 @@ this.length = length; } - public UnsafeArrayCastNode(ValueNode object, ValueNode length, Stamp stamp, ValueNode anchor) { + public UnsafeArrayCastNode(ValueNode object, ValueNode length, Stamp stamp, GuardingNode anchor) { super(object, stamp, anchor); this.length = length; } + private UnsafeArrayCastNode(ValueNode object, ValueNode length, Stamp stamp, ValueNode anchor) { + this(object, length, stamp, (GuardingNode) anchor); + } + @Override public ValueNode canonical(CanonicalizerTool tool) { if (!(object() instanceof ArrayLengthProvider) || length() != ((ArrayLengthProvider) object()).length()) { diff -r 92cbc5e88484 -r 6b34d50d3d24 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/UnsafeCastNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/UnsafeCastNode.java Fri Jun 14 12:11:19 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/UnsafeCastNode.java Fri Jun 14 11:16:41 2013 +0200 @@ -36,8 +36,12 @@ super(object, stamp); } + public UnsafeCastNode(ValueNode object, Stamp stamp, GuardingNode anchor) { + super(object, stamp, anchor); + } + public UnsafeCastNode(ValueNode object, Stamp stamp, ValueNode anchor) { - super(object, stamp, (FixedNode) anchor); + this(object, stamp, (GuardingNode) anchor); } public UnsafeCastNode(ValueNode object, ResolvedJavaType toType, boolean exactType, boolean nonNull) { @@ -100,7 +104,7 @@ public static native T unsafeCast(Object object, @ConstantNodeParameter Stamp stamp); @NodeIntrinsic - public static native T unsafeCast(Object object, @ConstantNodeParameter Stamp stamp, ValueNode anchor); + public static native T unsafeCast(Object object, @ConstantNodeParameter Stamp stamp, GuardingNode anchor); @SuppressWarnings("unused") @NodeIntrinsic diff -r 92cbc5e88484 -r 6b34d50d3d24 graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/InliningUtil.java --- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/InliningUtil.java Fri Jun 14 12:11:19 2013 +0200 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/InliningUtil.java Fri Jun 14 11:16:41 2013 +0200 @@ -1227,7 +1227,7 @@ } } - private static PiNode createAnchoredReceiver(StructuredGraph graph, FixedNode anchor, ResolvedJavaType commonType, ValueNode receiver, boolean exact) { + private static PiNode createAnchoredReceiver(StructuredGraph graph, GuardingNode anchor, ResolvedJavaType commonType, ValueNode receiver, boolean exact) { // to avoid that floating reads on receiver fields float above the type check return graph.unique(new PiNode(receiver, exact ? StampFactory.exactNonNull(commonType) : StampFactory.declaredNonNull(commonType), anchor)); }