public final class WriteNode extends AbstractWriteNode implements LIRLowerable, Simplifiable, Virtualizable
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 |
|---|---|
static NodeClass<WriteNode> |
TYPE |
initialization, lastLocationAccess, stateAfter, valueaddress, barrierType, guard, location, nullCheckstateBeforenextNODE_LIST, NOT_ITERABLE, USE_UNSAFE_TO_CLONE, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges| Modifier | Constructor and Description |
|---|---|
|
WriteNode(AddressNode address,
LocationIdentity location,
ValueNode value,
HeapAccess.BarrierType barrierType) |
|
WriteNode(AddressNode address,
LocationIdentity location,
ValueNode value,
HeapAccess.BarrierType barrierType,
boolean initialization) |
|
WriteNode(AddressNode address,
LocationIdentity location,
ValueNode value,
HeapAccess.BarrierType barrierType,
GuardingNode guard,
boolean initialization) |
private |
WriteNode(ValueNode address,
LocationIdentity location,
ValueNode value,
HeapAccess.BarrierType barrierType) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
canNullCheck() |
void |
generate(NodeLIRBuilderTool gen) |
void |
simplify(SimplifierTool tool)
Must be overridden by subclasses that implement
Simplifiable. |
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.
|
static void |
writeMemory(AddressNode.Address address,
LocationIdentity location,
Object value,
HeapAccess.BarrierType barrierType) |
getLastLocationAccess, hasSideEffect, isAllowedUsageType, isInitialization, setLastLocationAccess, setStateAfter, stateAfter, valuecanDeoptimize, 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, successors, toString, toString, updatePredecessor, updateUsages, updateUsagesInterface, usages, valueEquals, verifyEdges, verifyInputsclone, finalize, getClass, notify, notifyAll, wait, wait, waitasNodestatesgetLocationIdentitygetLocationIdentityasNodeasNodeprivate WriteNode(ValueNode address, LocationIdentity location, ValueNode value, HeapAccess.BarrierType barrierType)
public WriteNode(AddressNode address, LocationIdentity location, ValueNode value, HeapAccess.BarrierType barrierType)
public WriteNode(AddressNode address, LocationIdentity location, ValueNode value, HeapAccess.BarrierType barrierType, boolean initialization)
public WriteNode(AddressNode address, LocationIdentity location, ValueNode value, HeapAccess.BarrierType barrierType, GuardingNode guard, boolean initialization)
public void generate(NodeLIRBuilderTool gen)
generate in interface LIRLowerablepublic void simplify(SimplifierTool tool)
NodeSimplifiable. The implementation in
Node exists to obviate the need to cast a node before invoking
Simplifiable.simplify(SimplifierTool).simplify in interface Simplifiablesimplify in class Nodepublic static void writeMemory(AddressNode.Address address, LocationIdentity location, Object value, HeapAccess.BarrierType barrierType)
public void virtualize(VirtualizerTool tool)
Virtualizablevirtualize in interface Virtualizabletool - the tool used to describe the effects of this nodepublic boolean canNullCheck()
canNullCheck in interface Access