public class NewMultiArrayNode extends DeoptimizingFixedWithNextNode implements Lowerable, ArrayLengthProvider
NewMultiArrayNode
represents an allocation of a multi-dimensional object array.Node.ConstantNodeParameter, Node.InjectedNodeParameter, Node.Input, Node.NodeIntrinsic, Node.OptionalInput, Node.Successor, Node.ValueNumberable
DeoptimizingNode.DeoptAfter, DeoptimizingNode.DeoptBefore, DeoptimizingNode.DeoptDuring
Modifier and Type | Field and Description |
---|---|
protected NodeInputList<ValueNode> |
dimensions |
protected ResolvedJavaType |
type |
static NodeClass<NewMultiArrayNode> |
TYPE |
stateBefore
next
NODE_LIST, NOT_ITERABLE, USE_UNSAFE_TO_CLONE, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges
Modifier | Constructor and Description |
---|---|
protected |
NewMultiArrayNode(NodeClass<? extends NewMultiArrayNode> c,
ResolvedJavaType type,
ValueNode[] dimensions) |
|
NewMultiArrayNode(ResolvedJavaType type,
ValueNode[] dimensions) |
Modifier and Type | Method and Description |
---|---|
boolean |
canDeoptimize()
Determines if this node needs deoptimization information.
|
ValueNode |
dimension(int index) |
int |
dimensionCount() |
NodeList<ValueNode> |
dimensions() |
ValueNode |
length() |
void |
lower(LoweringTool tool)
Expand this node into lower level nodes expressing the same semantics.
|
ResolvedJavaType |
type() |
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, simplify, successors, toString, toString, updatePredecessor, updateUsages, updateUsagesInterface, usages, valueEquals, verifyEdges, verifyInputs
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
states
public static final NodeClass<NewMultiArrayNode> TYPE
protected NodeInputList<ValueNode> dimensions
protected final ResolvedJavaType type
public NewMultiArrayNode(ResolvedJavaType type, ValueNode[] dimensions)
protected NewMultiArrayNode(NodeClass<? extends NewMultiArrayNode> c, ResolvedJavaType type, ValueNode[] dimensions)
public int dimensionCount()
public NodeList<ValueNode> dimensions()
public void lower(LoweringTool tool)
Lowerable
public ResolvedJavaType type()
public boolean canDeoptimize()
DeoptimizingNode
canDeoptimize
in interface DeoptimizingNode
public ValueNode length()
length
in interface ArrayLengthProvider