public class FloatStamp extends PrimitiveStamp
SpeculationReasonGroup.SpeculationContextObject.Visitor| Modifier and Type | Field and Description |
|---|---|
static ArithmeticOpTable |
OPS |
| Modifier | Constructor and Description |
|---|---|
protected |
FloatStamp(int bits) |
|
FloatStamp(int bits,
double lowerBound,
double upperBound,
boolean nonNaN) |
| Modifier and Type | Method and Description |
|---|---|
JavaConstant |
asConstant()
If this stamp represents a single value, the methods returns this single value.
|
boolean |
canBeNaN()
Returns true if NaN is included in the value described by this stamp.
|
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.
|
boolean |
contains(double value) |
SerializableConstant |
deserialize(ByteBuffer buffer) |
Stamp |
empty()
Returns a stamp of the same kind, but with no allowed values.
|
boolean |
equals(Object obj) |
LIRKind |
getLIRKind(LIRKindTool tool)
Gets a platform dependent
LIRKind that can be used to store a value of this stamp. |
JavaKind |
getStackKind()
Gets a Java
JavaKind that can be used to store a value of this stamp on the Java
bytecode stack. |
int |
hashCode() |
boolean |
hasValues()
Test whether this stamp has legal values.
|
boolean |
isCompatible(Constant constant)
Check that the constant
other is compatible with this stamp. |
boolean |
isCompatible(Stamp stamp)
Check that the constant
other is compatible with this stamp. |
boolean |
isNaN()
Returns true if this stamp represents the NaN value.
|
boolean |
isNonNaN()
Returns true if NaN is non included in the value described by this stamp.
|
boolean |
isUnrestricted()
Tests whether this stamp represents all values of this kind.
|
ResolvedJavaType |
javaType(MetaAccessProvider metaAccess)
Returns the type of the stamp, guaranteed to be non-null.
|
Stamp |
join(Stamp otherStamp)
Returns the intersection of this stamp and the given stamp.
|
double |
lowerBound()
The (inclusive) lower bound on the value described by this stamp.
|
Stamp |
meet(Stamp otherStamp)
Returns the union of this stamp and the given stamp.
|
String |
toString() |
Stamp |
unrestricted()
Returns a stamp of the same kind, but allowing the full value range of the kind.
|
double |
upperBound()
The (inclusive) upper bound on the value described by this stamp.
|
accept, getBits, getBits, readConstant, readJavaConstantgetOps, improveWithalwaysDistinct, isEmpty, isPointerStamp, makeSymbolic, neverDistinct, readConstant, tryImproveWithpublic static final ArithmeticOpTable OPS
protected FloatStamp(int bits)
public FloatStamp(int bits,
double lowerBound,
double upperBound,
boolean nonNaN)
public Stamp unrestricted()
StampStamp.unrestricted() is the neutral element of the Stamp.join(Stamp) operation.unrestricted in class Stamppublic Stamp empty()
StampStamp.empty() is the neutral element of the Stamp.meet(Stamp) operation.public Stamp constant(Constant c, MetaAccessProvider meta)
StampIf 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 SerializableConstant deserialize(ByteBuffer buffer)
deserialize in class ArithmeticStamppublic boolean hasValues()
Stamppublic 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 LIRKind getLIRKind(LIRKindTool tool)
StampLIRKind that can be used to store a value of this stamp.getLIRKind in class Stamppublic ResolvedJavaType javaType(MetaAccessProvider metaAccess)
StampMetaAccessProvider is mandatory.public double lowerBound()
public double upperBound()
public boolean isNonNaN()
public boolean canBeNaN()
public boolean isNaN()
public boolean isUnrestricted()
StampisUnrestricted in class Stamppublic boolean contains(double value)
public Stamp meet(Stamp otherStamp)
Stamppublic Stamp join(Stamp otherStamp)
Stamppublic int hashCode()
hashCode in class PrimitiveStamppublic boolean isCompatible(Stamp stamp)
Stampother is compatible with this stamp.isCompatible in class Stamppublic boolean isCompatible(Constant constant)
Stampother is compatible with this stamp.isCompatible in class Stamppublic boolean equals(Object obj)
equals in class PrimitiveStamppublic JavaConstant asConstant()
StampasConstant in class Stamp