V8 Project
v8::internal::TypeImpl< Config >::RangeType Class Reference

#include <types.h>

+ Inheritance diagram for v8::internal::TypeImpl< Config >::RangeType:
+ Collaboration diagram for v8::internal::TypeImpl< Config >::RangeType:

Public Member Functions

int BitsetLub ()
 
i::Handle< i::ObjectMin ()
 
i::Handle< i::ObjectMax ()
 
- Public Member Functions inherited from v8::internal::TypeImpl< Config >
bool IsInhabited ()
 
bool Is (TypeImpl *that)
 
template<class TypeHandle >
bool Is (TypeHandle that)
 
bool Maybe (TypeImpl *that)
 
template<class TypeHandle >
bool Maybe (TypeHandle that)
 
bool Equals (TypeImpl *that)
 
template<class TypeHandle >
bool Equals (TypeHandle that)
 
bool Contains (i::Object *val)
 
bool Contains (i::Handle< i::Object > val)
 
bool NowIs (TypeImpl *that)
 
template<class TypeHandle >
bool NowIs (TypeHandle that)
 
bool NowContains (i::Object *val)
 
bool NowContains (i::Handle< i::Object > val)
 
bool NowStable ()
 
bool IsClass ()
 
bool IsConstant ()
 
bool IsRange ()
 
bool IsContext ()
 
bool IsArray ()
 
bool IsFunction ()
 
ClassTypeAsClass ()
 
ConstantTypeAsConstant ()
 
RangeTypeAsRange ()
 
ContextTypeAsContext ()
 
ArrayTypeAsArray ()
 
FunctionTypeAsFunction ()
 
double Min ()
 
double Max ()
 
int NumClasses ()
 
int NumConstants ()
 
Iterator< i::MapClasses ()
 
Iterator< i::ObjectConstants ()
 
void PrintTo (OStream &os, PrintDimension dim=BOTH_DIMS)
 
template<class OtherType >
TypeImpl< Config >::TypeHandle Convert (typename OtherType::TypeHandle type, Region *region)
 

Static Public Member Functions

static RangeHandle New (i::Handle< i::Object > min, i::Handle< i::Object > max, Region *region)
 
static RangeHandle New (Limits lim, Region *region)
 
static RangeTypecast (TypeImpl *type)
 
- Static Public Member Functions inherited from v8::internal::TypeImpl< Config >
static TypeHandle Class (i::Handle< i::Map > map, Region *region)
 
static TypeHandle Constant (i::Handle< i::Object > value, Region *region)
 
static TypeHandle Range (i::Handle< i::Object > min, i::Handle< i::Object > max, Region *region)
 
static TypeHandle Context (TypeHandle outer, Region *region)
 
static TypeHandle Array (TypeHandle element, Region *region)
 
static FunctionHandle Function (TypeHandle result, TypeHandle receiver, int arity, Region *region)
 
static TypeHandle Function (TypeHandle result, Region *region)
 
static TypeHandle Function (TypeHandle result, TypeHandle param0, Region *region)
 
static TypeHandle Function (TypeHandle result, TypeHandle param0, TypeHandle param1, Region *region)
 
static TypeHandle Function (TypeHandle result, TypeHandle param0, TypeHandle param1, TypeHandle param2, Region *region)
 
static TypeHandle Union (TypeHandle type1, TypeHandle type2, Region *reg)
 
static TypeHandle Intersect (TypeHandle type1, TypeHandle type2, Region *reg)
 
static TypeHandle Of (double value, Region *region)
 
static TypeHandle Of (i::Object *value, Region *region)
 
static TypeHandle Of (i::Handle< i::Object > value, Region *region)
 
static TypeHandle NowOf (i::Object *value, Region *region)
 
static TypeHandle NowOf (i::Handle< i::Object > value, Region *region)
 
static TypeImplcast (typename Config::Base *object)
 
template<class OtherTypeImpl >
static TypeHandle Convert (typename OtherTypeImpl::TypeHandle type, Region *region)
 

Additional Inherited Members

- Public Types inherited from v8::internal::TypeImpl< Config >
enum  PrintDimension { BOTH_DIMS , SEMANTIC_DIM , REPRESENTATION_DIM }
 
typedef uint32_t bitset
 
typedef Config::template Handle< TypeImpl >::type TypeHandle
 
typedef Config::template Handle< ClassType >::type ClassHandle
 
typedef Config::template Handle< ConstantType >::type ConstantHandle
 
typedef Config::template Handle< RangeType >::type RangeHandle
 
typedef Config::template Handle< ContextType >::type ContextHandle
 
typedef Config::template Handle< ArrayType >::type ArrayHandle
 
typedef Config::template Handle< FunctionType >::type FunctionHandle
 
typedef Config::template Handle< UnionType >::type UnionHandle
 
typedef Config::Region Region
 
- Protected Member Functions inherited from v8::internal::TypeImpl< Config >::StructuralType
int Length ()
 
TypeHandle Get (int i)
 
void Set (int i, TypeHandle type)
 
void Shrink (int length)
 
template<class V >
i::Handle< VGetValue (int i)
 
template<class V >
void SetValue (int i, i::Handle< V > x)
 
- Protected Member Functions inherited from v8::internal::TypeImpl< Config >
TypeImplunhandle ()
 
bool IsNone ()
 
bool IsAny ()
 
bool IsBitset ()
 
bool IsUnion ()
 
bitset AsBitset ()
 
UnionTypeAsUnion ()
 
bitset BitsetGlb ()
 
bitset BitsetLub ()
 
bool SlowIs (TypeImpl *that)
 
RangeTypeGetRange ()
 
bool SimplyEquals (TypeImpl *that)
 
template<class TypeHandle >
bool SimplyEquals (TypeHandle that)
 
- Static Protected Member Functions inherited from v8::internal::TypeImpl< Config >::StructuralType
static TypeHandle New (Tag tag, int length, Region *region)
 
- Static Protected Member Functions inherited from v8::internal::TypeImpl< Config >
template<class T >
static Config::template Handle< T >::type handle (T *type)
 
static bool IsInteger (double x)
 
static bool IsInteger (i::Object *x)
 
static Limits Intersect (Limits lhs, Limits rhs)
 
static Limits Union (Limits lhs, Limits rhs)
 
static bool Overlap (RangeType *lhs, RangeType *rhs)
 
static bool Contains (RangeType *lhs, RangeType *rhs)
 
static bool Contains (RangeType *range, i::Object *val)
 
static int UpdateRange (RangeHandle type, UnionHandle result, int size, Region *region)
 
static int AddToUnion (TypeHandle type, UnionHandle result, int size, Region *region)
 
static int IntersectAux (TypeHandle type, TypeHandle other, UnionHandle result, int size, Region *region)
 
static TypeHandle NormalizeUnion (UnionHandle unioned, int size)
 

Detailed Description

template<class Config>
class v8::internal::TypeImpl< Config >::RangeType

Definition at line 773 of file types.h.

Member Function Documentation

◆ BitsetLub()

template<class Config >
int v8::internal::TypeImpl< Config >::RangeType::BitsetLub ( )
inline

Definition at line 775 of file types.h.

775 { return this->Get(0)->AsBitset(); }

Referenced by v8::internal::TypeImpl< Config >::BitsetType::Lub().

+ Here is the caller graph for this function:

◆ cast()

template<class Config >
static RangeType* v8::internal::TypeImpl< Config >::RangeType::cast ( TypeImpl type)
inlinestatic

Definition at line 794 of file types.h.

794  {
795  DCHECK(type->IsRange());
796  return static_cast<RangeType*>(type);
797  }
#define DCHECK(condition)
Definition: logging.h:205

References DCHECK, and v8::internal::TypeImpl< Config >::IsRange().

Referenced by v8::internal::TypeImpl< Config >::AsRange().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Max()

template<class Config >
i::Handle<i::Object> v8::internal::TypeImpl< Config >::RangeType::Max ( )
inline

Definition at line 777 of file types.h.

777 { return this->template GetValue<i::Object>(2); }

Referenced by v8::internal::TypeImpl< Config >::PrintTo().

+ Here is the caller graph for this function:

◆ Min()

template<class Config >
i::Handle<i::Object> v8::internal::TypeImpl< Config >::RangeType::Min ( )
inline

Definition at line 776 of file types.h.

776 { return this->template GetValue<i::Object>(1); }

Referenced by v8::internal::TypeImpl< Config >::PrintTo().

+ Here is the caller graph for this function:

◆ New() [1/2]

template<class Config >
static RangeHandle v8::internal::TypeImpl< Config >::RangeType::New ( i::Handle< i::Object min,
i::Handle< i::Object max,
Region region 
)
inlinestatic

Definition at line 779 of file types.h.

780  {
781  DCHECK(min->Number() <= max->Number());
782  RangeHandle type = Config::template cast<RangeType>(
784  type->Set(0, BitsetType::New(BitsetType::Lub(Limits(min, max)), region));
785  type->SetValue(1, min);
786  type->SetValue(2, max);
787  return type;
788  }
static TypeImpl * New(bitset bits)
Definition: types.h:577
static bitset Lub(TypeImpl *type)
Definition: types.cc:137
static TypeHandle New(Tag tag, int length, Region *region)
Definition: types.h:677
Config::template Handle< RangeType >::type RangeHandle
Definition: types.h:308
static int min(int a, int b)
Definition: liveedit.cc:273

References DCHECK, and v8::internal::min().

Referenced by v8::internal::TypeImpl< Config >::Convert(), v8::internal::TypeImpl< Config >::Range(), v8::internal::TypeImpl< Config >::Union(), and v8::internal::TypeImpl< Config >::UpdateRange().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ New() [2/2]

template<class Config >
static RangeHandle v8::internal::TypeImpl< Config >::RangeType::New ( Limits  lim,
Region region 
)
inlinestatic

Definition at line 790 of file types.h.

790  {
791  return New(lim.min, lim.max, region);
792  }
static RangeHandle New(i::Handle< i::Object > min, i::Handle< i::Object > max, Region *region)
Definition: types.h:779

References v8::internal::TypeImpl< Config >::Limits::max, and v8::internal::TypeImpl< Config >::Limits::min.


The documentation for this class was generated from the following file: