Class ArrayCopyNode
java.lang.Object
jdk.graal.compiler.graph.Node
jdk.graal.compiler.nodes.ValueNode
jdk.graal.compiler.nodes.FixedNode
jdk.graal.compiler.nodes.ControlSplitNode
jdk.graal.compiler.nodes.WithExceptionNode
jdk.graal.compiler.replacements.nodes.BasicArrayCopyNode
jdk.graal.compiler.replacements.arraycopy.ArrayCopyNode
- All Implemented Interfaces:
Cloneable
,Formattable
,MemoryKillMarker
,DeoptBciSupplier
,DeoptimizingNode
,DeoptimizingNode.DeoptDuring
,FixedNodeInterface
,MemoryAccess
,MemoryKill
,SingleMemoryKill
,Lowerable
,NodeWithState
,Virtualizable
,StateSplit
,ValueNodeInterface
This node intrinsifies
System.arraycopy(java.lang.Object, int, java.lang.Object, int, int)
.
Lowering is implemented in the platform/VM specific LoweringProvider
.
Most of them eventually go through
ArrayCopySnippets.Templates.lower(ArrayCopyNode, boolean, LoweringTool)
.-
Nested Class Summary
Nested classes/interfaces inherited from class jdk.graal.compiler.graph.Node
Node.ConstantNodeParameter, Node.EdgeVisitor, Node.IndirectInputChangedCanonicalization, Node.InjectedNodeParameter, Node.Input, Node.InputsChangedCanonicalization, Node.NodeInsertionStackTrace, Node.NodeIntrinsic, Node.NodeIntrinsicFactory, Node.OptionalInput, Node.Successor, Node.ValueNumberable
Nested classes/interfaces inherited from interface jdk.graal.compiler.nodes.DeoptimizingNode
DeoptimizingNode.DeoptAfter, DeoptimizingNode.DeoptBefore, DeoptimizingNode.DeoptDuring
Nested classes/interfaces inherited from interface jdk.graal.compiler.nodes.memory.MemoryKill
MemoryKill.NoLocation
-
Field Summary
FieldsFields inherited from class jdk.graal.compiler.replacements.nodes.BasicArrayCopyNode
bci, elementKind, lastLocationAccess, stateAfter
Fields inherited from class jdk.graal.compiler.nodes.WithExceptionNode
exceptionEdge, next
Fields inherited from class jdk.graal.compiler.nodes.ValueNode
EMPTY_ARRAY, stamp
Fields inherited from class jdk.graal.compiler.graph.Node
NOT_ITERABLE, TRACK_CREATION_POSITION, WithAllEdges, WithOnlyInputEdges
Fields inherited from interface jdk.graal.compiler.nodes.memory.MemoryKill
MULTI_KILL_NO_LOCATION, NO_LOCATION
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionorg.graalvm.word.LocationIdentity
This method is used to determine which memory location is killed by this node.boolean
Methods inherited from class jdk.graal.compiler.replacements.nodes.BasicArrayCopyNode
bci, canDeoptimize, checkBounds, checkEntryTypes, computeStateDuring, getDestination, getDestinationPosition, getElementKind, getLastLocationAccess, getLength, getLocationIdentity, getSource, getSourcePosition, hasSideEffect, isExact, selectComponentKind, setBci, setLastLocationAccess, setSource, setSourcePosition, setStateAfter, setStateDuring, stateAfter, stateDuring, virtualize
Methods inherited from class jdk.graal.compiler.nodes.WithExceptionNode
exceptionEdge, getPrimarySuccessor, getProfileData, getSuccessorCount, killExceptionEdge, next, probability, replaceWithNonThrowing, setExceptionEdge, setNext, setProbability
Methods inherited from class jdk.graal.compiler.nodes.ControlSplitNode
successorProbabilities
Methods inherited from class jdk.graal.compiler.nodes.FixedNode
asFixedNode, verifyNode
Methods inherited from class jdk.graal.compiler.nodes.ValueNode
asConstant, asJavaConstant, asNode, checkReplaceAtUsagesInvariants, getStackKind, graph, hasUsagesOtherThan, inferStamp, isAllowedUsageType, isConstant, isConstantPredicate, isDefaultConstant, isIllegalConstant, isJavaConstant, isNullConstant, recursivelyDataFlowEqualsUpTo, setStamp, stamp, updateStamp, updateUsagesInterface
Methods inherited from class jdk.graal.compiler.graph.Node
afterClone, applyInputs, applySuccessors, assertFalse, assertTrue, cfgPredecessors, cfgSuccessors, clearInputs, clearNodeSourcePosition, clearSuccessors, copyWithInputs, copyWithInputs, dataFlowEquals, dynamicNodeSizeEstimate, estimatedNodeCycles, estimatedNodeSize, fail, formatTo, getCreationPosition, getDebug, getDebugProperties, getDebugProperties, getId, getIdBeforeDeletion, getInsertionPosition, getNodeClass, getNodeSourcePosition, getOptions, getUsageCount, hasExactlyOneUsage, hasExactlyOneUsageOfType, hashCode, hasMoreThanOneUsage, hasNoUsages, hasUsages, inputPositions, inputs, isAlive, isDeleted, isUnregistered, markDeleted, maybeNotifyZeroUsages, modCount, predecessor, pushInputs, removeDeadUsages, removeUsage, removeUsages, replaceAllInputs, replaceAndDelete, replaceAtAllUsages, replaceAtMatchingUsages, replaceAtPredecessor, replaceAtUsages, replaceAtUsages, replaceAtUsages, replaceAtUsages, replaceAtUsages, replaceAtUsagesAndDelete, replaceFirstInput, replaceFirstSuccessor, safeDelete, setCreationPosition, setInsertionPosition, setNodeSourcePosition, singleUsage, successorPositions, successors, toString, toString, updateNodeSourcePosition, updatePredecessor, updateUsages, usages, valueEquals, verify, verify, verifyEdges, verifyInputs, withNodeSourcePosition
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface jdk.graal.compiler.nodes.DeoptimizingNode
validateDeoptFrameStates
Methods inherited from interface jdk.graal.compiler.nodes.FixedNodeInterface
asFixedNode
Methods inherited from interface jdk.graal.compiler.nodes.spi.NodeWithState
states
Methods inherited from interface jdk.graal.compiler.nodes.ValueNodeInterface
asNode
-
Field Details
-
TYPE
-
forceAnyLocation
protected final boolean forceAnyLocation
-
-
Constructor Details
-
ArrayCopyNode
-
-
Method Details
-
getKilledLocationIdentity
public org.graalvm.word.LocationIdentity getKilledLocationIdentity()Description copied from interface:SingleMemoryKill
This method is used to determine which memory location is killed by this node. Returning the special valueLocationIdentity.any()
will kill all memory locations.- Specified by:
getKilledLocationIdentity
in interfaceSingleMemoryKill
- Overrides:
getKilledLocationIdentity
in classBasicArrayCopyNode
- Returns:
- the identity of the location killed by this node.
-
killsAnyLocation
public boolean killsAnyLocation()
-