|
| TVM_FFI_INLINE UnchangedOr< PrimExpr > | Mutate (const PrimExpr &expr, InplaceMode inplace_mode=InplaceMode::kDisallow) |
| | Mutate a primitive expression, preserving its expression category.
|
| |
| TVM_FFI_INLINE UnchangedOr< Expr > | Mutate (const Expr &expr, InplaceMode inplace_mode=InplaceMode::kDisallow) |
| | Mutate an expression, preserving its expression category.
|
| |
| virtual UnchangedOr< Expr > | Mutate_ (const OpaqueExprNode *node, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< Expr > | Mutate_ (const TupleNode *node, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< Expr > | Mutate_ (const TupleGetItemNode *node, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< PrimExpr > | Mutate_ (const TensorLoadNode *node, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< Expr > | Mutate_ (const TensorRegionNode *node, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< Expr > | Mutate_ (const VarNode *node, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< Expr > | Mutate_ (const GlobalVarNode *node, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< Expr > | Mutate_ (const CallNode *node, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< Expr > | Mutate_ (const GenericConstNode *node, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< Expr > | Mutate_ (const DataTypeImmNode *node, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< PrimExpr > | Mutate_ (const IntImmNode *node, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< PrimExpr > | Mutate_ (const FloatImmNode *node, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< Expr > | Mutate_ (const OpNode *node, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< Expr > | Mutate_ (const StringImmNode *node, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< PrimExpr > | Mutate_ (const prim::CastNode *node, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< PrimExpr > | Mutate_ (const prim::AddNode *node, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< PrimExpr > | Mutate_ (const prim::LShiftNode *node, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< PrimExpr > | Mutate_ (const prim::RShiftNode *node, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< PrimExpr > | Mutate_ (const prim::BitwiseAndNode *node, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< PrimExpr > | Mutate_ (const prim::BitwiseOrNode *node, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< PrimExpr > | Mutate_ (const prim::BitwiseXorNode *node, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< PrimExpr > | Mutate_ (const prim::BitwiseNotNode *node, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< PrimExpr > | Mutate_ (const prim::SubNode *node, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< PrimExpr > | Mutate_ (const prim::MulNode *node, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< PrimExpr > | Mutate_ (const prim::DivNode *node, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< PrimExpr > | Mutate_ (const prim::ModNode *node, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< PrimExpr > | Mutate_ (const prim::FloorDivNode *node, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< PrimExpr > | Mutate_ (const prim::FloorModNode *node, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< PrimExpr > | Mutate_ (const prim::MinNode *node, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< PrimExpr > | Mutate_ (const prim::MaxNode *node, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< PrimExpr > | Mutate_ (const prim::EQNode *node, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< PrimExpr > | Mutate_ (const prim::NENode *node, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< PrimExpr > | Mutate_ (const prim::LTNode *node, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< PrimExpr > | Mutate_ (const prim::LENode *node, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< PrimExpr > | Mutate_ (const prim::GTNode *node, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< PrimExpr > | Mutate_ (const prim::GENode *node, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< PrimExpr > | Mutate_ (const prim::AndNode *node, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< PrimExpr > | Mutate_ (const prim::OrNode *node, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< PrimExpr > | Mutate_ (const prim::NotNode *node, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< PrimExpr > | Mutate_ (const prim::SelectNode *node, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< PrimExpr > | Mutate_ (const prim::LetNode *node, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< PrimExpr > | Mutate_ (const prim::RampNode *node, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< PrimExpr > | Mutate_ (const prim::BroadcastNode *node, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< PrimExpr > | Mutate_ (const prim::ShuffleNode *node, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< ffi::Any > | Mutate (ffi::AnyView value, InplaceMode inplace_mode=InplaceMode::kDisallow) |
| | Construct a mutator with the core expression hooks.
|
| |
| | ObjectMutator () |
| | Construct a mutator using structural fallback for every object.
|
| |
| | ObjectMutator (const ObjectMutator &other)=delete |
| |
| ObjectMutator & | operator= (const ObjectMutator &other)=delete |
| |
| Expected< UnchangedOr< ffi::Any > > | MutateExpected (ffi::AnyView value, InplaceMode inplace_mode=InplaceMode::kDisallow) noexcept |
| | Adapt the virtual throwing entrypoint to the structural ABI.
|
| |
| ffi::Any | VarRemapGet (ffi::AnyView var) |
| | Look up a variable replacement, throwing on failure.
|
| |
| void | VarRemapSet (ffi::AnyView var, ffi::AnyView value) |
| | Record a variable replacement, throwing on failure.
|
| |
| TVM_FFI_INLINE Expected< ffi::Any > | VarRemapGetExpected (ffi::AnyView var) noexcept |
| | Look up a replacement in the variable-remap environment.
|
| |
| TVM_FFI_INLINE Expected< void > | VarRemapSetExpected (ffi::AnyView var, ffi::AnyView mapped_value) noexcept |
| | Record a replacement in the variable-remap environment.
|
| |
Structural Expr mutator with native overrides for core expressions and structural fallback for other objects.
Prefer StructuralMap for common cases; use ExprMutator for extensive per-kind customization or optimization. The default Var hook consults the inherited remap before visiting definition types.
Native hooks match exact node types; derived node types need their own registrations. Existing hooks only require overriding. For an extra MyExprNode derived from ExprNode, initialize an inherited table and register the new virtual hook:
public:
using ExprMutator::Mutate_;
virtual UnchangedOr<Expr> Mutate_(const MyExprNode* node, InplaceMode
inplace_mode);
protected:
static void InitVTable(
VTable* vtable) {
ExprMutator::InitVTable(vtable);
SetDispatch<MyExprMutator, MyExprNode>(vtable);
}
};
Structural Expr mutator with native overrides for core expressions and structural fallback for other ...
Definition expr_functor.h:431
A dynamically dispatched functor on the type of the first argument.
Definition object_functor.h:85
#define TVM_DEFINE_OBJECT_FUNCTOR_DEFAULT_CONSTRUCTOR(Class, Parent)
Define a default constructor backed by one initialized native dispatch table.
Definition object_functor.h:529
Use tvm::ExprMutator explicitly when dialect mutators are also in scope.