public class RawLoadNode extends UnsafeAccessNode implements Lowerable, Virtualizable, Canonicalizable, SingleMemoryKill
Node.ConstantNodeParameter, Node.EdgeVisitor, Node.IndirectCanonicalization, Node.InjectedNodeParameter, Node.Input, Node.NodeInsertionStackTrace, Node.NodeIntrinsic, Node.NodeIntrinsicFactory, Node.OptionalInput, Node.Successor, Node.ValueNumberableCanonicalizable.Binary<T extends Node>, Canonicalizable.BinaryCommutative<T extends Node>, Canonicalizable.Ternary<T extends Node>, Canonicalizable.Unary<T extends Node>MemoryKill.NoLocation| Modifier and Type | Field and Description |
|---|---|
static NodeClass<RawLoadNode> |
TYPE |
accessKind, forceLocation, locationIdentitynextEMPTY_ARRAY, stampNODE_LIST, NOT_ITERABLE, TRACK_CREATION_POSITION, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdgesMULTI_KILL_NO_LOCATION, NO_LOCATION| Modifier | Constructor and Description |
|---|---|
protected |
RawLoadNode(NodeClass<? extends RawLoadNode> c,
ValueNode object,
ValueNode offset,
JavaKind accessKind,
org.graalvm.word.LocationIdentity locationIdentity) |
protected |
RawLoadNode(NodeClass<? extends RawLoadNode> c,
ValueNode object,
ValueNode offset,
JavaKind accessKind,
org.graalvm.word.LocationIdentity locationIdentity,
boolean forceLocation) |
protected |
RawLoadNode(NodeClass<? extends RawLoadNode> c,
ValueNode object,
ValueNode offset,
JavaKind accessKind,
org.graalvm.word.LocationIdentity locationIdentity,
boolean forceLocation,
MemoryOrderMode memoryOrder) |
protected |
RawLoadNode(NodeClass<? extends RawLoadNode> c,
ValueNode object,
ValueNode offset,
JavaKind accessKind,
org.graalvm.word.LocationIdentity locationIdentity,
MemoryOrderMode memoryOrder) |
|
RawLoadNode(Stamp stamp,
ValueNode object,
ValueNode offset,
org.graalvm.word.LocationIdentity locationIdentity,
JavaKind accessKind)
This constructor exists for node intrinsics that need a stamp based on the return type of the
Node.NodeIntrinsic annotated method. |
|
RawLoadNode(ValueNode object,
ValueNode offset,
JavaKind accessKind,
org.graalvm.word.LocationIdentity locationIdentity)
This constructor exists for node intrinsics that need a stamp based on
accessKind. |
|
RawLoadNode(ValueNode object,
ValueNode offset,
JavaKind accessKind,
org.graalvm.word.LocationIdentity locationIdentity,
boolean forceLocation) |
| Modifier and Type | Method and Description |
|---|---|
Node |
canonical(CanonicalizerTool tool)
Implementations of this method can provide local optimizations like constant folding and
strength reduction.
|
protected ValueNode |
cloneAsArrayAccess(ValueNode location,
org.graalvm.word.LocationIdentity identity,
MemoryOrderMode memOrder) |
protected ValueNode |
cloneAsFieldAccess(Assumptions assumptions,
ResolvedJavaField field,
MemoryOrderMode memOrder) |
org.graalvm.word.LocationIdentity |
getKilledLocationIdentity()
This method is used to determine which memory location is killed by this node.
|
boolean |
inferStamp()
This method can be overridden by subclasses of
ValueNode if they need to recompute
their stamp if their inputs change. |
static Object |
load(Object object,
long offset,
JavaKind kind,
org.graalvm.word.LocationIdentity locationIdentity) |
void |
virtualize(VirtualizerTool tool)
A node class can implement this method to convey information about what its effect would be
if some of its inputs were virtualized.
|
accessKind, getLocationIdentity, getMemoryOrder, isCanonicalizable, isLocationForced, object, offsetasFixedWithNextNode, next, setNextasFixedNode, verifyasConstant, asJavaConstant, asNode, asSerializableConstant, checkReplaceAtUsagesInvariants, getStackKind, graph, hasUsagesOtherThan, isAllowedUsageType, isConstant, isConstantPredicate, isDefaultConstant, isIllegalConstant, isJavaConstant, isNullConstant, isSerializableConstant, recursivelyDataFlowEqualsUpTo, setStamp, stamp, updateStamp, updateUsagesInterfaceafterClone, applyInputs, applySuccessors, assertFalse, assertTrue, cfgPredecessors, cfgSuccessors, clearInputs, clearNodeSourcePosition, clearSuccessors, copyWithInputs, copyWithInputs, dataFlowEquals, dynamicNodeSizeEstimate, estimatedNodeCycles, estimatedNodeSize, fail, formatTo, getCreationPosition, getDebug, getDebugProperties, getDebugProperties, getInsertionPosition, getNodeClass, getNodeSourcePosition, getOptions, getUsageCount, hasExactlyOneUsage, hashCode, hasMoreThanOneUsage, hasNoUsages, hasOnlyUsagesOfType, hasUsages, hasUsagesOfType, inputPositions, inputs, isAlive, isDeleted, isUnregistered, markDeleted, maybeNotifyZeroUsages, modCount, predecessor, pushInputs, removeUsage, replaceAllInputs, replaceAndDelete, replaceAtAllUsages, replaceAtMatchingUsages, replaceAtPredecessor, replaceAtUsages, replaceAtUsages, replaceAtUsages, replaceAtUsages, replaceAtUsages, replaceAtUsagesAndDelete, replaceAtUsagesAndDelete, replaceFirstInput, replaceFirstSuccessor, safeDelete, setCreationPosition, setInsertionPosition, setNodeSourcePosition, singleUsage, successorPositions, successors, toString, toString, updateNodeSourcePosition, updatePredecessor, updateUsages, usages, valueEquals, verifyEdges, verifyInputs, verifySourcePosition, withNodeSourcePositionclone, equals, getClass, notify, notifyAll, wait, wait, waitasMultiMemoryKill, asSingleMemoryKill, isMemoryKill, isMultiMemoryKill, isSingleMemoryKillasNodeordersMemoryAccessesgetLastLocationAccess, setLastLocationAccessasFixedNodepublic static final NodeClass<RawLoadNode> TYPE
public RawLoadNode(ValueNode object, ValueNode offset, JavaKind accessKind, org.graalvm.word.LocationIdentity locationIdentity)
accessKind.public RawLoadNode(ValueNode object, ValueNode offset, JavaKind accessKind, org.graalvm.word.LocationIdentity locationIdentity, boolean forceLocation)
public RawLoadNode(Stamp stamp, ValueNode object, ValueNode offset, org.graalvm.word.LocationIdentity locationIdentity, JavaKind accessKind)
Node.NodeIntrinsic annotated method.protected RawLoadNode(NodeClass<? extends RawLoadNode> c, ValueNode object, ValueNode offset, JavaKind accessKind, org.graalvm.word.LocationIdentity locationIdentity)
protected RawLoadNode(NodeClass<? extends RawLoadNode> c, ValueNode object, ValueNode offset, JavaKind accessKind, org.graalvm.word.LocationIdentity locationIdentity, boolean forceLocation)
protected RawLoadNode(NodeClass<? extends RawLoadNode> c, ValueNode object, ValueNode offset, JavaKind accessKind, org.graalvm.word.LocationIdentity locationIdentity, MemoryOrderMode memoryOrder)
protected RawLoadNode(NodeClass<? extends RawLoadNode> c, ValueNode object, ValueNode offset, JavaKind accessKind, org.graalvm.word.LocationIdentity locationIdentity, boolean forceLocation, MemoryOrderMode memoryOrder)
public org.graalvm.word.LocationIdentity getKilledLocationIdentity()
SingleMemoryKillLocationIdentity.any() will kill all memory locations.getKilledLocationIdentity in interface SingleMemoryKillpublic boolean inferStamp()
ValueNodeValueNode if they need to recompute
their stamp if their inputs change. A typical implementation will compute the stamp and pass
it to ValueNode.updateStamp(Stamp), whose return value can be used as the result of this
method.inferStamp in class ValueNodepublic void virtualize(VirtualizerTool tool)
Virtualizablevirtualize in interface Virtualizabletool - the tool used to describe the effects of this nodepublic Node canonical(CanonicalizerTool tool)
Canonicalizablenull will delete the current node and replace it with null at
all usages. Note that it is not necessary to delete floating nodes that have no more usages
this way - they will be deleted automatically.canonical in interface Canonicalizablecanonical in class UnsafeAccessNodetool - provides access to runtime interfaces like MetaAccessProviderprotected ValueNode cloneAsFieldAccess(Assumptions assumptions, ResolvedJavaField field, MemoryOrderMode memOrder)
cloneAsFieldAccess in class UnsafeAccessNodeprotected ValueNode cloneAsArrayAccess(ValueNode location, org.graalvm.word.LocationIdentity identity, MemoryOrderMode memOrder)
cloneAsArrayAccess in class UnsafeAccessNode