public final class NewFrameNode extends FixedWithNextNode implements IterableNodeType, VirtualizableAllocation, Canonicalizable
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 |
|---|---|
static byte |
FrameSlotKindIllegalTag |
static byte |
FrameSlotKindLongTag |
static byte |
FrameSlotKindObjectTag |
static byte |
FrameSlotKindStaticTag |
static byte |
INITIAL_TYPE_MARKER |
static byte |
NO_TYPE_MARKER |
static NodeClass<NewFrameNode> |
TYPE |
nextEMPTY_ARRAY, stampNODE_LIST, NOT_ITERABLE, TRACK_CREATION_POSITION, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges| Constructor and Description |
|---|
NewFrameNode(GraphBuilderContext b,
ValueNode frameDescriptorNode,
ValueNode arguments,
KnownTruffleTypes types) |
| Modifier and Type | Method and Description |
|---|---|
static JavaKind |
asJavaKind(byte tag) |
static byte |
asStackTag(byte tag) |
Node |
canonical(CanonicalizerTool tool)
Implementations of this method can provide local optimizations like constant folding and
strength reduction.
|
ValueNode |
getArguments() |
ValueNode |
getDescriptor() |
int |
getFrameSize() |
byte[] |
getFrameSlotKinds() |
int |
getIndexedFrameSize() |
byte[] |
getIndexedFrameSlotKinds() |
boolean |
getIntrinsifyAccessors() |
SpeculationReason |
getIntrinsifyAccessorsSpeculation() |
VirtualArrayNode |
getObjectArray(VirtualFrameAccessType type) |
VirtualArrayNode |
getPrimitiveArray(VirtualFrameAccessType type) |
VirtualArrayNode |
getTagArray(VirtualFrameAccessType type) |
boolean |
isValidIndexedSlotIndex(int index) |
boolean |
isValidSlotIndex(int index) |
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.
|
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, waitasFixedNodeasNodepublic static final byte NO_TYPE_MARKER
public static final byte INITIAL_TYPE_MARKER
public static final byte FrameSlotKindObjectTag
public static final byte FrameSlotKindLongTag
public static final byte FrameSlotKindIllegalTag
public static final byte FrameSlotKindStaticTag
public static final NodeClass<NewFrameNode> TYPE
public NewFrameNode(GraphBuilderContext b, ValueNode frameDescriptorNode, ValueNode arguments, KnownTruffleTypes types)
public static byte asStackTag(byte tag)
public static JavaKind asJavaKind(byte tag)
public byte[] getFrameSlotKinds()
public byte[] getIndexedFrameSlotKinds()
public ValueNode getDescriptor()
public ValueNode getArguments()
public boolean getIntrinsifyAccessors()
public SpeculationReason getIntrinsifyAccessorsSpeculation()
public boolean isValidSlotIndex(int index)
public boolean isValidIndexedSlotIndex(int index)
public void virtualize(VirtualizerTool tool)
Virtualizablevirtualize in interface Virtualizabletool - the tool used to describe the effects of this nodepublic 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 VirtualArrayNode getTagArray(VirtualFrameAccessType type)
public VirtualArrayNode getObjectArray(VirtualFrameAccessType type)
public VirtualArrayNode getPrimitiveArray(VirtualFrameAccessType type)
public int getFrameSize()
public int getIndexedFrameSize()