public final class NarrowNode extends IntegerConvertNode<ArithmeticOpTable.IntegerConvertOp.Narrow,ArithmeticOpTable.IntegerConvertOp.SignExtend>
NarrowNode converts an integer to a narrower integer.IntegerConvertNode.SerializableIntegerConvertFunction<T>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 |
|---|---|
static NodeClass<NarrowNode> |
TYPE |
getOp, getReverseOp, inputBits, resultBitsNODE_LIST, NOT_ITERABLE, USE_UNSAFE_TO_CLONE, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges| Constructor and Description |
|---|
NarrowNode(ValueNode input,
int resultBits) |
NarrowNode(ValueNode input,
int inputBits,
int resultBits) |
| Modifier and Type | Method and Description |
|---|---|
ValueNode |
canonical(CanonicalizerTool tool,
ValueNode forValue) |
static ValueNode |
create(ValueNode input,
int resultBits) |
static ValueNode |
create(ValueNode input,
int inputBits,
int resultBits) |
void |
generate(NodeValueMap nodeValueMap,
ArithmeticLIRGenerator gen) |
boolean |
isLossless()
Check whether a conversion is lossless.
|
convert, convert, convert, convert, convertUnsigned, findSynonym, getInputBits, getOp, getResultBits, inferStamp, reverseasNodeasConstant, asJavaConstant, getKind, graph, 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, verify, verifyEdges, verifyInputsclone, finalize, getClass, notify, notifyAll, wait, wait, waitasNode, getValue, preservesOrder, preservesOrdercanonicalpublic static final NodeClass<NarrowNode> TYPE
public NarrowNode(ValueNode input, int resultBits)
public NarrowNode(ValueNode input, int inputBits, int resultBits)
public boolean isLossless()
ConvertNodepublic ValueNode canonical(CanonicalizerTool tool, ValueNode forValue)
canonical in interface Canonicalizable.Unary<ValueNode>canonical in class IntegerConvertNode<ArithmeticOpTable.IntegerConvertOp.Narrow,ArithmeticOpTable.IntegerConvertOp.SignExtend>public void generate(NodeValueMap nodeValueMap, ArithmeticLIRGenerator gen)