public final class LoadHubNode extends FloatingGuardedNode implements Lowerable, Canonicalizable, Virtualizable
Node.ConstantNodeParameter, Node.InjectedNodeParameter, Node.Input, Node.NodeIntrinsic, Node.OptionalInput, Node.Successor, Node.ValueNumberable
Canonicalizable.Binary<T extends Node>, Canonicalizable.BinaryCommutative<T extends Node>, Canonicalizable.Unary<T extends Node>
Modifier and Type | Field and Description |
---|---|
static NodeClass<LoadHubNode> |
TYPE |
(package private) ValueNode |
value |
guard
NODE_LIST, NOT_ITERABLE, USE_UNSAFE_TO_CLONE, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges
Modifier | Constructor and Description |
---|---|
|
LoadHubNode(StampProvider stampProvider,
ValueNode value) |
|
LoadHubNode(StampProvider stampProvider,
ValueNode value,
ValueNode guard) |
private |
LoadHubNode(Stamp stamp,
ValueNode value,
ValueNode guard) |
Modifier and Type | Method and Description |
---|---|
ValueNode |
canonical(CanonicalizerTool tool)
Implementations of this method can provide local optimizations like constant folding and
strength reduction.
|
static ValueNode |
create(ValueNode value,
StampProvider stampProvider,
MetaAccessProvider metaAccess) |
static ValueNode |
findSynonym(ValueNode curValue,
Stamp stamp,
StructuredGraph graph,
MetaAccessProvider metaAccess) |
static ResolvedJavaType |
findSynonymType(StructuredGraph graph,
MetaAccessProvider metaAccess,
ValueNode curValue) |
ValueNode |
getValue() |
private static Stamp |
hubStamp(StampProvider stampProvider,
ValueNode value) |
void |
lower(LoweringTool tool)
Expand this node into lower level nodes expressing the same semantics.
|
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.
|
getGuard, setGuard
asNode
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, verify, verifyEdges, verifyInputs
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
asNode
public static final NodeClass<LoadHubNode> TYPE
public LoadHubNode(StampProvider stampProvider, ValueNode value)
public LoadHubNode(StampProvider stampProvider, ValueNode value, ValueNode guard)
private LoadHubNode(Stamp stamp, ValueNode value, ValueNode guard)
private static Stamp hubStamp(StampProvider stampProvider, ValueNode value)
public static ValueNode create(ValueNode value, StampProvider stampProvider, MetaAccessProvider metaAccess)
public void lower(LoweringTool tool)
Lowerable
public ValueNode canonical(CanonicalizerTool tool)
Canonicalizable
null
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 Canonicalizable
tool
- provides access to runtime interfaces like MetaAccessProvider
public static ValueNode findSynonym(ValueNode curValue, Stamp stamp, StructuredGraph graph, MetaAccessProvider metaAccess)
public static ResolvedJavaType findSynonymType(StructuredGraph graph, MetaAccessProvider metaAccess, ValueNode curValue)
public void virtualize(VirtualizerTool tool)
Virtualizable
virtualize
in interface Virtualizable
tool
- the tool used to describe the effects of this node