public final class WordCastNode extends FixedWithNextNode implements LIRLowerable, Canonicalizable
Word.Opcode.FROM_OBJECT and
Word.Opcode.TO_OBJECT operations. It has an impact on the pointer maps for the GC, so it must
not be scheduled or optimized away.Node.ConstantNodeParameter, Node.InjectedNodeParameter, Node.Input, Node.NodeIntrinsic, Node.OptionalInput, Node.Successor, Node.ValueNumberableCanonicalizable.Binary<T extends Node>, Canonicalizable.BinaryCommutative<T extends Node>, Canonicalizable.Unary<T extends Node>| Modifier and Type | Field and Description |
|---|---|
(package private) ValueNode |
input |
static NodeClass<WordCastNode> |
TYPE |
nextNODE_LIST, NOT_ITERABLE, USE_UNSAFE_TO_CLONE, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges| Constructor and Description |
|---|
WordCastNode(Stamp stamp,
ValueNode input) |
| Modifier and Type | Method and Description |
|---|---|
static WordCastNode |
addressToWord(ValueNode input,
Kind wordKind) |
Node |
canonical(CanonicalizerTool tool)
Implementations of this method can provide local optimizations like constant folding and
strength reduction.
|
void |
generate(NodeLIRBuilderTool generator) |
ValueNode |
getInput() |
static WordCastNode |
objectToWord(ValueNode input,
Kind wordKind) |
static WordCastNode |
wordToObject(ValueNode input,
Kind wordKind) |
asNode, next, setNextasConstant, asJavaConstant, getKind, graph, inferStamp, isAllowedUsageType, isConstant, isConstantPredicate, isNullConstant, setStamp, stamp, updateStampacceptInputs, 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, verifyInputspublic static final NodeClass<WordCastNode> TYPE
public WordCastNode(Stamp stamp, ValueNode input)
public static WordCastNode wordToObject(ValueNode input, Kind wordKind)
public static WordCastNode objectToWord(ValueNode input, Kind wordKind)
public static WordCastNode addressToWord(ValueNode input, Kind wordKind)
public 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 void generate(NodeLIRBuilderTool generator)
generate in interface LIRLowerable