public final class UnsafeCopyNode extends FixedWithNextNode implements StateSplit
UnsafeLoadNode
and UnsafeStoreNode
pair.Node.ConstantNodeParameter, Node.InjectedNodeParameter, Node.Input, Node.NodeIntrinsic, Node.OptionalInput, Node.Successor, Node.ValueNumberable
Modifier and Type | Field and Description |
---|---|
protected Kind |
accessKind |
(package private) ValueNode |
destinationObject |
(package private) ValueNode |
destinationOffset |
protected LocationIdentity |
locationIdentity |
(package private) ValueNode |
sourceObject |
(package private) ValueNode |
sourceOffset |
(package private) FrameState |
stateAfter |
static NodeClass<UnsafeCopyNode> |
TYPE |
next
NODE_LIST, NOT_ITERABLE, USE_UNSAFE_TO_CLONE, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges
Constructor and Description |
---|
UnsafeCopyNode(ValueNode sourceObject,
ValueNode sourceOffset,
ValueNode destinationObject,
ValueNode destinationOffset,
Kind accessKind,
LocationIdentity locationIdentity) |
UnsafeCopyNode(ValueNode sourceObject,
ValueNode sourceOffset,
ValueNode destinationObject,
ValueNode destinationOffset,
Kind accessKind,
LocationIdentity locationIdentity,
FrameState stateAfter) |
Modifier and Type | Method and Description |
---|---|
Kind |
accessKind() |
static void |
copy(Object srcObject,
long srcOffset,
Object destObject,
long destOffset,
Kind kind,
LocationIdentity locationIdentity) |
ValueNode |
destinationObject() |
ValueNode |
destinationOffset() |
LocationIdentity |
getLocationIdentity() |
FrameState |
getState() |
boolean |
hasSideEffect()
Determines if this node has a side-effect.
|
void |
setStateAfter(FrameState x)
Sets the
FrameState corresponding to the state of the JVM after execution of this
node. |
ValueNode |
sourceObject() |
ValueNode |
sourceOffset() |
FrameState |
stateAfter()
Gets the
FrameState corresponding to the state of the JVM after execution of this
node. |
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
states
public static final NodeClass<UnsafeCopyNode> TYPE
ValueNode sourceObject
ValueNode destinationObject
ValueNode sourceOffset
ValueNode destinationOffset
protected final Kind accessKind
protected final LocationIdentity locationIdentity
FrameState stateAfter
public UnsafeCopyNode(ValueNode sourceObject, ValueNode sourceOffset, ValueNode destinationObject, ValueNode destinationOffset, Kind accessKind, LocationIdentity locationIdentity)
public UnsafeCopyNode(ValueNode sourceObject, ValueNode sourceOffset, ValueNode destinationObject, ValueNode destinationOffset, Kind accessKind, LocationIdentity locationIdentity, FrameState stateAfter)
public ValueNode sourceObject()
public ValueNode destinationObject()
public LocationIdentity getLocationIdentity()
public ValueNode sourceOffset()
public ValueNode destinationOffset()
public Kind accessKind()
public FrameState stateAfter()
StateSplit
FrameState
corresponding to the state of the JVM after execution of this
node.stateAfter
in interface StateSplit
public void setStateAfter(FrameState x)
StateSplit
FrameState
corresponding to the state of the JVM after execution of this
node.setStateAfter
in interface StateSplit
public boolean hasSideEffect()
StateSplit
FrameState
nodes.hasSideEffect
in interface StateSplit
public FrameState getState()
public static void copy(Object srcObject, long srcOffset, Object destObject, long destOffset, Kind kind, LocationIdentity locationIdentity)