public final class ArrayCopyNode extends BasicArrayCopyNode implements Lowerable
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, org.graalvm.compiler.nodes.spi.LoweringTool).Node.ConstantNodeParameter, Node.EdgeVisitor, Node.IndirectCanonicalization, Node.InjectedNodeParameter, Node.Input, Node.NodeInsertionStackTrace, Node.NodeIntrinsic, Node.NodeIntrinsicFactory, Node.OptionalInput, Node.Successor, Node.ValueNumberableMemoryKill.NoLocationDeoptimizingNode.DeoptAfter, DeoptimizingNode.DeoptBefore, DeoptimizingNode.DeoptDuring| Modifier and Type | Field and Description |
|---|---|
protected boolean |
forceAnyLocation |
static NodeClass<ArrayCopyNode> |
TYPE |
bci, elementKind, lastLocationAccess, stateAfterexceptionEdge, nextEMPTY_ARRAY, stampNODE_LIST, NOT_ITERABLE, TRACK_CREATION_POSITION, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdgesMULTI_KILL_NO_LOCATION, NO_LOCATION| Modifier | Constructor and Description |
|---|---|
protected |
ArrayCopyNode(int bci,
ValueNode src,
ValueNode srcPos,
ValueNode dst,
ValueNode dstPos,
ValueNode length,
boolean forceAnyLocation) |
| Modifier and Type | Method and Description |
|---|---|
org.graalvm.word.LocationIdentity |
getKilledLocationIdentity()
This method is used to determine which memory location is killed by this node.
|
boolean |
killsAnyLocation() |
bci, canDeoptimize, checkBounds, checkEntryTypes, computeStateDuring, getDestination, getDestinationPosition, getElementKind, getLastLocationAccess, getLength, getLocationIdentity, getSource, getSourcePosition, hasSideEffect, isExact, selectComponentKind, setBci, setLastLocationAccess, setSource, setSourcePosition, setStateAfter, setStateDuring, stateAfter, stateDuring, virtualizeexceptionEdge, getPrimarySuccessor, getProfileData, getSuccessorCount, killExceptionEdge, next, probability, replaceWithNonThrowing, setExceptionEdge, setNext, setProbabilitysuccessorProbabilitiesasFixedNode, 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, waitasNodeasMultiMemoryKill, asSingleMemoryKill, isMemoryKill, isMultiMemoryKill, isSingleMemoryKillstatesasFixedNodepublic static final NodeClass<ArrayCopyNode> TYPE
protected final boolean forceAnyLocation
public org.graalvm.word.LocationIdentity getKilledLocationIdentity()
SingleMemoryKillLocationIdentity.any() will kill all memory locations.getKilledLocationIdentity in interface SingleMemoryKillgetKilledLocationIdentity in class BasicArrayCopyNodepublic boolean killsAnyLocation()