public class NewArrayNode extends AbstractNewArrayNode implements VirtualizableAllocation
NewArrayNode
is used for all array allocations where the element type is know at
compile time.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 |
---|---|
static NodeClass<NewArrayNode> |
TYPE |
length
fillContents
stateBefore
next
NODE_LIST, NOT_ITERABLE, USE_UNSAFE_TO_CLONE, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges
Modifier | Constructor and Description |
---|---|
protected |
NewArrayNode(NodeClass<? extends NewArrayNode> c,
ResolvedJavaType elementType,
ValueNode length,
boolean fillContents,
FrameState stateBefore) |
|
NewArrayNode(ResolvedJavaType elementType,
ValueNode length,
boolean fillContents) |
|
NewArrayNode(ResolvedJavaType elementType,
ValueNode length,
boolean fillContents,
FrameState stateBefore) |
Modifier and Type | Method and Description |
---|---|
protected VirtualArrayNode |
createVirtualArrayNode(int constantLength) |
protected ConstantNode |
defaultElementValue() |
ResolvedJavaType |
elementType()
Gets the element type of the array.
|
private static Object |
newArray(Class<?> elementType,
int length,
boolean fillContents) |
static Object |
newUninitializedArray(Class<?> elementType,
int length) |
void |
virtualize(VirtualizerTool tool)
A node class can implement this method to convey information about what its effect would be
if some of its inputs were virtualized.
|
dimension, dimensionCount, length, simplify
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<NewArrayNode> TYPE
public NewArrayNode(ResolvedJavaType elementType, ValueNode length, boolean fillContents)
public NewArrayNode(ResolvedJavaType elementType, ValueNode length, boolean fillContents, FrameState stateBefore)
protected NewArrayNode(NodeClass<? extends NewArrayNode> c, ResolvedJavaType elementType, ValueNode length, boolean fillContents, FrameState stateBefore)
public static Object newUninitializedArray(Class<?> elementType, int length)
public ResolvedJavaType elementType()
public void virtualize(VirtualizerTool tool)
Virtualizable
virtualize
in interface Virtualizable
tool
- the tool used to describe the effects of this nodeprotected VirtualArrayNode createVirtualArrayNode(int constantLength)
protected ConstantNode defaultElementValue()