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 | Update (const GlobalVar &var, const BaseFunc &func) |
Update a function 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... | |
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... | |
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... | |
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... | |
std::unordered_set< String > | Imports () const |
The set of imported files. More... | |
TVM_OBJECT_ENABLE_SCRIPT_PRINTER () | |
TVM_DECLARE_FINAL_OBJECT_INFO (IRModuleNode, 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... | |
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... | |
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 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 | |
![]() | |
typedef void(* | FDeleter) (Object *self) |
Object deleter. More... | |
using | RefCounterType = std::atomic< int32_t > |
![]() | |
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 () |
![]() | |
void | IncRef () |
developer function, increases reference counter. More... | |
void | DecRef () |
developer function, decrease reference counter. More... | |
![]() | |
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... | |
![]() | |
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. |
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::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.
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. |
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. |
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. |
|
inline |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
DictAttrs tvm::IRModuleNode::attrs |
Map<String, Array<GlobalInfo> > tvm::IRModuleNode::global_infos |
Globally static object that are referred by the IR itself.
A map from string names to global variables that ensures global uniqueness.
SourceMap tvm::IRModuleNode::source_map |
The source map for the module.