5#ifndef V8_COMPILER_USE_INFO_H_
6#define V8_COMPILER_USE_INFO_H_
146 switch (type_check) {
150 return os <<
"SignedSmall";
152 return os <<
"Signed32";
154 return os <<
"Signed64";
156 return os <<
"AdditiveSafeInteger";
158 return os <<
"Number";
160 return os <<
"NumberOrBoolean";
162 return os <<
"NumberOrOddball";
164 return os <<
"HeapObject";
166 return os <<
"BigInt";
168 return os <<
"BigInt64";
170 return os <<
"ArrayIndex";
static constexpr MachineRepresentation PointerRepresentation()
static Truncation Any(IdentifyZeros identify_zeros=kDistinguishZeros)
bool TruncatesOddballAndBigIntToNumber() const
TruncationKind kind() const
@ kOddballAndBigIntToNumber
bool IdentifiesUndefinedAndZero()
bool operator!=(Truncation other) const
static bool LessGeneral(TruncationKind rep1, TruncationKind rep2)
static bool LessGeneralIdentifyZeros(IdentifyZeros u1, IdentifyZeros u2)
bool IsLessGeneralThan(Truncation other) const
IdentifyZeros identify_zeros() const
bool operator==(Truncation other) const
friend size_t hash_value(const Truncation &)
const char * description() const
IdentifyZeros identify_zeros_
static Truncation Word32()
bool IsUsedAsBool() const
bool IdentifiesZeroAndMinusZero() const
static Truncation Generalize(Truncation t1, Truncation t2)
static Truncation OddballAndBigIntToNumber(IdentifyZeros identify_zeros=kDistinguishZeros)
Truncation(TruncationKind kind, IdentifyZeros identify_zeros)
bool IsUsedAsWord64() const
static Truncation Word64()
bool IsUsedAsWord32() const
static IdentifyZeros GeneralizeIdentifyZeros(IdentifyZeros i1, IdentifyZeros i2)
static UseInfo CheckedSignedSmallAsTaggedSigned(const FeedbackSource &feedback, IdentifyZeros identify_zeros=kDistinguishZeros)
static UseInfo CheckedSignedSmallAsWord32(IdentifyZeros identify_zeros, const FeedbackSource &feedback)
Truncation truncation() const
static UseInfo TruncatingFloat64(IdentifyZeros identify_zeros=kDistinguishZeros)
static UseInfo TaggedPointer()
const FeedbackSource & feedback() const
static UseInfo CheckedBigIntAsTaggedPointer(const FeedbackSource &feedback)
static UseInfo CheckedNumberOrOddballAsFloat64(IdentifyZeros identify_zeros, const FeedbackSource &feedback)
static UseInfo CheckedNumberAsFloat64(IdentifyZeros identify_zeros, const FeedbackSource &feedback)
static UseInfo Float16RawBits()
static UseInfo TruncatingFloat16RawBits(IdentifyZeros identify_zeros=kDistinguishZeros)
TypeCheckKind type_check() const
static UseInfo AnyTruncatingToBool()
static UseInfo CheckedSafeIntAsWord64(const FeedbackSource &feedback)
static UseInfo CheckedSigned32AsWord32(IdentifyZeros identify_zeros, const FeedbackSource &feedback)
MachineRepresentation representation_
static UseInfo TruncatingWord64()
static UseInfo TaggedSigned()
static UseInfo Word64(IdentifyZeros identify_zeros=kDistinguishZeros)
static UseInfo CheckedNumberAsWord32(const FeedbackSource &feedback)
static UseInfo AnyTagged()
UseInfo(MachineRepresentation representation, Truncation truncation, TypeCheckKind type_check=TypeCheckKind::kNone, const FeedbackSource &feedback=FeedbackSource())
static UseInfo TruncatingWord32()
static UseInfo CheckedBigIntTruncatingWord64(const FeedbackSource &feedback)
static UseInfo CheckedBigInt64AsWord64(const FeedbackSource &feedback)
static UseInfo CheckedSigned64AsWord64(IdentifyZeros identify_zeros, const FeedbackSource &feedback)
static UseInfo CheckedNumberOrBooleanAsFloat64(IdentifyZeros identify_zeros, const FeedbackSource &feedback)
static UseInfo CheckedHeapObjectAsTaggedPointer(const FeedbackSource &feedback)
TypeCheckKind type_check_
CheckForMinusZeroMode minus_zero_check() const
MachineRepresentation representation() const
static UseInfo CheckedNumberOrOddballAsWord32(const FeedbackSource &feedback)
static UseInfo CheckedSafeIntTruncatingWord32(const FeedbackSource &feedback)
static UseInfo CheckedTaggedAsArrayIndex(const FeedbackSource &feedback)
V8_INLINE size_t hash_combine(size_t seed, size_t hash)
size_t hash_value(const BranchParameters &p)
bool operator==(const BranchParameters &lhs, const BranchParameters &rhs)
std::ostream & operator<<(std::ostream &os, AccessMode access_mode)
#define DCHECK(condition)