tvm
|
IRDocsifier is the top-level interface in the IR->Doc process. More...
#include <ir_docsifier.h>
Public Member Functions | |
void | VisitAttrs (tvm::AttrVisitor *v) |
TVM_DECLARE_FINAL_OBJECT_INFO (IRDocsifierNode, Object) | |
template<class TDoc > | |
TDoc | AsDoc (const TracedObject< ObjectRef > &obj) const |
Transform the input object into TDoc. More... | |
ExprDoc | AsExprDoc (const TracedObject< ObjectRef > &obj) |
Helper method to transform object into ExprDoc. More... | |
WithCtx | WithDispatchToken (const String &token) |
Push a new dispatch token into the stack. More... | |
WithCtx | WithFrame (const Frame &frame) |
Push a new frame the stack. More... | |
template<typename FrameType > | |
Optional< FrameType > | GetFrame () const |
Get the top frame with type FrameType. More... | |
![]() | |
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 | |
VarTable | vars |
The var table to use during the printing process. More... | |
Array< Frame > | frames |
The stack of frames. More... | |
Array< String > | dispatch_tokens |
The stack of dispatch tokens. More... | |
Map< String, String > | ir_prefix |
This map connects IR dipatch token to the name of identifier. More... | |
Static Public Attributes | |
static constexpr const char * | _type_key = "script.printer.IRDocsifier" |
![]() | |
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 |
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... | |
IRDocsifier is the top-level interface in the IR->Doc process.
It provides methods to convert IR node object to Doc, operate on Frame objects and change dispatch tokens.
Example usage:
|
inline |
Transform the input object into TDoc.
obj | The object to be transformed. |
|
inline |
|
inline |
Get the top frame with type FrameType.
FrameType | The type of frame to get. |
tvm::script::printer::IRDocsifierNode::TVM_DECLARE_FINAL_OBJECT_INFO | ( | IRDocsifierNode | , |
Object | |||
) |
|
inline |
Push a new dispatch token into the stack.
The top dispatch token decides which dispatch table to use when printing Object. This method returns a RAII guard which pops the token when going out of the scope.
token | The dispatch token to push. |
Push a new frame the stack.
Frame contains the contextual information that's needed during printing, for example, variables in the scope. This method returns a RAII guard which pops the frame and call the cleanup method of frame when going out of the scope.
frame | The frame to push. |
|
static |
The stack of dispatch tokens.
The dispatch token on the top decides which dispatch function to use when converting IR node object to Doc.
This map connects IR dipatch token to the name of identifier.
VarTable tvm::script::printer::IRDocsifierNode::vars |
The var table to use during the printing process.