tvm
|
IRModule that holds functions and type definitions. More...
#include <module.h>
Public Member Functions | |
template<typename TObjectRef > | |
Optional< TObjectRef > | GetAttr (const std::string &attr_key, Optional< TObjectRef > default_value=Optional< TObjectRef >(nullptr)) const |
Get a module attribute. More... | |
template<typename TObjectRef > | |
Optional< TObjectRef > | GetAttr (const std::string &attr_key, TObjectRef default_value) const |
DictAttrs | GetAttrs () const |
Get the metadata attributes. More... | |
bool | HasNonzeroAttr (const std::string &attr_key) const |
Check whether the module has an non-zero integer attr. More... | |
IRModuleNode () | |
void | VisitAttrs (AttrVisitor *v) |
bool | SEqualReduce (const IRModuleNode *other, SEqualReducer equal) const |
void | SHashReduce (SHashReducer hash_reduce) const |
void | Add (const GlobalVar &var, const BaseFunc &func, bool update=false) |
Add a function to the global environment. More... | |
void | AddUnchecked (const GlobalVar &var, const BaseFunc &func) |
Add a function to the global environment. More... | |
void | AddTypeDef (const GlobalTypeVar &var, const TypeData &type, bool update=false) |
Add a type-level definition to the global environment. More... | |
void | AddTypeDefUnchecked (const GlobalTypeVar &var, const TypeData &type, bool update=false) |
Add a type-level definition to the global environment. More... | |
void | Update (const GlobalVar &var, const BaseFunc &func) |
Update a function in the global environment. More... | |
void | UpdateTypeDef (const GlobalTypeVar &var, const TypeData &type) |
Update a type definition in the global environment. More... | |
void | UpdateGlobalInfo (const String &name, const Array< GlobalInfo > &info) |
Update an array of global infos in the global environment. More... | |
void | Remove (const GlobalVar &var) |
Remove a function from the global environment. More... | |
bool | ContainGlobalVar (const String &name) const |
Check if the global_var_map_ contains a global variable. More... | |
bool | ContainGlobalTypeVar (const String &name) const |
Check if the global_type_var_map_ contains a global type variable. More... | |
GlobalVar | GetGlobalVar (const String &str) const |
Lookup a global function by its variable. More... | |
Array< GlobalVar > | GetGlobalVars () const |
Collect all global vars defined in this module, ordered by the global variable name. More... | |
GlobalTypeVar | GetGlobalTypeVar (const String &str) const |
Look up a global function by its name. More... | |
Array< GlobalTypeVar > | GetGlobalTypeVars () const |
Collect all global type vars defined in this module. More... | |
Constructor | GetConstructor (const String &adt, const String &cons) const |
Find constructor of ADT using name. More... | |
BaseFunc | Lookup (const GlobalVar &var) const |
Look up a global function by its variable. More... | |
BaseFunc | Lookup (const String &name) const |
Look up a global function by its string name. More... | |
TypeData | LookupTypeDef (const GlobalTypeVar &var) const |
Look up a global type definition by its variable. More... | |
TypeData | LookupTypeDef (const String &var) const |
Look up a global type definition by its name. More... | |
Constructor | LookupTag (const int32_t tag) |
Look up a constructor by its tag. More... | |
void | Update (const IRModule &other) |
Update the functions inside this environment by functions in another environment. More... | |
IRModule | ShallowCopy () |
Create a shallow copy of this IRModule. More... | |
void | Import (const String &path) |
Import Relay code from the file at path. More... | |
void | ImportFromStd (const String &path) |
Import Relay code from the file at path, relative to the standard library. More... | |
std::unordered_set< String > | Imports () const |
The set of imported files. More... | |
TVM_OBJECT_ENABLE_SCRIPT_PRINTER () | |
TVM_DECLARE_FINAL_OBJECT_INFO (IRModuleNode, Object) | |
Public Member Functions inherited from tvm::runtime::Object | |
uint32_t | type_index () const |
std::string | GetTypeKey () const |
size_t | GetTypeKeyHash () const |
template<typename TargetType > | |
bool | IsInstance () const |
bool | unique () const |
Object () | |
Object (const Object &other) | |
Object (Object &&other) | |
Object & | operator= (const Object &other) |
Object & | operator= (Object &&other) |
Public Attributes | |
Map< GlobalVar, BaseFunc > | functions |
A map from ids to all global functions. More... | |
Map< GlobalTypeVar, TypeData > | type_definitions |
A map from global type vars to ADT type data. More... | |
SourceMap | source_map |
The source map for the module. More... | |
DictAttrs | attrs |
Map< String, Array< GlobalInfo > > | global_infos |
Globally static object that are referred by the IR itself. More... | |
Map< String, GlobalVar > | global_var_map_ |
A map from string names to global variables that ensures global uniqueness. More... | |
Map< String, GlobalTypeVar > | global_type_var_map_ |
A map from string names to global type variables (ADT names) that ensures global uniqueness. More... | |
std::unordered_map< int32_t, Constructor > | constructor_tag_map_ |
A map from constructor tags to constructor objects for convenient access. More... | |
std::unordered_set< String > | import_set_ |
The files previously imported, required to ensure importing is idempotent for each module. More... | |
Static Public Attributes | |
static constexpr const char * | _type_key = "IRModule" |
static constexpr const bool | _type_has_method_sequal_reduce = true |
static constexpr const bool | _type_has_method_shash_reduce = true |
Static Public Attributes inherited from tvm::runtime::Object | |
static constexpr const char * | _type_key = "runtime.Object" |
static constexpr bool | _type_final = false |
static constexpr uint32_t | _type_child_slots = 0 |
static constexpr bool | _type_child_slots_can_overflow = true |
static constexpr bool | _type_has_method_visit_attrs = true |
static constexpr bool | _type_has_method_sequal_reduce = false |
static constexpr bool | _type_has_method_shash_reduce = false |
static constexpr uint32_t | _type_index = TypeIndex::kDynamic |
Friends | |
class | IRModule |
The IRModule declaration statement. More... | |
Additional Inherited Members | |
Public Types inherited from tvm::runtime::Object | |
typedef void(* | FDeleter) (Object *self) |
Object deleter. More... | |
using | RefCounterType = std::atomic< int32_t > |
Static Public Member Functions inherited from tvm::runtime::Object | |
static std::string | TypeIndex2Key (uint32_t tindex) |
Get the type key of the corresponding index from runtime. More... | |
static size_t | TypeIndex2KeyHash (uint32_t tindex) |
Get the type key hash of the corresponding index from runtime. More... | |
static uint32_t | TypeKey2Index (const std::string &key) |
Get the type index of the corresponding key from runtime. More... | |
static uint32_t | _GetOrAllocRuntimeTypeIndex () |
static uint32_t | RuntimeTypeIndex () |
Protected Member Functions inherited from tvm::runtime::Object | |
void | IncRef () |
developer function, increases reference counter. More... | |
void | DecRef () |
developer function, decrease reference counter. More... | |
Static Protected Member Functions inherited from tvm::runtime::Object | |
static uint32_t | GetOrAllocRuntimeTypeIndex (const std::string &key, uint32_t static_tindex, uint32_t parent_tindex, uint32_t type_child_slots, bool type_child_slots_can_overflow) |
Get the type index using type key. More... | |
Protected Attributes inherited from tvm::runtime::Object | |
uint32_t | type_index_ {0} |
Type index(tag) that indicates the type of the object. More... | |
RefCounterType | ref_counter_ {0} |
The internal reference counter. More... | |
FDeleter | deleter_ = nullptr |
deleter of this object to enable customized allocation. If the deleter is nullptr, no deletion will be performed. The creator of the object must always set the deleter field properly. More... | |
IRModule that holds functions and type definitions.
IRModule is the basic unit for all IR transformations across the stack.
Many operations require access to the global IRModule. We pass the IRModule by value in a functional style as an explicit argument, but we mutate the Module while optimizing programs.
|
inline |
Add a function to the global environment.
var | The var of the global function. |
func | The function. |
update | Controls whether you can replace a definition in the environment. |
void tvm::IRModuleNode::AddTypeDef | ( | const GlobalTypeVar & | var, |
const TypeData & | type, | ||
bool | update = false |
||
) |
Add a type-level definition to the global environment.
var | The var of the global type definition. |
type | The ADT. |
update | Controls whether you can replace a definition in the environment. |
void tvm::IRModuleNode::AddTypeDefUnchecked | ( | const GlobalTypeVar & | var, |
const TypeData & | type, | ||
bool | update = false |
||
) |
Add a type-level definition to the global environment.
var | The var of the global type definition. |
type | The ADT. |
update | Controls whether you can replace a definition in the environment. |
It does not do type checking as AddTypeDef does.
Add a function to the global environment.
var | The name of the global function. |
func | The function. |
It does not do type inference as Add does.
bool tvm::IRModuleNode::ContainGlobalTypeVar | ( | const String & | name | ) | const |
Check if the global_type_var_map_ contains a global type variable.
name | The variable name. |
bool tvm::IRModuleNode::ContainGlobalVar | ( | const String & | name | ) | const |
Check if the global_var_map_ contains a global variable.
name | The variable name. |
|
inline |
Get a module attribute.
attr_key | The attribute key. |
default_value | The default value if the key does not exist, defaults to nullptr. |
TOBjectRef | the expected object type. |
Error | if the key exists but the value does not match TObjectRef |
|
inline |
|
inline |
Get the metadata attributes.
Constructor tvm::IRModuleNode::GetConstructor | ( | const String & | adt, |
const String & | cons | ||
) | const |
Find constructor of ADT using name.
adt | name of the ADT the constructor belongs to |
cons | name of the constructor |
GlobalTypeVar tvm::IRModuleNode::GetGlobalTypeVar | ( | const String & | str | ) | const |
Look up a global function by its name.
str | The unique string specifying the global variable. |
Array<GlobalTypeVar> tvm::IRModuleNode::GetGlobalTypeVars | ( | ) | const |
Collect all global type vars defined in this module.
Lookup a global function by its variable.
str | The unique string specifying the global variable. |
Collect all global vars defined in this module, ordered by the global variable name.
|
inline |
Check whether the module has an non-zero integer attr.
This function can be used to check whether an optional attribute mark(e.g. inline) exists.
attr_key | The key to the attribute. |
void tvm::IRModuleNode::Import | ( | const String & | path | ) |
Import Relay code from the file at path.
path | The path of the Relay code to import. |
void tvm::IRModuleNode::ImportFromStd | ( | const String & | path | ) |
Import Relay code from the file at path, relative to the standard library.
path | The path of the Relay code to import. |
std::unordered_set<String> tvm::IRModuleNode::Imports | ( | ) | const |
The set of imported files.
Look up a global function by its variable.
var | The global var to lookup. |
Look up a global function by its string name.
name | The name of the function. |
Constructor tvm::IRModuleNode::LookupTag | ( | const int32_t | tag | ) |
Look up a constructor by its tag.
tag | The tag for the constructor. |
TypeData tvm::IRModuleNode::LookupTypeDef | ( | const GlobalTypeVar & | var | ) | const |
Look up a global type definition by its variable.
var | The var of the global type definition. |
Look up a global type definition by its name.
var | The name of the global type definition. |
void tvm::IRModuleNode::Remove | ( | const GlobalVar & | var | ) |
Remove a function from the global environment.
var | The name of the global function to update. |
bool tvm::IRModuleNode::SEqualReduce | ( | const IRModuleNode * | other, |
SEqualReducer | equal | ||
) | const |
IRModule tvm::IRModuleNode::ShallowCopy | ( | ) |
void tvm::IRModuleNode::SHashReduce | ( | SHashReducer | hash_reduce | ) | const |
tvm::IRModuleNode::TVM_DECLARE_FINAL_OBJECT_INFO | ( | IRModuleNode | , |
Object | |||
) |
tvm::IRModuleNode::TVM_OBJECT_ENABLE_SCRIPT_PRINTER | ( | ) |
Update a function in the global environment.
var | The name of the global function to update. |
func | The new function. |
void tvm::IRModuleNode::Update | ( | const IRModule & | other | ) |
Update the functions inside this environment by functions in another environment.
other | The other environment. |
void tvm::IRModuleNode::UpdateGlobalInfo | ( | const String & | name, |
const Array< GlobalInfo > & | info | ||
) |
Update an array of global infos in the global environment.
name | The name of the global info. |
info | The new array of global infos. |
void tvm::IRModuleNode::UpdateTypeDef | ( | const GlobalTypeVar & | var, |
const TypeData & | type | ||
) |
Update a type definition in the global environment.
var | The name of the global type definition to update. |
type | The new ADT. |
|
inline |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
DictAttrs tvm::IRModuleNode::attrs |
std::unordered_map<int32_t, Constructor> tvm::IRModuleNode::constructor_tag_map_ |
A map from constructor tags to constructor objects for convenient access.
Map<String, Array<GlobalInfo> > tvm::IRModuleNode::global_infos |
Globally static object that are referred by the IR itself.
Map<String, GlobalTypeVar> tvm::IRModuleNode::global_type_var_map_ |
A map from string names to global type variables (ADT names) that ensures global uniqueness.
A map from string names to global variables that ensures global uniqueness.
std::unordered_set<String> tvm::IRModuleNode::import_set_ |
The files previously imported, required to ensure importing is idempotent for each module.
SourceMap tvm::IRModuleNode::source_map |
The source map for the module.
Map<GlobalTypeVar, TypeData> tvm::IRModuleNode::type_definitions |
A map from global type vars to ADT type data.