public final class WriteNode extends AbstractWriteNode implements LIRLowerable, Simplifiable, Virtualizable
Node.ConstantNodeParameter, Node.InjectedNodeParameter, Node.Input, Node.NodeIntrinsic, Node.OptionalInput, Node.Successor, Node.ValueNumberable
MemoryCheckpoint.Multi, MemoryCheckpoint.Single, MemoryCheckpoint.TypeAssertion
HeapAccess.BarrierType
DeoptimizingNode.DeoptAfter, DeoptimizingNode.DeoptBefore, DeoptimizingNode.DeoptDuring
Modifier and Type | Field and Description |
---|---|
static NodeClass<WriteNode> |
TYPE |
initialization, lastLocationAccess, stateAfter, value
address, barrierType, guard, location, nullCheck
stateBefore
next
NODE_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, value
canDeoptimize, getAddress, getBarrierType, getGuard, getLocationIdentity, getNullCheck, setAddress, setGuard, setNullCheck
setStateBefore, stateBefore
asNode, next, setNext
asConstant, asJavaConstant, getKind, graph, inferStamp, isConstant, isConstantPredicate, isNullConstant, setStamp, stamp, updateStamp
acceptInputs, 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, verifyInputs
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
asNode
states
getLocationIdentity
getLocationIdentity
asNode
asNode
private 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 LIRLowerable
public void simplify(SimplifierTool tool)
Node
Simplifiable
. The implementation in
Node
exists to obviate the need to cast a node before invoking
Simplifiable.simplify(SimplifierTool)
.simplify
in interface Simplifiable
simplify
in class Node
public static void writeMemory(AddressNode.Address address, LocationIdentity location, Object value, HeapAccess.BarrierType barrierType)
public void virtualize(VirtualizerTool tool)
Virtualizable
virtualize
in interface Virtualizable
tool
- the tool used to describe the effects of this nodepublic boolean canNullCheck()
canNullCheck
in interface Access