tvm
|
Statement rewriter for relax.DataflowBlock. More...
#include <binding_rewrite.h>
Public Member Functions | |
void | ReplaceAllUses (Var old_var, Var new_var) |
Replace all uses of old_var with new_var. More... | |
void | Add (Binding binding) |
Insert a Binding statement. More... | |
void | Add (String var_name, Expr expr, bool is_dfvar=false) |
Insert an expression as VarBinding with variable name. More... | |
void | Add (Expr expr, bool is_dfvar=false) |
Insert an expression as VarBinding with automatic variable name. More... | |
void | RemoveUnused (Var unused, bool allow_undef=false) |
Remove the definition statement of an unused variable. More... | |
void | RemoveAllUnused () |
Remove the definition statements of all unused variables. More... | |
DataflowBlock | MutatedDataflowBlock () |
The rewritten dataflow block. More... | |
Function | MutatedFunc () |
The rewritten function. More... | |
IRModule | MutateIRModule (IRModule irmod) |
The rewritten IRModule. More... | |
void | VisitAttrs (AttrVisitor *v) |
Visit attributes. More... | |
TVM_DECLARE_FINAL_OBJECT_INFO (DataflowBlockRewriteNode, 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) |
Static Public Attributes | |
static constexpr const char * | _type_key = "relax.DataflowBlockRewrite" |
![]() | |
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 |
Protected Attributes | |
DataflowBlock | dfb_ |
The rewritten dataflow block. More... | |
Optional< Function > | root_fn_ |
The rewritten function. More... | |
const FunctionNode * | original_fn_ptr_ |
Pointer to the original function. More... | |
Map< Var, Array< Var > > | to_users_ |
Map from variable to its users. More... | |
Array< Var > | fn_outputs_ |
Variables required by function outputs. 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... | |
Friends | |
class | DataflowBlockRewrite |
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... | |
Statement rewriter for relax.DataflowBlock.
|
inline |
Insert an expression as VarBinding with automatic variable name.
|
inline |
Insert an expression as VarBinding with variable name.
|
inline |
The rewritten dataflow block.
|
inline |
The rewritten function.
The rewritten IRModule.
void tvm::relax::DataflowBlockRewriteNode::RemoveAllUnused | ( | ) |
Remove the definition statements of all unused variables.
void tvm::relax::DataflowBlockRewriteNode::RemoveUnused | ( | Var | unused, |
bool | allow_undef = false |
||
) |
Remove the definition statement of an unused variable.
Replace all uses of old_var with new_var.
tvm::relax::DataflowBlockRewriteNode::TVM_DECLARE_FINAL_OBJECT_INFO | ( | DataflowBlockRewriteNode | , |
Object | |||
) |
|
inline |
Visit attributes.
|
friend |
|
staticconstexpr |
|
protected |
The rewritten dataflow block.
Variables required by function outputs.
|
protected |
Pointer to the original function.
Map from variable to its users.