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 |
nextNODE_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, setNextasConstant, asJavaConstant, getKind, graph, inferStamp, isAllowedUsageType, isConstant, isConstantPredicate, isNullConstant, setStamp, stamp, updateStampacceptInputs, 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, verifyInputspublic 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)
Lowerablepublic static LocationIdentity[] addSnippetCounters(LocationIdentity[] privateLocations)
#SnippetCounters are enabled make sure SNIPPET_COUNTER_LOCATION is part
of the private locations.privateLocations -