public class StampTool extends Object
| Constructor and Description |
|---|
StampTool() |
| Modifier and Type | Method and Description |
|---|---|
static boolean |
isAlwaysArray(Stamp stamp) |
static boolean |
isAlwaysArray(ValueNode node) |
static boolean |
isExactType(Stamp stamp)
|
static boolean |
isExactType(ValueNode node)
|
static boolean |
isPointerAlwaysNull(Stamp stamp)
|
static boolean |
isPointerAlwaysNull(ValueNode node)
|
static boolean |
isPointerNonNull(Stamp stamp)
|
static boolean |
isPointerNonNull(ValueNode node)
|
static Stamp |
meet(Iterable<? extends ValueNode> values) |
static Stamp |
meetOrNull(Iterable<? extends ValueNode> values,
ValueNode selfValue)
Meet a collection of
ValueNodes optionally excluding selfValue. |
static Stamp |
stampForLeadingZeros(IntegerStamp valueStamp) |
static Stamp |
stampForTrailingZeros(IntegerStamp valueStamp) |
static ResolvedJavaType |
typeOrNull(Stamp stamp) |
static ResolvedJavaType |
typeOrNull(Stamp stamp,
MetaAccessProvider metaAccess) |
static ResolvedJavaType |
typeOrNull(ValueNode node) |
static ResolvedJavaType |
typeOrNull(ValueNode node,
MetaAccessProvider metaAccess) |
static TypeReference |
typeReferenceOrNull(Stamp stamp)
|
static TypeReference |
typeReferenceOrNull(ValueNode node)
|
static Stamp |
unsignedCompare(Stamp stamp,
Stamp stamp2)
Compute the stamp resulting from the unsigned comparison being true.
|
public static Stamp meetOrNull(Iterable<? extends ValueNode> values, ValueNode selfValue)
ValueNodes optionally excluding selfValue. If no values
are encountered then return null.public static Stamp unsignedCompare(Stamp stamp, Stamp stamp2)
public static Stamp stampForLeadingZeros(IntegerStamp valueStamp)
public static Stamp stampForTrailingZeros(IntegerStamp valueStamp)
public static boolean isPointerAlwaysNull(ValueNode node)
node - the node to checkpublic static boolean isPointerAlwaysNull(Stamp stamp)
Stamp represents a legal pointer
stamp whose values are known to be always null.stamp - the stamp to checkpublic static boolean isPointerNonNull(ValueNode node)
node - the node to checkpublic static boolean isPointerNonNull(Stamp stamp)
stamp - the stamp to checkpublic static TypeReference typeReferenceOrNull(ValueNode node)
node - the node to checkpublic static ResolvedJavaType typeOrNull(ValueNode node)
public static ResolvedJavaType typeOrNull(Stamp stamp)
public static ResolvedJavaType typeOrNull(Stamp stamp, MetaAccessProvider metaAccess)
public static ResolvedJavaType typeOrNull(ValueNode node, MetaAccessProvider metaAccess)
public static TypeReference typeReferenceOrNull(Stamp stamp)
stamp - the stamp to checkpublic static boolean isExactType(ValueNode node)
ValueNode represents a legal
Object value whose Java type is known exactly. If this method returns true then the
Java type returned by StampTool.typeReferenceOrNull(ValueNode)
is the concrete dynamic/runtime Java type of this value.node - the node to checkpublic static boolean isExactType(Stamp stamp)
Stamp represents a legal Object
stamp whose Java type is known exactly. If this method returns
true then the Java type returned by StampTool.typeReferenceOrNull(Stamp) is the only concrete
dynamic/runtime Java type possible for values of this stamp.stamp - the stamp to checkpublic static boolean isAlwaysArray(ValueNode node)
public static boolean isAlwaysArray(Stamp stamp)