public final class LoweredAtomicReadAndWriteNode extends FixedAccessNode implements StateSplit, LIRLowerable, MemoryCheckpoint.Single
Unsafe.getAndSetInt(Object, long, int) .Node.ConstantNodeParameter, Node.InjectedNodeParameter, Node.Input, Node.NodeIntrinsic, Node.OptionalInput, Node.Successor, Node.ValueNumberableMemoryCheckpoint.Multi, MemoryCheckpoint.Single, MemoryCheckpoint.TypeAssertionHeapAccess.BarrierTypeDeoptimizingNode.DeoptAfter, DeoptimizingNode.DeoptBefore, DeoptimizingNode.DeoptDuring| Modifier and Type | Field and Description |
|---|---|
(package private) ValueNode |
newValue |
(package private) FrameState |
stateAfter |
static NodeClass<LoweredAtomicReadAndWriteNode> |
TYPE |
barrierType, guard, location, nullCheckstateBeforenextNODE_LIST, NOT_ITERABLE, USE_UNSAFE_TO_CLONE, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges| Constructor and Description |
|---|
LoweredAtomicReadAndWriteNode(AddressNode address,
LocationIdentity location,
ValueNode newValue,
HeapAccess.BarrierType barrierType) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
canNullCheck() |
void |
generate(NodeLIRBuilderTool gen) |
ValueNode |
getNewValue() |
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. |
FrameState |
stateAfter()
Gets the
FrameState corresponding to the state of the JVM after execution of this
node. |
canDeoptimize, getAddress, getBarrierType, getGuard, getLocationIdentity, getNullCheck, setAddress, setGuard, setNullChecksetStateBefore, stateBeforeasNode, 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, waitasNodestatesgetLocationIdentityasNodepublic static final NodeClass<LoweredAtomicReadAndWriteNode> TYPE
FrameState stateAfter
public LoweredAtomicReadAndWriteNode(AddressNode address, LocationIdentity location, ValueNode newValue, HeapAccess.BarrierType barrierType)
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 generate(NodeLIRBuilderTool gen)
generate in interface LIRLowerablepublic boolean canNullCheck()
canNullCheck in interface Accesspublic ValueNode getNewValue()