public class DynamicNewInstanceNode extends AbstractNewObjectNode implements Canonicalizable
Node.ConstantNodeParameter, Node.InjectedNodeParameter, Node.Input, Node.NodeIntrinsic, Node.OptionalInput, Node.Successor, Node.ValueNumberable
Canonicalizable.Binary<T extends Node>, Canonicalizable.BinaryCommutative<T extends Node>, Canonicalizable.Unary<T extends Node>
DeoptimizingNode.DeoptAfter, DeoptimizingNode.DeoptBefore, DeoptimizingNode.DeoptDuring
Modifier and Type | Field and Description |
---|---|
(package private) ValueNode |
clazz |
static NodeClass<DynamicNewInstanceNode> |
TYPE |
fillContents
stateBefore
next
NODE_LIST, NOT_ITERABLE, USE_UNSAFE_TO_CLONE, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges
Modifier | Constructor and Description |
---|---|
protected |
DynamicNewInstanceNode(NodeClass<? extends DynamicNewInstanceNode> c,
ValueNode clazz,
boolean fillContents,
FrameState stateBefore) |
|
DynamicNewInstanceNode(ValueNode clazz,
boolean fillContents) |
Modifier and Type | Method and Description |
---|---|
Node |
canonical(CanonicalizerTool tool) |
protected NewInstanceNode |
createNewInstanceNode(jdk.internal.jvmci.meta.ResolvedJavaType type)
Hook for subclasses to instantiate a subclass of
NewInstanceNode . |
ValueNode |
getInstanceType() |
void |
simplify(SimplifierTool tool) |
static boolean |
throwsInstantiationException(Class<?> type) |
static boolean |
throwsInstantiationException(jdk.internal.jvmci.meta.ResolvedJavaType type,
jdk.internal.jvmci.meta.MetaAccessProvider metaAccess) |
canDeoptimize, fillContents, lower
setStateBefore, stateBefore
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, successors, toString, toString, updatePredecessor, updateUsages, updateUsagesInterface, usages, valueEquals, verifyEdges, verifyInputs
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
states
public static final NodeClass<DynamicNewInstanceNode> TYPE
public DynamicNewInstanceNode(ValueNode clazz, boolean fillContents)
protected DynamicNewInstanceNode(NodeClass<? extends DynamicNewInstanceNode> c, ValueNode clazz, boolean fillContents, FrameState stateBefore)
public ValueNode getInstanceType()
public void simplify(SimplifierTool tool)
simplify
in interface Simplifiable
simplify
in class AbstractNewObjectNode
public Node canonical(CanonicalizerTool tool)
canonical
in interface Canonicalizable
protected NewInstanceNode createNewInstanceNode(jdk.internal.jvmci.meta.ResolvedJavaType type)
NewInstanceNode
.public static boolean throwsInstantiationException(Class<?> type)
public static boolean throwsInstantiationException(jdk.internal.jvmci.meta.ResolvedJavaType type, jdk.internal.jvmci.meta.MetaAccessProvider metaAccess)