public final class CompressionNode extends UnaryNode implements ConvertNode, LIRLowerable
| Modifier and Type | Class and Description |
|---|---|
static class |
CompressionNode.CompressionOp |
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 |
|---|---|
protected HotSpotVMConfig.CompressEncoding |
encoding |
protected CompressionNode.CompressionOp |
op |
static NodeClass<CompressionNode> |
TYPE |
NODE_LIST, NOT_ITERABLE, USE_UNSAFE_TO_CLONE, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdges| Constructor and Description |
|---|
CompressionNode(CompressionNode.CompressionOp op,
ValueNode input,
HotSpotVMConfig.CompressEncoding encoding) |
asNodeasConstant, 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<CompressionNode> TYPE
protected final CompressionNode.CompressionOp op
protected final HotSpotVMConfig.CompressEncoding encoding
public CompressionNode(CompressionNode.CompressionOp op, ValueNode input, HotSpotVMConfig.CompressEncoding encoding)
public boolean inferStamp()
ValueNodeValueNode if they need to recompute
their stamp if their inputs change. A typical implementation will compute the stamp and pass
it to ValueNode.updateStamp(Stamp), whose return value can be used as the result of this
method.inferStamp in class ValueNodepublic static CompressionNode compress(ValueNode input, HotSpotVMConfig.CompressEncoding encoding)
public static CompressionNode compressNoUnique(ValueNode input, HotSpotVMConfig.CompressEncoding encoding)
public static CompressionNode uncompress(ValueNode input, HotSpotVMConfig.CompressEncoding encoding)
private static Constant compress(Constant c, HotSpotVMConfig.CompressEncoding encoding)
private static Constant uncompress(Constant c, HotSpotVMConfig.CompressEncoding encoding)
public Constant convert(Constant c, ConstantReflectionProvider constantReflection)
convert in interface ConvertNodepublic Constant reverse(Constant c, ConstantReflectionProvider constantReflection)
reverse in interface ConvertNodepublic boolean isLossless()
ConvertNodeisLossless in interface ConvertNodeprivate static Stamp mkStamp(CompressionNode.CompressionOp op, Stamp input, HotSpotVMConfig.CompressEncoding encoding)
public CompressionNode.CompressionOp getOp()
public HotSpotVMConfig.CompressEncoding getEncoding()
public ValueNode canonical(CanonicalizerTool tool, ValueNode forValue)
Canonicalizable.UnaryCanonicalizable.canonical(CanonicalizerTool), except that
implementations should act as if the current input of the node was the given one, i.e.,
they should never look at the inputs via the this pointer.canonical in interface Canonicalizable.Unary<ValueNode>public void generate(NodeLIRBuilderTool gen)
generate in interface LIRLowerablepublic static Object compression(CompressionNode.CompressionOp op, Object object, HotSpotVMConfig.CompressEncoding encoding)