public class SnippetCounterNode extends FixedWithNextNode implements Lowerable
Node.ConstantNodeParameter, Node.EdgeVisitor, Node.IndirectCanonicalization, Node.InjectedNodeParameter, Node.Input, Node.NodeInsertionStackTrace, Node.NodeIntrinsic, Node.NodeIntrinsicFactory, Node.OptionalInput, Node.Successor, Node.ValueNumberable| Modifier and Type | Field and Description |
|---|---|
protected SnippetCounter |
counter |
protected ValueNode |
increment |
static org.graalvm.word.LocationIdentity |
SNIPPET_COUNTER_LOCATION
We do not want to use the
LocationIdentity of the SnippetCounter.value()
field, so that the usage in snippets is always possible. |
static NodeClass<SnippetCounterNode> |
TYPE |
nextEMPTY_ARRAY, stampNODE_LIST, NOT_ITERABLE, TRACK_CREATION_POSITION, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges| Constructor and Description |
|---|
SnippetCounterNode(SnippetCounter counter,
ValueNode increment) |
| Modifier and Type | Method and Description |
|---|---|
static void |
add(SnippetCounter counter,
int increment) |
static org.graalvm.word.LocationIdentity[] |
addSnippetCounters(org.graalvm.word.LocationIdentity[] privateLocations)
Add
SnippetCounterNode.SNIPPET_COUNTER_LOCATION to privateLocations if it isn't already there. |
SnippetCounter |
getCounter() |
ValueNode |
getIncrement() |
static void |
increment(SnippetCounter counter) |
void |
lower(LoweringTool tool)
Expand this node into lower level nodes expressing the same semantics.
|
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, 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, waitasNodeasFixedNodepublic static final NodeClass<SnippetCounterNode> TYPE
protected ValueNode increment
protected final SnippetCounter counter
public static final org.graalvm.word.LocationIdentity SNIPPET_COUNTER_LOCATION
LocationIdentity of the SnippetCounter.value()
field, so that the usage in snippets is always possible. If a method accesses the counter via
the field and the snippet, the result might not be correct though.public SnippetCounterNode(SnippetCounter counter, ValueNode increment)
public SnippetCounter getCounter()
public ValueNode getIncrement()
public static void add(SnippetCounter counter, int increment)
public static void increment(SnippetCounter counter)
public void lower(LoweringTool tool)
Lowerablepublic static org.graalvm.word.LocationIdentity[] addSnippetCounters(org.graalvm.word.LocationIdentity[] privateLocations)
SnippetCounterNode.SNIPPET_COUNTER_LOCATION to privateLocations if it isn't already there.privateLocations -