TVM | Define
TVM_DEFINE_OBJECT_REF_METHODS
TVM_DEFINE_OBJECT_REF_METHODS(Tuple, RelayExpr, TupleNode);
作用:这个宏用于定义对象引用的方法,包括拷贝构造、赋值操作等,主要用于Tuple类。
参数:
- Tuple:表示要定义的对象类型。
- RelayExpr:表示这个对象的基类,通常是所有表达式的基类。
- TupleNode:表示对象的底层实现类。
TVM_DEFINE_OBJECT_REF_COW_METHOD
TVM_DEFINE_OBJECT_REF_COW_METHOD(TupleNode);
作用:这个宏用于定义“写时复制”(Copy-On-Write, COW)方法,主要用于TupleNode类。
参数:
- TupleNode:表示具体的节点类型。
TVM_DECLARE_FINAL_OBJECT_INFO
TVM_DECLARE_FINAL_OBJECT_INFO(TupleNode, ExprNode);
作用
- 类型声明:这个宏声明了一个最终对象类型的信息,表明 TupleNode 是一个最终的(不能被继承的)对象类型。
- 基类关系:它指定了 TupleNode 的基类为 ExprNode,这意味着 TupleNode 继承了 ExprNode 的属性和方法。
参数
- TupleNode:表示要声明的最终对象类型。它通常是一个具体的类,用于表示某种特定的数据结构或功能。
- ExprNode:表示基类,所有表达式节点的基类。通过这个参数,TupleNode 可以继承 ExprNode 的所有特性。
TVM_DECLARE_BASE_OBJECT_INFO
TVM_DECLARE_BASE_OBJECT_INFO(StepNode, Object);
作用
- 基础类型声明:这个宏用于声明一个基础对象类型的信息,表示 StepNode 是一个基础(可被继承的)对象类型。
- 基类关系:它指定了 StepNode 的基类为 Object,这意味着 StepNode 继承了 Object 的属性和方法。
参数
- StepNode:表示要声明的对象类型,通常是一个具体的类,用于表示某种特定的数据结构或功能。
- Object:表示基类,TVM 中所有对象的基类。通过这个参数,StepNode 可以继承 Object 的所有特性。
