public abstract class AccessIndexedNode extends AccessArrayNode implements Lowerable, MemoryAccess
AccessIndexedNode class is the base class of instructions that read or write elements
of an array.Node.ConstantNodeParameter, Node.EdgeVisitor, Node.IndirectCanonicalization, Node.InjectedNodeParameter, Node.Input, Node.NodeInsertionStackTrace, Node.NodeIntrinsic, Node.NodeIntrinsicFactory, Node.OptionalInput, Node.Successor, Node.ValueNumberable| Modifier and Type | Field and Description |
|---|---|
protected JavaKind |
elementKind |
protected ValueNode |
index |
protected org.graalvm.word.LocationIdentity |
location |
static NodeClass<AccessIndexedNode> |
TYPE |
arraynextEMPTY_ARRAY, stampNODE_LIST, NOT_ITERABLE, TRACK_CREATION_POSITION, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges| Modifier | Constructor and Description |
|---|---|
protected |
AccessIndexedNode(NodeClass<? extends AccessIndexedNode> c,
Stamp stamp,
ValueNode array,
ValueNode index,
GuardingNode boundsCheck,
JavaKind elementKind)
Create an new AccessIndexedNode.
|
| Modifier and Type | Method and Description |
|---|---|
JavaKind |
elementKind()
Gets the element type of the array.
|
GuardingNode |
getBoundsCheck() |
org.graalvm.word.LocationIdentity |
getLocationIdentity() |
ValueNode |
index() |
array, setArrayasFixedWithNextNode, next, setNextasFixedNode, verifyasConstant, 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, waitgetLastLocationAccess, setLastLocationAccessasNodeasFixedNodepublic static final NodeClass<AccessIndexedNode> TYPE
protected ValueNode index
protected final JavaKind elementKind
protected final org.graalvm.word.LocationIdentity location
protected AccessIndexedNode(NodeClass<? extends AccessIndexedNode> c, Stamp stamp, ValueNode array, ValueNode index, GuardingNode boundsCheck, JavaKind elementKind)
stamp - the result kind of the accessarray - the instruction producing the arrayindex - the instruction producing the indexboundsCheck - the explicit array bounds check already performed before the access, or
null if no check was performed yetelementKind - the kind of the elements of the arraypublic ValueNode index()
public GuardingNode getBoundsCheck()
public JavaKind elementKind()
public org.graalvm.word.LocationIdentity getLocationIdentity()
getLocationIdentity in interface MemoryAccess