public abstract class AbstractWriteNode extends FixedAccessNode implements StateSplit, MemoryCheckpoint.Single, MemoryAccess, GuardingNode
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 |
|---|---|
protected boolean |
initialization |
(package private) Node |
lastLocationAccess |
(package private) FrameState |
stateAfter |
static NodeClass<AbstractWriteNode> |
TYPE |
(package private) ValueNode |
value |
address, barrierType, guard, location, nullCheckstateBeforenextNODE_LIST, NOT_ITERABLE, USE_UNSAFE_TO_CLONE, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges| Modifier | Constructor and Description |
|---|---|
protected |
AbstractWriteNode(NodeClass<? extends AbstractWriteNode> c,
AddressNode address,
LocationIdentity location,
ValueNode value,
HeapAccess.BarrierType barrierType) |
protected |
AbstractWriteNode(NodeClass<? extends AbstractWriteNode> c,
AddressNode address,
LocationIdentity location,
ValueNode value,
HeapAccess.BarrierType barrierType,
boolean initialization) |
protected |
AbstractWriteNode(NodeClass<? extends AbstractWriteNode> c,
AddressNode address,
LocationIdentity location,
ValueNode value,
HeapAccess.BarrierType barrierType,
GuardingNode guard,
boolean initialization) |
| Modifier and Type | Method and Description |
|---|---|
MemoryNode |
getLastLocationAccess() |
boolean |
hasSideEffect()
Determines if this node has a side-effect.
|
boolean |
isAllowedUsageType(InputType type) |
boolean |
isInitialization()
Returns whether this write is the initialization of the written location.
|
void |
setLastLocationAccess(MemoryNode lla) |
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() |
canDeoptimize, getAddress, getBarrierType, getGuard, getLocationIdentity, getNullCheck, setAddress, setGuard, setNullChecksetStateBefore, stateBeforeasNode, next, setNextasConstant, asJavaConstant, getKind, graph, inferStamp, 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, waitasNodestatesgetLocationIdentitygetLocationIdentityasNodecanNullCheckasNodepublic static final NodeClass<AbstractWriteNode> TYPE
FrameState stateAfter
Node lastLocationAccess
protected final boolean initialization
protected AbstractWriteNode(NodeClass<? extends AbstractWriteNode> c, AddressNode address, LocationIdentity location, ValueNode value, HeapAccess.BarrierType barrierType)
protected AbstractWriteNode(NodeClass<? extends AbstractWriteNode> c, AddressNode address, LocationIdentity location, ValueNode value, HeapAccess.BarrierType barrierType, boolean initialization)
protected AbstractWriteNode(NodeClass<? extends AbstractWriteNode> c, AddressNode address, LocationIdentity location, ValueNode value, HeapAccess.BarrierType barrierType, GuardingNode guard, boolean initialization)
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 boolean isInitialization()
public boolean isAllowedUsageType(InputType type)
isAllowedUsageType in class ValueNodepublic MemoryNode getLastLocationAccess()
getLastLocationAccess in interface MemoryAccesspublic void setLastLocationAccess(MemoryNode lla)
setLastLocationAccess in interface MemoryAccesslla - the MemoryNode that represents the last kill of the location