public abstract class AbstractPointerStamp extends Stamp
SpeculationReasonGroup.SpeculationContextObject.Visitor| Modifier | Constructor and Description |
|---|---|
protected |
AbstractPointerStamp(boolean nonNull,
boolean alwaysNull) |
| Modifier and Type | Method and Description |
|---|---|
void |
accept(SpeculationReasonGroup.SpeculationContextObject.Visitor v) |
boolean |
alwaysNull() |
Stamp |
asAlwaysNull() |
Constant |
asConstant()
If this stamp represents a single value, the methods returns this single value.
|
AbstractPointerStamp |
asMaybeNull() |
AbstractPointerStamp |
asNonNull() |
protected abstract AbstractPointerStamp |
copyWith(boolean newNonNull,
boolean newAlwaysNull) |
protected Stamp |
defaultPointerJoin(Stamp stamp) |
boolean |
equals(Object obj) |
JavaKind |
getStackKind()
Gets a Java
JavaKind that can be used to store a value of this stamp on the Java
bytecode stack. |
int |
hashCode() |
Stamp |
improveWith(Stamp other)
Tries to improve this stamp with the stamp given as parameter.
|
boolean |
isCompressed() |
Stamp |
meet(Stamp stamp)
Returns the union of this stamp and the given stamp.
|
boolean |
nonNull() |
JavaConstant |
nullConstant() |
static Stamp |
pointerAlwaysNull(Stamp stamp) |
static Stamp |
pointerMaybeNull(Stamp stamp) |
static Stamp |
pointerNonNull(Stamp stamp) |
Stamp |
unrestricted()
Returns a stamp of the same kind, but allowing the full value range of the kind.
|
alwaysDistinct, constant, empty, getLIRKind, hasValues, isCompatible, isCompatible, isEmpty, isPointerStamp, isUnrestricted, javaType, join, makeSymbolic, neverDistinct, readConstant, readConstant, toString, tryImproveWithprotected AbstractPointerStamp(boolean nonNull,
boolean alwaysNull)
public void accept(SpeculationReasonGroup.SpeculationContextObject.Visitor v)
public boolean nonNull()
public boolean alwaysNull()
protected abstract AbstractPointerStamp copyWith(boolean newNonNull, boolean newAlwaysNull)
public Stamp improveWith(Stamp other)
StampimproveWith in class Stampother - the stamp that should be used to improve this stampthis if an improvement was not
possiblepublic Stamp meet(Stamp stamp)
Stamppublic Stamp unrestricted()
StampStamp.unrestricted() is the neutral element of the Stamp.join(Stamp) operation.unrestricted in class Stamppublic AbstractPointerStamp asNonNull()
public AbstractPointerStamp asMaybeNull()
public Stamp asAlwaysNull()
public Constant asConstant()
StampasConstant in class Stamppublic JavaConstant nullConstant()
public JavaKind getStackKind()
StampJavaKind that can be used to store a value of this stamp on the Java
bytecode stack. Returns JavaKind.Illegal if a value of this stamp can not be stored
on the bytecode stack.getStackKind in class Stamppublic boolean isCompressed()