public final class LoweredCompareAndSwapNode extends FixedAccessNode implements StateSplit, LIRLowerable, MemoryCheckpoint.Single
CompareAndSwapNode.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 |
expectedValue |
(package private) ValueNode |
newValue |
(package private) FrameState |
stateAfter |
static NodeClass<LoweredCompareAndSwapNode> |
TYPE |
barrierType, guard, location, nullCheckstateBeforenextNODE_LIST, NOT_ITERABLE, USE_UNSAFE_TO_CLONE, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges| Constructor and Description |
|---|
LoweredCompareAndSwapNode(AddressNode address,
LocationIdentity location,
ValueNode expectedValue,
ValueNode newValue,
HeapAccess.BarrierType barrierType) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
canNullCheck() |
void |
generate(NodeLIRBuilderTool gen) |
ValueNode |
getExpectedValue() |
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<LoweredCompareAndSwapNode> TYPE
ValueNode expectedValue
FrameState stateAfter
public LoweredCompareAndSwapNode(AddressNode address, LocationIdentity location, ValueNode expectedValue, 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 ValueNode getExpectedValue()
public ValueNode getNewValue()
public boolean canNullCheck()
canNullCheck in interface Accesspublic void generate(NodeLIRBuilderTool gen)
generate in interface LIRLowerable