public final class KlassPointerStamp extends MetaspacePointerStamp
Modifier and Type | Field and Description |
---|---|
private HotSpotVMConfig.CompressEncoding |
encoding |
private Kind |
kind |
Modifier | Constructor and Description |
---|---|
private |
KlassPointerStamp(boolean nonNull,
boolean alwaysNull,
HotSpotVMConfig.CompressEncoding encoding,
Kind kind) |
|
KlassPointerStamp(boolean nonNull,
boolean alwaysNull,
Kind kind) |
Modifier and Type | Method and Description |
---|---|
Constant |
asConstant()
If this stamp represents a single value, the methods returns this single value.
|
KlassPointerStamp |
compressed(HotSpotVMConfig.CompressEncoding newEncoding) |
Stamp |
constant(Constant c,
MetaAccessProvider meta)
If it is possible to represent single value stamps of this kind, this method returns the
stamp representing the single value c.
|
protected AbstractPointerStamp |
copyWith(boolean newNonNull,
boolean newAlwaysNull) |
boolean |
equals(Object obj) |
HotSpotVMConfig.CompressEncoding |
getEncoding() |
LIRKind |
getLIRKind(LIRKindTool tool)
Gets a platform dependent
LIRKind that can be used to store a value of this stamp. |
Kind |
getStackKind()
Gets a Java
Kind that can be used to store a value of this stamp on the Java bytecode
stack. |
int |
hashCode() |
boolean |
isCompatible(Stamp otherStamp)
Test whether two stamps have the same base type.
|
boolean |
isCompressed() |
Constant |
readConstant(MemoryAccessProvider provider,
Constant base,
long displacement)
Read a value of this stamp from memory.
|
String |
toString() |
KlassPointerStamp |
uncompressed() |
appendString, empty, hasValues, javaType
alwaysNull, improveWith, join, meet, nonNull, unrestricted
alwaysDistinct, isEmpty, neverDistinct, tryImproveWith
private final HotSpotVMConfig.CompressEncoding encoding
public KlassPointerStamp(boolean nonNull, boolean alwaysNull, Kind kind)
private KlassPointerStamp(boolean nonNull, boolean alwaysNull, HotSpotVMConfig.CompressEncoding encoding, Kind kind)
protected AbstractPointerStamp copyWith(boolean newNonNull, boolean newAlwaysNull)
copyWith
in class AbstractPointerStamp
public boolean isCompatible(Stamp otherStamp)
Stamp
isCompatible
in class Stamp
public Stamp constant(Constant c, MetaAccessProvider meta)
Stamp
If it is not possible to represent single value stamps, this method returns a stamp that includes c, and is otherwise as narrow as possible.
public Constant asConstant()
Stamp
asConstant
in class AbstractPointerStamp
public LIRKind getLIRKind(LIRKindTool tool)
Stamp
LIRKind
that can be used to store a value of this stamp.getLIRKind
in class MetaspacePointerStamp
public boolean isCompressed()
public HotSpotVMConfig.CompressEncoding getEncoding()
public KlassPointerStamp compressed(HotSpotVMConfig.CompressEncoding newEncoding)
public KlassPointerStamp uncompressed()
public Constant readConstant(MemoryAccessProvider provider, Constant base, long displacement)
Stamp
readConstant
in class Stamp
public int hashCode()
hashCode
in class AbstractPointerStamp
public boolean equals(Object obj)
equals
in class AbstractPointerStamp
public Kind getStackKind()
Stamp
Kind
that can be used to store a value of this stamp on the Java bytecode
stack. Returns Kind.Illegal
if a value of this stamp can not be stored on the
bytecode stack.getStackKind
in class AbstractPointerStamp