public final class AssertionNode extends FixedWithNextNode implements Lowerable, Canonicalizable, LIRLowerable
Node.ConstantNodeParameter, Node.EdgeVisitor, Node.IndirectCanonicalization, Node.InjectedNodeParameter, Node.Input, Node.NodeInsertionStackTrace, Node.NodeIntrinsic, Node.NodeIntrinsicFactory, Node.OptionalInput, Node.Successor, Node.ValueNumberableCanonicalizable.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 boolean |
compileTimeAssertion |
protected String |
message |
static NodeClass<AssertionNode> |
TYPE |
nextEMPTY_ARRAY, stampNODE_LIST, NOT_ITERABLE, TRACK_CREATION_POSITION, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges| Modifier | Constructor and Description |
|---|---|
protected |
AssertionNode(boolean compileTimeAssertion,
ValueNode condition,
String message,
Object msgArg1,
Object msgArg2,
ValueNode l1,
ValueNode l2) |
| Modifier and Type | Method and Description |
|---|---|
static void |
assertion(boolean compileTimeAssertion,
boolean condition,
String message,
Object msgArg1,
Object msgArg2,
long arg1,
long arg2) |
Node |
canonical(CanonicalizerTool tool)
Implementations of this method can provide local optimizations like constant folding and
strength reduction.
|
ValueNode |
condition() |
static void |
dynamicAssert(boolean condition,
String message) |
static void |
dynamicAssert(boolean condition,
String message,
long arg1,
long arg2) |
void |
generate(NodeLIRBuilderTool generator) |
ValueNode |
getL1() |
ValueNode |
getL2() |
boolean |
isCompileTimeAssertion() |
void |
lower(LoweringTool tool)
Expand this node into lower level nodes expressing the same semantics.
|
String |
message() |
static void |
staticAssert(boolean condition,
String message) |
static void |
staticAssert(boolean condition,
String message,
Object msgArg1,
Object msgArg2) |
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<AssertionNode> TYPE
protected final boolean compileTimeAssertion
protected final String message
public ValueNode getL1()
public ValueNode getL2()
public ValueNode condition()
public String message()
public boolean isCompileTimeAssertion()
public Node canonical(CanonicalizerTool tool)
Canonicalizablenull will delete the current node and replace it with null at
all usages. Note that it is not necessary to delete floating nodes that have no more usages
this way - they will be deleted automatically.canonical in interface Canonicalizabletool - provides access to runtime interfaces like MetaAccessProviderpublic void lower(LoweringTool tool)
Lowerablepublic void generate(NodeLIRBuilderTool generator)
generate in interface LIRLowerablepublic static void assertion(boolean compileTimeAssertion,
boolean condition,
String message,
Object msgArg1,
Object msgArg2,
long arg1,
long arg2)
public static void staticAssert(boolean condition,
String message)
public static void staticAssert(boolean condition,
String message,
Object msgArg1,
Object msgArg2)
public static void dynamicAssert(boolean condition,
String message)
public static void dynamicAssert(boolean condition,
String message,
long arg1,
long arg2)