public abstract class AbstractNewArrayNode extends AbstractNewObjectNode implements ArrayLengthProvider
AbstractNewArrayNode is used for all 1-dimensional array allocations.Node.ConstantNodeParameter, Node.InjectedNodeParameter, Node.Input, Node.NodeIntrinsic, Node.OptionalInput, Node.Successor, Node.ValueNumberableDeoptimizingNode.DeoptAfter, DeoptimizingNode.DeoptBefore, DeoptimizingNode.DeoptDuring| Modifier and Type | Field and Description |
|---|---|
protected ValueNode |
length |
static NodeClass<AbstractNewArrayNode> |
TYPE |
fillContentsstateBeforenextNODE_LIST, NOT_ITERABLE, USE_UNSAFE_TO_CLONE, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges| Modifier | Constructor and Description |
|---|---|
protected |
AbstractNewArrayNode(NodeClass<? extends AbstractNewArrayNode> c,
Stamp stamp,
ValueNode length,
boolean fillContents,
FrameState stateBefore) |
| Modifier and Type | Method and Description |
|---|---|
ValueNode |
dimension(int index)
The list of node which produce input for this instruction.
|
int |
dimensionCount()
The rank of the array allocated by this node, i.e.
|
ValueNode |
length() |
void |
simplify(SimplifierTool tool)
Must be overridden by subclasses that implement
Simplifiable. |
canDeoptimize, fillContents, lowersetStateBefore, stateBeforeasNode, 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, successors, toString, toString, updatePredecessor, updateUsages, updateUsagesInterface, usages, valueEquals, verifyEdges, verifyInputsclone, finalize, getClass, notify, notifyAll, wait, wait, waitstatespublic static final NodeClass<AbstractNewArrayNode> TYPE
protected AbstractNewArrayNode(NodeClass<? extends AbstractNewArrayNode> c, Stamp stamp, ValueNode length, boolean fillContents, FrameState stateBefore)
public ValueNode length()
length in interface ArrayLengthProviderpublic ValueNode dimension(int index)
public int dimensionCount()
public void simplify(SimplifierTool tool)
NodeSimplifiable. The implementation in
Node exists to obviate the need to cast a node before invoking
Simplifiable.simplify(SimplifierTool).simplify in interface Simplifiablesimplify in class AbstractNewObjectNode