public final class MemoryPhiNode extends PhiNode implements SingleMemoryKill
PhiNodes merge memory dependencies at control flow merges.Node.ConstantNodeParameter, Node.EdgeVisitor, Node.IndirectCanonicalization, Node.InjectedNodeParameter, Node.Input, Node.NodeInsertionStackTrace, Node.NodeIntrinsic, Node.NodeIntrinsicFactory, Node.OptionalInput, Node.Successor, Node.ValueNumberableMemoryKill.NoLocationCanonicalizable.Binary<T extends Node>, Canonicalizable.BinaryCommutative<T extends Node>, Canonicalizable.Ternary<T extends Node>, Canonicalizable.Unary<T extends Node>| Modifier and Type | Field and Description |
|---|---|
protected org.graalvm.word.LocationIdentity |
locationIdentity |
static NodeClass<MemoryPhiNode> |
TYPE |
EMPTY_ARRAY, stampNODE_LIST, NOT_ITERABLE, TRACK_CREATION_POSITION, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdgesMULTI_KILL_NO_LOCATION, NO_LOCATION| Constructor and Description |
|---|
MemoryPhiNode(AbstractMergeNode merge,
org.graalvm.word.LocationIdentity locationIdentity) |
MemoryPhiNode(AbstractMergeNode merge,
org.graalvm.word.LocationIdentity locationIdentity,
ValueNode[] values) |
| Modifier and Type | Method and Description |
|---|---|
ProxyNode |
createProxyFor(LoopExitNode lex) |
PhiNode |
duplicateOn(AbstractMergeNode newMerge)
Create a phi of the same kind on the given merge.
|
org.graalvm.word.LocationIdentity |
getKilledLocationIdentity()
This method is used to determine which memory location is killed by this node.
|
org.graalvm.word.LocationIdentity |
getLocationIdentity() |
protected String |
valueDescription()
String describing the kind of value this Phi merges.
|
NodeInputList<ValueNode> |
values() |
addInput, backValues, canonical, clearValues, firstValue, initializeValueAt, isDegenerated, isLoopPhi, merge, removeInput, setMerge, setValueAt, setValueAt, singleBackValueOrThis, singleValueOrThis, toString, valueAt, valueAt, valueCount, 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, updateNodeSourcePosition, updatePredecessor, updateUsages, usages, valueEquals, verifyEdges, verifyInputs, verifySourcePosition, withNodeSourcePositionclone, equals, getClass, notify, notifyAll, wait, wait, waitasMultiMemoryKill, asSingleMemoryKill, isMemoryKill, isMultiMemoryKill, isSingleMemoryKillasNodepublic static final NodeClass<MemoryPhiNode> TYPE
protected final org.graalvm.word.LocationIdentity locationIdentity
public MemoryPhiNode(AbstractMergeNode merge, org.graalvm.word.LocationIdentity locationIdentity)
public MemoryPhiNode(AbstractMergeNode merge, org.graalvm.word.LocationIdentity locationIdentity, ValueNode[] values)
public org.graalvm.word.LocationIdentity getLocationIdentity()
public NodeInputList<ValueNode> values()
protected String valueDescription()
PhiNodePhiNode.toString(Verbosity) and
dumping.valueDescription in class PhiNodepublic org.graalvm.word.LocationIdentity getKilledLocationIdentity()
SingleMemoryKillLocationIdentity.any() will kill all memory locations.getKilledLocationIdentity in interface SingleMemoryKillpublic PhiNode duplicateOn(AbstractMergeNode newMerge)
PhiNodeduplicateOn in class PhiNodenewMerge - the merge to use for the newly created phipublic ProxyNode createProxyFor(LoopExitNode lex)
createProxyFor in class PhiNode