tvm
Public Member Functions | List of all members
tvm::TypeData Class Reference

Stores all data for an Algebraic Data Type (ADT). More...

#include <adt.h>

Inheritance diagram for tvm::TypeData:
Collaboration diagram for tvm::TypeData:

Public Member Functions

 TypeData (GlobalTypeVar header, Array< TypeVar > type_vars, Array< Constructor > constructors)
 Constructor. More...
 
 TVM_DEFINE_OBJECT_REF_METHODS (TypeData, Type, TypeDataNode)
 
- Public Member Functions inherited from tvm::Type
 TVM_DEFINE_OBJECT_REF_METHODS (Type, ObjectRef, TypeNode)
 
- Public Member Functions inherited from tvm::runtime::ObjectRef
 ObjectRef ()=default
 default constructor More...
 
 ObjectRef (ObjectPtr< Object > data)
 Constructor from existing object ptr. More...
 
bool same_as (const ObjectRef &other) const
 Comparator. More...
 
bool operator== (const ObjectRef &other) const
 Comparator. More...
 
bool operator!= (const ObjectRef &other) const
 Comparator. More...
 
bool operator< (const ObjectRef &other) const
 Comparator. More...
 
bool defined () const
 
const Objectget () const
 
const Objectoperator-> () const
 
bool unique () const
 
int use_count () const
 
template<typename ObjectType , typename = std::enable_if_t<std::is_base_of_v<Object, ObjectType>>>
const ObjectType * as () const
 Try to downcast the internal Object to a raw pointer of a corresponding type. More...
 
template<typename ObjectRefType , typename = std::enable_if_t<std::is_base_of_v<ObjectRef, ObjectRefType>>>
Optional< ObjectRefType > as () const
 Try to downcast the ObjectRef to a Optional<T> of the requested type. More...
 

Additional Inherited Members

- Public Types inherited from tvm::runtime::ObjectRef
using ContainerType = Object
 type indicate the container type. More...
 
- Static Public Attributes inherited from tvm::runtime::ObjectRef
static constexpr bool _type_is_nullable = true
 
- Protected Member Functions inherited from tvm::runtime::ObjectRef
Objectget_mutable () const
 
- Static Protected Member Functions inherited from tvm::runtime::ObjectRef
template<typename T >
static T DowncastNoCheck (ObjectRef ref)
 Internal helper function downcast a ref without check. More...
 
static void FFIClearAfterMove (ObjectRef *ref)
 Clear the object ref data field without DecRef after we successfully moved the field. More...
 
template<typename ObjectType >
static ObjectPtr< ObjectType > GetDataPtr (const ObjectRef &ref)
 Internal helper function get data_ as ObjectPtr of ObjectType. More...
 
- Protected Attributes inherited from tvm::runtime::ObjectRef
ObjectPtr< Objectdata_
 Internal pointer that backs the reference. More...
 

Detailed Description

Stores all data for an Algebraic Data Type (ADT).

In particular, it stores the handle (global type var) for an ADT and the constructors used to build it and is kept in the module. Note that type parameters are also indicated in the type data: this means that for any instance of an ADT, the type parameters must be indicated. That is, an ADT definition is treated as a type-level function, so an ADT handle must be wrapped in a TypeCall node that instantiates the type-level arguments. The kind checker enforces this.

Constructor & Destructor Documentation

◆ TypeData()

tvm::TypeData::TypeData ( GlobalTypeVar  header,
Array< TypeVar type_vars,
Array< Constructor constructors 
)

Constructor.

Parameters
headerthe name of ADT.
type_varstype variables.
constructorsconstructors field.

Member Function Documentation

◆ TVM_DEFINE_OBJECT_REF_METHODS()

tvm::TypeData::TVM_DEFINE_OBJECT_REF_METHODS ( TypeData  ,
Type  ,
TypeDataNode   
)

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