public class SnippetCounterNode extends FixedWithNextNode implements Lowerable
Modifier and Type | Class and Description |
---|---|
(package private) static class |
SnippetCounterNode.SnippetCounterSnippets |
Node.ConstantNodeParameter, Node.InjectedNodeParameter, Node.Input, Node.NodeIntrinsic, Node.OptionalInput, Node.Successor, Node.ValueNumberable
Modifier and Type | Field and Description |
---|---|
protected SnippetCounter |
counter |
protected ValueNode |
increment |
static 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 |
next
NODE_LIST, NOT_ITERABLE, USE_UNSAFE_TO_CLONE, 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 LocationIdentity[] |
addSnippetCounters(LocationIdentity[] privateLocations)
When
#SnippetCounters are enabled make sure SNIPPET_COUNTER_LOCATION is part
of the private locations. |
SnippetCounter |
getCounter() |
ValueNode |
getIncrement() |
static void |
increment(SnippetCounter counter) |
void |
lower(LoweringTool tool)
Expand this node into lower level nodes expressing the same semantics.
|
asNode, next, setNext
asConstant, asJavaConstant, getKind, graph, inferStamp, isAllowedUsageType, 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, simplify, successors, toString, toString, updatePredecessor, updateUsages, updateUsagesInterface, usages, valueEquals, verifyEdges, verifyInputs
public static final NodeClass<SnippetCounterNode> TYPE
protected final SnippetCounter counter
public static final 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)
Lowerable
public static LocationIdentity[] addSnippetCounters(LocationIdentity[] privateLocations)
#SnippetCounters
are enabled make sure SNIPPET_COUNTER_LOCATION
is part
of the private locations.privateLocations
-