public class PrimitiveValueProfile extends ValueProfile
ValueProfile
that speculates on the primitive equality or object identity of
values.
Note that for {code float} and double
values we compare primitive equality via
Float.floatToRawIntBits(float)
and Double.doubleToRawLongBits(double)
, so that for example
-0.0
is not considered the same as 0.0
, even though primitive equality would
normally say that it was.
Modifier and Type | Method and Description |
---|---|
static boolean |
exactCompare(double a,
double b) |
static boolean |
exactCompare(float a,
float b) |
java.lang.Object |
getCachedValue() |
boolean |
isGeneric() |
boolean |
isUninitialized() |
boolean |
profile(boolean value) |
byte |
profile(byte value) |
char |
profile(char value) |
double |
profile(double value) |
float |
profile(float value) |
int |
profile(int value) |
long |
profile(long value) |
java.lang.Object |
profile(java.lang.Object value) |
short |
profile(short value) |
java.lang.String |
toString() |
createClassProfile, createIdentityProfile, createPrimitiveProfile
public java.lang.Object profile(java.lang.Object value)
profile
in class ValueProfile
public byte profile(byte value)
public short profile(short value)
public int profile(int value)
public long profile(long value)
public float profile(float value)
public double profile(double value)
public boolean profile(boolean value)
public char profile(char value)
public boolean isGeneric()
public boolean isUninitialized()
public java.lang.Object getCachedValue()
public java.lang.String toString()
toString
in class java.lang.Object
public static boolean exactCompare(float a, float b)
public static boolean exactCompare(double a, double b)