src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/extended/FixedValueAnchorNode.java
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
hotspot Cdiff src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/extended/FixedValueAnchorNode.java
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/extended/FixedValueAnchorNode.java
Print this page
*** 23,58 ****
package org.graalvm.compiler.nodes.extended;
import static org.graalvm.compiler.nodeinfo.NodeCycles.CYCLES_0;
import static org.graalvm.compiler.nodeinfo.NodeSize.SIZE_0;
import org.graalvm.compiler.graph.NodeClass;
import org.graalvm.compiler.nodeinfo.NodeInfo;
import org.graalvm.compiler.nodes.FixedWithNextNode;
import org.graalvm.compiler.nodes.ValueNode;
import org.graalvm.compiler.nodes.spi.LIRLowerable;
import org.graalvm.compiler.nodes.spi.NodeLIRBuilderTool;
import org.graalvm.compiler.nodes.spi.ValueProxy;
@NodeInfo(cycles = CYCLES_0, size = SIZE_0)
! public final class FixedValueAnchorNode extends FixedWithNextNode implements LIRLowerable, ValueProxy {
public static final NodeClass<FixedValueAnchorNode> TYPE = NodeClass.create(FixedValueAnchorNode.class);
@Input ValueNode object;
public ValueNode object() {
return object;
}
public FixedValueAnchorNode(ValueNode object) {
super(TYPE, object.stamp());
this.object = object;
}
@Override
public boolean inferStamp() {
return updateStamp(object.stamp());
}
@NodeIntrinsic
public static native Object getObject(Object object);
--- 23,70 ----
package org.graalvm.compiler.nodes.extended;
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.NodeClass;
import org.graalvm.compiler.nodeinfo.NodeInfo;
import org.graalvm.compiler.nodes.FixedWithNextNode;
import org.graalvm.compiler.nodes.ValueNode;
import org.graalvm.compiler.nodes.spi.LIRLowerable;
import org.graalvm.compiler.nodes.spi.NodeLIRBuilderTool;
import org.graalvm.compiler.nodes.spi.ValueProxy;
@NodeInfo(cycles = CYCLES_0, size = SIZE_0)
! public final class FixedValueAnchorNode extends FixedWithNextNode implements LIRLowerable, ValueProxy, GuardingNode {
public static final NodeClass<FixedValueAnchorNode> TYPE = NodeClass.create(FixedValueAnchorNode.class);
@Input ValueNode object;
+ private Stamp predefinedStamp;
public ValueNode object() {
return object;
}
public FixedValueAnchorNode(ValueNode object) {
super(TYPE, object.stamp());
this.object = object;
}
+ public FixedValueAnchorNode(ValueNode object, Stamp predefinedStamp) {
+ super(TYPE, predefinedStamp);
+ this.object = object;
+ this.predefinedStamp = predefinedStamp;
+ }
+
@Override
public boolean inferStamp() {
+ if (predefinedStamp == null) {
return updateStamp(object.stamp());
+ } else {
+ return false;
+ }
}
@NodeIntrinsic
public static native Object getObject(Object object);
*** 64,69 ****
--- 76,86 ----
@Override
public ValueNode getOriginalNode() {
return object;
}
+ @Override
+ public GuardingNode getGuard() {
+ return this;
+ }
+
}
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/extended/FixedValueAnchorNode.java
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File