public final class JavaWriteNode extends AbstractWriteNode implements Lowerable, MemoryAccess
Node.ConstantNodeParameter, Node.EdgeVisitor, Node.IndirectCanonicalization, Node.InjectedNodeParameter, Node.Input, Node.NodeInsertionStackTrace, Node.NodeIntrinsic, Node.NodeIntrinsicFactory, Node.OptionalInput, Node.Successor, Node.ValueNumberableMemoryKill.NoLocationOnHeapMemoryAccess.BarrierTypeDeoptimizingNode.DeoptAfter, DeoptimizingNode.DeoptBefore, DeoptimizingNode.DeoptDuring| Modifier and Type | Field and Description |
|---|---|
protected boolean |
compressible |
protected boolean |
hasSideEffect |
protected MemoryOrderMode |
memoryOrder |
static NodeClass<JavaWriteNode> |
TYPE |
protected JavaKind |
writeKind |
barrierType, guard, location, usedAsNullCheckdeoptReasonAndAction, deoptSpeculationstateBeforenextEMPTY_ARRAY, stampNODE_LIST, NOT_ITERABLE, TRACK_CREATION_POSITION, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdgesMULTI_KILL_NO_LOCATION, NO_LOCATION| Constructor and Description |
|---|
JavaWriteNode(JavaKind writeKind,
AddressNode address,
org.graalvm.word.LocationIdentity location,
ValueNode value,
OnHeapMemoryAccess.BarrierType barrierType,
boolean compressible) |
JavaWriteNode(JavaKind writeKind,
AddressNode address,
org.graalvm.word.LocationIdentity location,
ValueNode value,
OnHeapMemoryAccess.BarrierType barrierType,
boolean compressible,
boolean hasSideEffect) |
JavaWriteNode(JavaKind writeKind,
AddressNode address,
org.graalvm.word.LocationIdentity location,
ValueNode value,
OnHeapMemoryAccess.BarrierType barrierType,
boolean compressible,
boolean hasSideEffect,
MemoryOrderMode memoryOrder) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
canNullCheck()
Determines if the memory touch operation represented by this node can use OS level semantics
for representing the null check of the memory location with an operating system level trap.
|
Stamp |
getAccessStamp(NodeView view) |
org.graalvm.word.LocationIdentity |
getKilledLocationIdentity()
This method is used to determine which memory location is killed by this node.
|
MemoryOrderMode |
getMemoryOrder()
Retrieves the node's required memory ordering.
|
JavaKind |
getWriteKind() |
boolean |
hasSideEffect()
Determines if this node has a side-effect.
|
boolean |
isCompressible() |
isAllowedUsageType, setStateAfter, setValue, stateAfter, valuecanDeoptimize, getAddress, getBarrierType, getGuard, getLastLocationAccess, getLocationIdentity, getUsedAsNullCheck, setAddress, setGuard, setLastLocationAccess, setUsedAsNullCheckgetDeoptReasonAndAction, getDeoptSpeculation, setImplicitDeoptimizationsetStateBefore, stateBeforeasFixedWithNextNode, next, setNextasFixedNode, verifyasConstant, asJavaConstant, asNode, asSerializableConstant, checkReplaceAtUsagesInvariants, getStackKind, graph, hasUsagesOtherThan, inferStamp, isConstant, isConstantPredicate, isDefaultConstant, isIllegalConstant, isJavaConstant, isNullConstant, isSerializableConstant, recursivelyDataFlowEqualsUpTo, setStamp, stamp, updateStamp, updateUsagesInterfaceafterClone, applyInputs, applySuccessors, assertFalse, assertTrue, cfgPredecessors, cfgSuccessors, clearInputs, clearNodeSourcePosition, clearSuccessors, copyWithInputs, copyWithInputs, dataFlowEquals, dynamicNodeSizeEstimate, estimatedNodeCycles, estimatedNodeSize, fail, formatTo, getCreationPosition, getDebug, getDebugProperties, getDebugProperties, getInsertionPosition, getNodeClass, getNodeSourcePosition, getOptions, getUsageCount, hasExactlyOneUsage, hashCode, hasMoreThanOneUsage, hasNoUsages, hasOnlyUsagesOfType, hasUsages, hasUsagesOfType, inputPositions, inputs, isAlive, isDeleted, isUnregistered, markDeleted, maybeNotifyZeroUsages, modCount, predecessor, pushInputs, removeUsage, replaceAllInputs, replaceAndDelete, replaceAtAllUsages, replaceAtMatchingUsages, replaceAtPredecessor, replaceAtUsages, replaceAtUsages, replaceAtUsages, replaceAtUsages, replaceAtUsages, replaceAtUsagesAndDelete, replaceAtUsagesAndDelete, replaceFirstInput, replaceFirstSuccessor, safeDelete, setCreationPosition, setInsertionPosition, setNodeSourcePosition, singleUsage, successorPositions, successors, toString, toString, updateNodeSourcePosition, updatePredecessor, updateUsages, usages, valueEquals, verifyEdges, verifyInputs, verifySourcePosition, withNodeSourcePositionclone, equals, getClass, notify, notifyAll, wait, wait, waitgetLastLocationAccess, getLocationIdentity, setLastLocationAccessasNodestatesasFixedNodeasMultiMemoryKill, asSingleMemoryKill, isMemoryKill, isMultiMemoryKill, isSingleMemoryKillordersMemoryAccessescanUseAsStateDuringpublic static final NodeClass<JavaWriteNode> TYPE
protected final JavaKind writeKind
protected final boolean compressible
protected final boolean hasSideEffect
protected final MemoryOrderMode memoryOrder
public JavaWriteNode(JavaKind writeKind,
AddressNode address,
org.graalvm.word.LocationIdentity location,
ValueNode value,
OnHeapMemoryAccess.BarrierType barrierType,
boolean compressible,
boolean hasSideEffect)
public JavaWriteNode(JavaKind writeKind,
AddressNode address,
org.graalvm.word.LocationIdentity location,
ValueNode value,
OnHeapMemoryAccess.BarrierType barrierType,
boolean compressible)
public JavaWriteNode(JavaKind writeKind,
AddressNode address,
org.graalvm.word.LocationIdentity location,
ValueNode value,
OnHeapMemoryAccess.BarrierType barrierType,
boolean compressible,
boolean hasSideEffect,
MemoryOrderMode memoryOrder)
public boolean canNullCheck()
AddressableMemoryAccesscanNullCheck in interface AddressableMemoryAccesspublic JavaKind getWriteKind()
public boolean isCompressible()
public MemoryOrderMode getMemoryOrder()
OrderedMemoryAccessgetMemoryOrder in interface OrderedMemoryAccesspublic org.graalvm.word.LocationIdentity getKilledLocationIdentity()
SingleMemoryKillLocationIdentity.any() will kill all memory locations.getKilledLocationIdentity in interface SingleMemoryKillpublic Stamp getAccessStamp(NodeView view)
getAccessStamp in class AbstractWriteNodepublic boolean hasSideEffect()
StateSplitFrameState nodes.hasSideEffect in interface StateSplithasSideEffect in class AbstractWriteNode