public class ZeroMemoryNode extends FixedAccessNode implements LIRLowerable, SingleMemoryKill
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 |
|---|---|
static NodeClass<ZeroMemoryNode> |
TYPE |
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 |
|---|
ZeroMemoryNode(AddressNode address,
ValueNode length,
boolean isAligned,
org.graalvm.word.LocationIdentity locationIdentity,
OnHeapMemoryAccess.BarrierType type) |
ZeroMemoryNode(ValueNode address,
ValueNode length,
boolean isAligned,
org.graalvm.word.LocationIdentity locationIdentity) |
| 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.
|
void |
generate(NodeLIRBuilderTool gen) |
org.graalvm.word.LocationIdentity |
getKilledLocationIdentity()
This method is used to determine which memory location is killed by this node.
|
static void |
zero(Word address,
long length,
boolean isAligned,
org.graalvm.word.LocationIdentity locationIdentity) |
canDeoptimize, getAddress, getBarrierType, getGuard, getLastLocationAccess, getLocationIdentity, getUsedAsNullCheck, setAddress, setGuard, setLastLocationAccess, setUsedAsNullCheckgetDeoptReasonAndAction, getDeoptSpeculation, setImplicitDeoptimizationsetStateBefore, stateBeforeasFixedWithNextNode, next, setNextasFixedNode, verifyasConstant, asJavaConstant, asNode, asSerializableConstant, checkReplaceAtUsagesInvariants, getStackKind, graph, hasUsagesOtherThan, inferStamp, isAllowedUsageType, 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, waitasMultiMemoryKill, asSingleMemoryKill, isMemoryKill, isMultiMemoryKill, isSingleMemoryKillasNodecanUseAsStateDuringstatesasFixedNodepublic static final NodeClass<ZeroMemoryNode> TYPE
public ZeroMemoryNode(ValueNode address, ValueNode length, boolean isAligned, org.graalvm.word.LocationIdentity locationIdentity)
public ZeroMemoryNode(AddressNode address, ValueNode length, boolean isAligned, org.graalvm.word.LocationIdentity locationIdentity, OnHeapMemoryAccess.BarrierType type)
public void generate(NodeLIRBuilderTool gen)
generate in interface LIRLowerablepublic boolean canNullCheck()
AddressableMemoryAccesscanNullCheck in interface AddressableMemoryAccesspublic static void zero(Word address, long length, boolean isAligned, org.graalvm.word.LocationIdentity locationIdentity)
public org.graalvm.word.LocationIdentity getKilledLocationIdentity()
SingleMemoryKillLocationIdentity.any() will kill all memory locations.getKilledLocationIdentity in interface SingleMemoryKill