public final class MembarNode extends FixedWithNextNode implements LIRLowerable, SingleMemoryKill
| Modifier and Type | Class and Description |
|---|---|
static class |
MembarNode.FenceKind |
Node.ConstantNodeParameter, Node.EdgeVisitor, Node.IndirectCanonicalization, Node.InjectedNodeParameter, Node.Input, Node.NodeInsertionStackTrace, Node.NodeIntrinsic, Node.NodeIntrinsicFactory, Node.OptionalInput, Node.Successor, Node.ValueNumberableMemoryKill.NoLocation| Modifier and Type | Field and Description |
|---|---|
protected MembarNode.FenceKind |
fence |
protected org.graalvm.word.LocationIdentity |
location |
static NodeClass<MembarNode> |
TYPE |
nextEMPTY_ARRAY, stampNODE_LIST, NOT_ITERABLE, TRACK_CREATION_POSITION, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdgesMULTI_KILL_NO_LOCATION, NO_LOCATION| Constructor and Description |
|---|
MembarNode(MembarNode.FenceKind fence) |
MembarNode(MembarNode.FenceKind fence,
org.graalvm.word.LocationIdentity location) |
| Modifier and Type | Method and Description |
|---|---|
void |
generate(NodeLIRBuilderTool generator) |
Map<Object,Object> |
getDebugProperties(Map<Object,Object> map)
Fills a
Map with properties of this for use in debugging (e.g., to view in
the ideal graph visualizer). |
org.graalvm.word.LocationIdentity |
getKilledLocationIdentity()
This method is used to determine which memory location is killed by this node.
|
static void |
memoryBarrier(MembarNode.FenceKind fence) |
static void |
memoryBarrier(MembarNode.FenceKind fence,
org.graalvm.word.LocationIdentity location) |
asFixedWithNextNode, 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, 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, isSingleMemoryKillasNodeasFixedNodepublic static final NodeClass<MembarNode> TYPE
protected final MembarNode.FenceKind fence
protected final org.graalvm.word.LocationIdentity location
public MembarNode(MembarNode.FenceKind fence)
public MembarNode(MembarNode.FenceKind fence, org.graalvm.word.LocationIdentity location)
public org.graalvm.word.LocationIdentity getKilledLocationIdentity()
SingleMemoryKillLocationIdentity.any() will kill all memory locations.getKilledLocationIdentity in interface SingleMemoryKillpublic Map<Object,Object> getDebugProperties(Map<Object,Object> map)
NodeMap with properties of this for use in debugging (e.g., to view in
the ideal graph visualizer). Subclasses overriding this method should also fill the map using
their superclass.getDebugProperties in class Nodepublic void generate(NodeLIRBuilderTool generator)
generate in interface LIRLowerablepublic static void memoryBarrier(MembarNode.FenceKind fence)
public static void memoryBarrier(MembarNode.FenceKind fence, org.graalvm.word.LocationIdentity location)