public final class ArrayCopySlowPathNode extends BasicArrayCopyNode
Node.ConstantNodeParameter, Node.InjectedNodeParameter, Node.Input, Node.NodeIntrinsic, Node.OptionalInput, Node.Successor, Node.ValueNumberable
MemoryCheckpoint.Multi, MemoryCheckpoint.Single, MemoryCheckpoint.TypeAssertion
DeoptimizingNode.DeoptAfter, DeoptimizingNode.DeoptBefore, DeoptimizingNode.DeoptDuring
Modifier and Type | Field and Description |
---|---|
private Object |
argument
Extra context for the slow path snippet.
|
private SnippetTemplate.SnippetInfo |
snippet |
static NodeClass<ArrayCopySlowPathNode> |
TYPE |
bci, dest, destPos, elementKind, lastLocationAccess, length, src, srcPos
stateAfter
next
NODE_LIST, NOT_ITERABLE, USE_UNSAFE_TO_CLONE, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges
Constructor and Description |
---|
ArrayCopySlowPathNode(ValueNode src,
ValueNode srcPos,
ValueNode dest,
ValueNode destPos,
ValueNode length,
Kind elementKind,
SnippetTemplate.SnippetInfo snippet,
Object argument) |
Modifier and Type | Method and Description |
---|---|
static void |
arraycopy(Object nonNullSrc,
int srcPos,
Object nonNullDest,
int destPos,
int length,
Kind elementKind,
SnippetTemplate.SnippetInfo snippet,
Object argument) |
Object |
getArgument() |
LocationIdentity |
getLocationIdentity()
This method is used to determine which memory location is killed by this node.
|
SnippetTemplate.SnippetInfo |
getSnippet() |
void |
setBci(int bci) |
canDeoptimize, computeStateDuring, getBci, getDestination, getDestinationPosition, getElementKind, getLastLocationAccess, getLength, getSource, getSourcePosition, isExact, lower, setLastLocationAccess, setStateDuring, stateDuring, virtualize
hasSideEffect, setStateAfter, stateAfter
asNode, next, setNext
asConstant, asJavaConstant, getKind, graph, inferStamp, isAllowedUsageType, isConstant, isConstantPredicate, isNullConstant, setStamp, stamp, updateStamp
acceptInputs, acceptSuccessors, afterClone, assertFalse, assertTrue, cfgPredecessors, cfgSuccessors, clearInputs, clearSuccessors, copyWithInputs, copyWithInputs, equals, fail, formatTo, getDebugProperties, getDebugProperties, getId, getNodeClass, getUsageAt, getUsageCount, hashCode, hasNoUsages, hasUsages, inputs, isAlive, isDeleted, markDeleted, modCount, newIdentityMap, newIdentityMap, newIdentityMap, newMap, newMap, newMap, newSet, newSet, predecessor, pushInputs, removeUsage, replaceAndDelete, replaceAtMatchingUsages, replaceAtPredecessor, replaceAtUsages, replaceAtUsages, replaceAtUsages, replaceFirstInput, replaceFirstSuccessor, safeDelete, simplify, successors, toString, toString, updatePredecessor, updateUsages, updateUsagesInterface, usages, valueEquals, verifyEdges, verifyInputs
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
asNode
hasSideEffect, setStateAfter, stateAfter
states
public static final NodeClass<ArrayCopySlowPathNode> TYPE
private final SnippetTemplate.SnippetInfo snippet
public ArrayCopySlowPathNode(ValueNode src, ValueNode srcPos, ValueNode dest, ValueNode destPos, ValueNode length, Kind elementKind, SnippetTemplate.SnippetInfo snippet, Object argument)
public static void arraycopy(Object nonNullSrc, int srcPos, Object nonNullDest, int destPos, int length, Kind elementKind, SnippetTemplate.SnippetInfo snippet, Object argument)
public SnippetTemplate.SnippetInfo getSnippet()
public Object getArgument()
public LocationIdentity getLocationIdentity()
MemoryCheckpoint.Single
LocationIdentity.any()
will kill all memory locations.getLocationIdentity
in interface MemoryAccess
getLocationIdentity
in interface MemoryCheckpoint.Single
getLocationIdentity
in class BasicArrayCopyNode
public void setBci(int bci)