public class BasicArrayCopyNode extends AbstractMemoryCheckpoint implements Virtualizable, MemoryCheckpoint.Single, MemoryAccess, Lowerable, DeoptimizingNode.DeoptDuring
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 |
---|---|
protected int |
bci |
protected ValueNode |
dest |
protected ValueNode |
destPos |
protected Kind |
elementKind |
protected MemoryNode |
lastLocationAccess |
protected ValueNode |
length |
protected ValueNode |
src |
protected ValueNode |
srcPos |
(package private) FrameState |
stateDuring |
static NodeClass<BasicArrayCopyNode> |
TYPE |
stateAfter
next
NODE_LIST, NOT_ITERABLE, USE_UNSAFE_TO_CLONE, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges
Constructor and Description |
---|
BasicArrayCopyNode(NodeClass<? extends AbstractMemoryCheckpoint> type,
ValueNode src,
ValueNode srcPos,
ValueNode dest,
ValueNode destPos,
ValueNode length,
Kind elementKind) |
BasicArrayCopyNode(NodeClass<? extends AbstractMemoryCheckpoint> type,
ValueNode src,
ValueNode srcPos,
ValueNode dest,
ValueNode destPos,
ValueNode length,
Kind elementKind,
int bci) |
Modifier and Type | Method and Description |
---|---|
boolean |
canDeoptimize() |
private static boolean |
checkBounds(int position,
int length,
VirtualObjectNode virtualObject) |
private static boolean |
checkEntryTypes(int srcPos,
int length,
VirtualObjectNode src,
ResolvedJavaType destComponentType,
VirtualizerTool tool) |
void |
computeStateDuring(FrameState currentStateAfter) |
int |
getBci() |
ValueNode |
getDestination() |
ValueNode |
getDestinationPosition() |
Kind |
getElementKind() |
MemoryNode |
getLastLocationAccess() |
ValueNode |
getLength() |
LocationIdentity |
getLocationIdentity() |
ValueNode |
getSource() |
ValueNode |
getSourcePosition() |
boolean |
isExact() |
void |
lower(LoweringTool tool) |
void |
setLastLocationAccess(MemoryNode lla) |
void |
setStateDuring(FrameState stateDuring) |
FrameState |
stateDuring() |
void |
virtualize(VirtualizerTool tool) |
hasSideEffect, setStateAfter, stateAfter
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<BasicArrayCopyNode> TYPE
FrameState stateDuring
protected MemoryNode lastLocationAccess
protected Kind elementKind
protected int bci
public BasicArrayCopyNode(NodeClass<? extends AbstractMemoryCheckpoint> type, ValueNode src, ValueNode srcPos, ValueNode dest, ValueNode destPos, ValueNode length, Kind elementKind, int bci)
public BasicArrayCopyNode(NodeClass<? extends AbstractMemoryCheckpoint> type, ValueNode src, ValueNode srcPos, ValueNode dest, ValueNode destPos, ValueNode length, Kind elementKind)
public ValueNode getSourcePosition()
public ValueNode getDestination()
public ValueNode getDestinationPosition()
public int getBci()
public Kind getElementKind()
public LocationIdentity getLocationIdentity()
getLocationIdentity
in interface MemoryAccess
getLocationIdentity
in interface MemoryCheckpoint.Single
public MemoryNode getLastLocationAccess()
getLastLocationAccess
in interface MemoryAccess
public void setLastLocationAccess(MemoryNode lla)
setLastLocationAccess
in interface MemoryAccess
public void lower(LoweringTool tool)
private static boolean checkBounds(int position, int length, VirtualObjectNode virtualObject)
private static boolean checkEntryTypes(int srcPos, int length, VirtualObjectNode src, ResolvedJavaType destComponentType, VirtualizerTool tool)
public boolean isExact()
public void virtualize(VirtualizerTool tool)
virtualize
in interface Virtualizable
public boolean canDeoptimize()
canDeoptimize
in interface DeoptimizingNode
public FrameState stateDuring()
stateDuring
in interface DeoptimizingNode.DeoptDuring
public void setStateDuring(FrameState stateDuring)
setStateDuring
in interface DeoptimizingNode.DeoptDuring
public void computeStateDuring(FrameState currentStateAfter)
computeStateDuring
in interface DeoptimizingNode.DeoptDuring