5#ifndef RUNTIME_VM_COMPILER_BACKEND_COMPILE_TYPE_H_
6#define RUNTIME_VM_COMPILER_BACKEND_COMPILE_TYPE_H_
8#if defined(DART_PRECOMPILED_RUNTIME)
9#error "AOT runtime should not use compiler sources (including header files)"
22class FlowGraphDeserializer;
23class FlowGraphSerializer;
55 : can_be_null_(can_be_null),
62 can_be_null_(other.can_be_null_),
63 can_be_sentinel_(other.can_be_sentinel_),
69 can_be_null_ = other.can_be_null_;
70 can_be_sentinel_ = other.can_be_sentinel_;
215 return (can_be_null_ == other->can_be_null_) &&
216 (can_be_sentinel_ == other->can_be_sentinel_) &&
237 if (cid_ == kSmiCid || cid_ == kMintCid) {
248 if (cid_ == kSmiCid) {
259 if (cid_ == kDoubleCid) {
270 if (cid_ == kBoolCid) {
311 bool can_be_sentinel_;
static CompileType * ComputeRefinedType(CompileType *old_type, CompileType *new_type)
void Union(CompileType *other)
Definition * owner() const
bool IsAssignableTo(const AbstractType &other)
static constexpr bool kCanBeSentinel
CompileType CopyNonNullable()
static CompileType FromCid(intptr_t cid)
static constexpr bool kCannotBeSentinel
bool can_be_sentinel() const
bool IsInstanceOf(const AbstractType &other)
static CompileType NullableMint()
CompileType(bool can_be_null, bool can_be_sentinel, intptr_t cid, const AbstractType *type)
static CompileType DynamicOrSentinel()
static constexpr bool kCannotBeNull
static constexpr bool kCanBeNull
bool IsSubtypeOf(const AbstractType &other)
static CompileType Dynamic()
bool Specialize(GrowableArray< intptr_t > *class_ids)
static CompileType String()
bool IsEqualTo(CompileType *other)
CompileType(const CompileType &other)
CompileType & operator=(const CompileType &other)
static CompileType Null()
static CompileType NullableSmi()
static CompileType NullableDouble()
void set_owner(Definition *owner)
static CompileType Object()
static CompileType FromRepresentation(Representation rep)
static CompileType Int32()
CompileType CopyNonSentinel()
static CompileType FromAbstractType(const AbstractType &type, bool can_be_null, bool can_be_sentinel)
static CompileType NullableInt()
const char * ToCString() const
void PrintTo(BaseTextBuffer *f) const
static CompileType Bool()
bool HasDecidableNullability()
void Write(FlowGraphSerializer *s) const
static CompileType None()
const AbstractType * ToAbstractType()
static CompileType FromUnboxedRepresentation(Representation rep)
static CompileType Double()
VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE auto & d
bool IsBoolType(const AbstractType &type)
bool IsDoubleType(const AbstractType &type)
bool IsEqualType(const AbstractType &a, const AbstractType &b)
bool IsSubtypeOfInt(const AbstractType &type)
bool IsSmiType(const AbstractType &type)