public final class UnsafeStoreNode extends UnsafeAccessNode implements StateSplit, Lowerable, Virtualizable, MemoryCheckpoint.Single
Node.ConstantNodeParameter, Node.InjectedNodeParameter, Node.Input, Node.NodeIntrinsic, Node.OptionalInput, Node.Successor, Node.ValueNumberableMemoryCheckpoint.Multi, MemoryCheckpoint.Single, MemoryCheckpoint.TypeAssertionCanonicalizable.Binary<T extends Node>, Canonicalizable.BinaryCommutative<T extends Node>, Canonicalizable.Unary<T extends Node>| Modifier and Type | Field and Description |
|---|---|
(package private) FrameState |
stateAfter |
static NodeClass<UnsafeStoreNode> |
TYPE |
(package private) ValueNode |
value |
accessKind, locationIdentity, object, offsetnextNODE_LIST, NOT_ITERABLE, USE_UNSAFE_TO_CLONE, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges| Constructor and Description |
|---|
UnsafeStoreNode(ValueNode object,
ValueNode offset,
ValueNode value,
Kind accessKind,
LocationIdentity locationIdentity) |
UnsafeStoreNode(ValueNode object,
ValueNode offset,
ValueNode value,
Kind accessKind,
LocationIdentity locationIdentity,
FrameState stateAfter) |
| Modifier and Type | Method and Description |
|---|---|
protected ValueNode |
cloneAsArrayAccess(ValueNode location,
LocationIdentity identity) |
protected ValueNode |
cloneAsFieldAccess(ResolvedJavaField field) |
FrameState |
getState() |
boolean |
hasSideEffect()
Determines if this node has a side-effect.
|
void |
lower(LoweringTool tool)
Expand this node into lower level nodes expressing the same semantics.
|
void |
setStateAfter(FrameState x)
Sets the
FrameState corresponding to the state of the JVM after execution of this
node. |
FrameState |
stateAfter()
Gets the
FrameState corresponding to the state of the JVM after execution of this
node. |
ValueNode |
value() |
void |
virtualize(VirtualizerTool tool)
A node class can implement this method to convey information about what its effect would be
if some of its inputs were virtualized.
|
accessKind, canonical, getLocationIdentity, object, offsetasNode, next, setNextasConstant, asJavaConstant, getKind, graph, inferStamp, isAllowedUsageType, isConstant, isConstantPredicate, isNullConstant, setStamp, stamp, updateStampacceptInputs, 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, verifyInputsclone, finalize, getClass, notify, notifyAll, wait, wait, waitasNodestatesgetLocationIdentitypublic static final NodeClass<UnsafeStoreNode> TYPE
FrameState stateAfter
public UnsafeStoreNode(ValueNode object, ValueNode offset, ValueNode value, Kind accessKind, LocationIdentity locationIdentity)
public UnsafeStoreNode(ValueNode object, ValueNode offset, ValueNode value, Kind accessKind, LocationIdentity locationIdentity, FrameState stateAfter)
public FrameState stateAfter()
StateSplitFrameState corresponding to the state of the JVM after execution of this
node.stateAfter in interface StateSplitpublic void setStateAfter(FrameState x)
StateSplitFrameState corresponding to the state of the JVM after execution of this
node.setStateAfter in interface StateSplitpublic boolean hasSideEffect()
StateSplitFrameState nodes.hasSideEffect in interface StateSplitpublic void lower(LoweringTool tool)
Lowerablepublic void virtualize(VirtualizerTool tool)
Virtualizablevirtualize in interface Virtualizabletool - the tool used to describe the effects of this nodeprotected ValueNode cloneAsFieldAccess(ResolvedJavaField field)
cloneAsFieldAccess in class UnsafeAccessNodeprotected ValueNode cloneAsArrayAccess(ValueNode location, LocationIdentity identity)
cloneAsArrayAccess in class UnsafeAccessNodepublic FrameState getState()