FForwardRewrite
#
源码:tvm/include/tvm/relay/op_attr_types.h
/*!
* \brief Forward rewriting rule for a specific op.
*
* \param ref_call The reference old call type to be rewritten.
* We can make use of the op and type information.
* \param new_args The new arguments (some of them could be TempExpr).
* \param ctx Optional context information about ref_call.
* \return The rewriten result call, can also return nullptr,
* which indicate the rewriter should use the default fallback
* rule that realizes all its input and compose the call.
*
* \note When we register the function, we can register
* a different signature with ctx to be a specific node type.
*/
using FForwardRewrite = runtime::TypedPackedFunc<Expr(
const Call& ref_call, const Array<Expr>& new_args, const ObjectRef& ctx)>;
FForwardRewrite
是类型别名,它是一个带有类型的打包函数对象类型。这个函数对象的签名如下:
Expr(const Call& ref_call, const Array<Expr>& new_args, const ObjectRef& ctx)
其中,ref_call
是一个引用类型的旧调用类型,用于被重写;new_args
是新的参数列表,其中一些可以是 TempExpr
;ctx
是关于 ref_call
的可选的上下文信息。
该函数返回一个重写后的结果调用,也可以返回空指针,表示重写器应该使用默认的回退规则来实现所有输入并组合调用。
在注册此函数时,我们可以使用不同的签名和上下文信息来注册特定节点类型。