src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/GuardedValueNode.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File
*** old/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/GuardedValueNode.java	Mon Mar 20 17:40:25 2017
--- new/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/GuardedValueNode.java	Mon Mar 20 17:40:25 2017

*** 23,34 **** --- 23,32 ---- package org.graalvm.compiler.nodes; import static org.graalvm.compiler.nodeinfo.NodeCycles.CYCLES_0; import static org.graalvm.compiler.nodeinfo.NodeSize.SIZE_0; import org.graalvm.compiler.core.common.type.Stamp; import org.graalvm.compiler.graph.IterableNodeType; import org.graalvm.compiler.graph.Node; import org.graalvm.compiler.graph.NodeClass; import org.graalvm.compiler.graph.spi.Canonicalizable; import org.graalvm.compiler.graph.spi.CanonicalizerTool; import org.graalvm.compiler.nodeinfo.NodeInfo;
*** 47,70 **** --- 45,62 ---- * is used to keep the nodes depending on guards inside a loop during speculative guard movement. * * A GuardedValueNode will only go away if its guard is null or {@link StructuredGraph#start()}. */ @NodeInfo(cycles = CYCLES_0, size = SIZE_0) - public final class GuardedValueNode extends FloatingGuardedNode implements LIRLowerable, Virtualizable, IterableNodeType, Canonicalizable, ValueProxy { public static final NodeClass<GuardedValueNode> TYPE = NodeClass.create(GuardedValueNode.class); @Input ValueNode object; protected final Stamp piStamp; public GuardedValueNode(ValueNode object, GuardingNode guard, Stamp stamp) { super(TYPE, computeStamp(stamp, object), guard); this.object = object; this.piStamp = stamp; } public GuardedValueNode(ValueNode object, GuardingNode guard) { ! this(object, guard, object.stamp()); ! super(TYPE, object.stamp(), guard); + this.object = object; } public ValueNode object() { return object; }
*** 76,90 **** --- 68,78 ---- } } @Override public boolean inferStamp() { ! return updateStamp(computeStamp(piStamp, object())); } static Stamp computeStamp(Stamp piStamp, ValueNode object) { return piStamp.improveWith(object.stamp()); ! return updateStamp(object().stamp()); } @Override public void virtualize(VirtualizerTool tool) { ValueNode alias = tool.getAlias(object());

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/GuardedValueNode.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File