public final class FloatingReadNode extends FloatingAccessNode implements LIRLowerableAccess, Canonicalizable
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>OnHeapMemoryAccess.BarrierType| Modifier and Type | Field and Description |
|---|---|
static NodeClass<FloatingReadNode> |
TYPE |
barrierType, locationguardEMPTY_ARRAY, stampNODE_LIST, NOT_ITERABLE, TRACK_CREATION_POSITION, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges| Constructor and Description |
|---|
FloatingReadNode(AddressNode address,
org.graalvm.word.LocationIdentity location,
MemoryKill lastLocationAccess,
Stamp stamp) |
FloatingReadNode(AddressNode address,
org.graalvm.word.LocationIdentity location,
MemoryKill lastLocationAccess,
Stamp stamp,
GuardingNode guard) |
FloatingReadNode(AddressNode address,
org.graalvm.word.LocationIdentity location,
MemoryKill lastLocationAccess,
Stamp stamp,
GuardingNode guard,
OnHeapMemoryAccess.BarrierType barrierType) |
| Modifier and Type | Method and Description |
|---|---|
FixedAccessNode |
asFixedNode() |
Node |
canonical(CanonicalizerTool tool)
Implementations of this method can provide local optimizations like constant folding and
strength reduction.
|
void |
generate(NodeLIRBuilderTool gen) |
Stamp |
getAccessStamp(NodeView view) |
MemoryKill |
getLastLocationAccess() |
void |
setLastLocationAccess(MemoryKill newlla) |
boolean |
verify() |
canNullCheck, getAddress, getBarrierType, getLocationIdentity, setAddressgetGuard, setGuardasConstant, asJavaConstant, asNode, asSerializableConstant, checkReplaceAtUsagesInvariants, getStackKind, graph, hasUsagesOtherThan, inferStamp, 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, waitcanNullCheck, getAddress, setAddressgetLocationIdentityasNodegetGuard, setGuardpublic static final NodeClass<FloatingReadNode> TYPE
public FloatingReadNode(AddressNode address, org.graalvm.word.LocationIdentity location, MemoryKill lastLocationAccess, Stamp stamp)
public FloatingReadNode(AddressNode address, org.graalvm.word.LocationIdentity location, MemoryKill lastLocationAccess, Stamp stamp, GuardingNode guard)
public FloatingReadNode(AddressNode address, org.graalvm.word.LocationIdentity location, MemoryKill lastLocationAccess, Stamp stamp, GuardingNode guard, OnHeapMemoryAccess.BarrierType barrierType)
public MemoryKill getLastLocationAccess()
getLastLocationAccess in interface MemoryAccesspublic void setLastLocationAccess(MemoryKill newlla)
setLastLocationAccess in interface MemoryAccessnewlla - the MemoryKill that represents the last kill of the
LocationIdentity returned by MemoryAccess.getLocationIdentity()public void generate(NodeLIRBuilderTool gen)
generate in interface LIRLowerablepublic 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 Canonicalizabletool - provides access to runtime interfaces like MetaAccessProviderpublic FixedAccessNode asFixedNode()
asFixedNode in class FloatingAccessNodepublic Stamp getAccessStamp(NodeView view)
getAccessStamp in interface LIRLowerableAccess