public class VirtualInstanceNode extends VirtualObjectNode
Node.ConstantNodeParameter, Node.InjectedNodeParameter, Node.Input, Node.NodeIntrinsic, Node.OptionalInput, Node.Successor, Node.ValueNumberable
Modifier and Type | Field and Description |
---|---|
protected ResolvedJavaField[] |
fields |
protected ResolvedJavaType |
type |
static NodeClass<VirtualInstanceNode> |
TYPE |
hasIdentity
NODE_LIST, NOT_ITERABLE, USE_UNSAFE_TO_CLONE, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges
Modifier | Constructor and Description |
---|---|
protected |
VirtualInstanceNode(NodeClass<? extends VirtualInstanceNode> c,
ResolvedJavaType type,
boolean hasIdentity) |
protected |
VirtualInstanceNode(NodeClass<? extends VirtualInstanceNode> c,
ResolvedJavaType type,
ResolvedJavaField[] fields,
boolean hasIdentity) |
|
VirtualInstanceNode(ResolvedJavaType type,
boolean hasIdentity) |
|
VirtualInstanceNode(ResolvedJavaType type,
ResolvedJavaField[] fields,
boolean hasIdentity) |
Modifier and Type | Method and Description |
---|---|
VirtualInstanceNode |
duplicate()
Returns an exact duplicate of this virtual object node, which has not been added to the graph
yet.
|
int |
entryCount()
The number of entries this virtual object has.
|
int |
entryIndexForOffset(long constantOffset,
Kind expectedEntryKind)
If the given index denotes an entry in this virtual object, the index of this entry is
returned.
|
Kind |
entryKind(int index)
Returns the
Kind of the entry at the given index. |
String |
entryName(int index)
Returns the name of the entry at the given index.
|
ResolvedJavaField |
field(int index) |
int |
fieldIndex(ResolvedJavaField field) |
ResolvedJavaField[] |
getFields() |
ValueNode |
getMaterializedRepresentation(FixedNode fixed,
ValueNode[] entries,
LockState locks)
Returns a node that can be used to materialize this virtual object.
|
String |
toString(Verbosity verbosity)
Creates a String representation for this node with a given
Verbosity . |
ResolvedJavaType |
type()
The type of object described by this
VirtualObjectNode . |
afterClone, generate, getObjectId, hasIdentity, resetObjectId, setIdentity, setObjectId
asConstant, asJavaConstant, asNode, getKind, graph, inferStamp, isAllowedUsageType, isConstant, isConstantPredicate, isNullConstant, setStamp, stamp, updateStamp
acceptInputs, acceptSuccessors, 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, updatePredecessor, updateUsages, updateUsagesInterface, usages, valueEquals, verify, verifyEdges, verifyInputs
public static final NodeClass<VirtualInstanceNode> TYPE
protected final ResolvedJavaType type
protected final ResolvedJavaField[] fields
public VirtualInstanceNode(ResolvedJavaType type, boolean hasIdentity)
public VirtualInstanceNode(ResolvedJavaType type, ResolvedJavaField[] fields, boolean hasIdentity)
protected VirtualInstanceNode(NodeClass<? extends VirtualInstanceNode> c, ResolvedJavaType type, boolean hasIdentity)
protected VirtualInstanceNode(NodeClass<? extends VirtualInstanceNode> c, ResolvedJavaType type, ResolvedJavaField[] fields, boolean hasIdentity)
public ResolvedJavaType type()
VirtualObjectNode
VirtualObjectNode
. In case of arrays, this is
the array type (and not the component type).type
in class VirtualObjectNode
public int entryCount()
VirtualObjectNode
entryCount
in class VirtualObjectNode
public ResolvedJavaField field(int index)
public ResolvedJavaField[] getFields()
public String toString(Verbosity verbosity)
Node
Verbosity
.public String entryName(int index)
VirtualObjectNode
entryName
in class VirtualObjectNode
public int fieldIndex(ResolvedJavaField field)
public int entryIndexForOffset(long constantOffset, Kind expectedEntryKind)
VirtualObjectNode
entryIndexForOffset
in class VirtualObjectNode
constantOffset
- offset, where the value is placed.expectedEntryKind
- Specifies which type is expected at this offset (Is important when
doing implicit casts, especially on big endian systems.public Kind entryKind(int index)
VirtualObjectNode
Kind
of the entry at the given index.entryKind
in class VirtualObjectNode
public VirtualInstanceNode duplicate()
VirtualObjectNode
duplicate
in class VirtualObjectNode
public ValueNode getMaterializedRepresentation(FixedNode fixed, ValueNode[] entries, LockState locks)
VirtualObjectNode
AllocatedObjectNode
then this node will be attached to a CommitAllocationNode
, otherwise the node will just be added to the graph.getMaterializedRepresentation
in class VirtualObjectNode