public final class VoidStamp extends Stamp
void.SpeculationReasonGroup.SpeculationContextObject.Visitor| Modifier and Type | Method and Description |
|---|---|
void |
accept(SpeculationReasonGroup.SpeculationContextObject.Visitor v) |
boolean |
alwaysDistinct(Stamp other) |
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.
|
Stamp |
empty()
Returns a stamp of the same kind, but with no allowed values.
|
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. |
boolean |
hasValues()
Test whether this stamp has legal values.
|
Stamp |
improveWith(Stamp other)
Tries to improve this stamp with the stamp given as parameter.
|
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 |
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 other)
Returns the intersection of this stamp and the given stamp.
|
Stamp |
meet(Stamp other)
Returns the union of this stamp and the given stamp.
|
Constant |
readConstant(MemoryAccessProvider provider,
Constant base,
long displacement)
Read a value of this stamp from memory.
|
String |
toString() |
Stamp |
unrestricted()
Returns a stamp of the same kind, but allowing the full value range of the kind.
|
asConstant, isEmpty, isPointerStamp, makeSymbolic, neverDistinct, readConstant, tryImproveWithpublic void accept(SpeculationReasonGroup.SpeculationContextObject.Visitor v)
public Stamp unrestricted()
StampStamp.unrestricted() is the neutral element of the Stamp.join(Stamp) operation.unrestricted in class Stamppublic boolean isUnrestricted()
StampisUnrestricted in class 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 Stamp improveWith(Stamp other)
StampimproveWith in class Stampother - the stamp that should be used to improve this stampthis if an improvement was not
possiblepublic 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 boolean alwaysDistinct(Stamp other)
alwaysDistinct in class Stamppublic Stamp meet(Stamp other)
Stamppublic Stamp join(Stamp other)
Stamppublic 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 Stamp empty()
StampStamp.empty() is the neutral element of the Stamp.meet(Stamp) operation.public boolean hasValues()
Stamppublic Constant readConstant(MemoryAccessProvider provider,
Constant base,
long displacement)
StampreadConstant in class Stamppublic 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.