|
| | StmtExprMutatorWithAnalyzer (const sym::Analyzer &analyzer) |
| |
| | StmtExprMutatorWithAnalyzer (sym::AnalyzerObj *analyzer) |
| |
| UnchangedOr< Stmt > | Mutate_ (const ForNode *op, InplaceMode inplace_mode) override |
| |
| UnchangedOr< Stmt > | Mutate_ (const BindNode *op, InplaceMode inplace_mode) override |
| |
| UnchangedOr< Stmt > | Mutate_ (const IfNode *op, InplaceMode inplace_mode) override |
| |
| UnchangedOr< Stmt > | Mutate_ (const RegionStmtNode *op, InplaceMode inplace_mode) override |
| |
| UnchangedOr< Stmt > | Mutate_ (const AssertStmtNode *op, InplaceMode inplace_mode) override |
| |
| UnchangedOr< Expr > | Mutate_ (const CallNode *op, InplaceMode inplace_mode) override |
| |
| UnchangedOr< PrimExpr > | Mutate_ (const prim::LetNode *op, InplaceMode inplace_mode) override |
| |
| UnchangedOr< PrimExpr > | Mutate_ (const prim::SelectNode *op, InplaceMode inplace_mode) override |
| |
| TVM_FFI_INLINE UnchangedOr< Stmt > | Mutate (const Stmt &stmt, InplaceMode inplace_mode=InplaceMode::kDisallow) |
| | Mutate a borrowed statement through the virtual generic entry.
|
| |
| TVM_FFI_INLINE UnchangedOr< SeqStmt > | Mutate (const SeqStmt &stmt, InplaceMode inplace_mode=InplaceMode::kDisallow) |
| | Mutate a scope body without collapsing its sequence container.
|
| |
| TVM_FFI_INLINE UnchangedOr< ffi::Optional< SeqStmt > > | Mutate (const ffi::Optional< SeqStmt > &stmt, InplaceMode inplace_mode=InplaceMode::kDisallow) |
| |
| TVM_FFI_INLINE UnchangedOr< ffi::Optional< Stmt > > | Mutate (const ffi::Optional< Stmt > &stmt, InplaceMode inplace_mode=InplaceMode::kDisallow) |
| | Mutate an optional statement, preserving an absent function body.
|
| |
| virtual UnchangedOr< Stmt > | Mutate_ (const BindNode *op, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< Stmt > | Mutate_ (const RegionStmtNode *op, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< Stmt > | Mutate_ (const IfNode *op, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< Stmt > | Mutate_ (const ForNode *op, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< Stmt > | Mutate_ (const WhileNode *op, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< Stmt > | Mutate_ (const ReturnNode *op, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< Stmt > | Mutate_ (const BreakNode *op, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< Stmt > | Mutate_ (const ContinueNode *op, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< Stmt > | Mutate_ (const TensorStoreNode *op, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< Stmt > | Mutate_ (const AssertStmtNode *op, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< Stmt > | Mutate_ (const SeqStmtNode *op, InplaceMode inplace_mode) |
| |
| virtual UnchangedOr< Stmt > | Mutate_ (const EvaluateNode *op, InplaceMode inplace_mode) |
| |
| TVM_FFI_INLINE UnchangedOr< Stmt > | Mutate (const Stmt &stmt, InplaceMode inplace_mode=InplaceMode::kDisallow) |
| | Mutate a borrowed statement through the virtual generic entry.
|
| |
| TVM_FFI_INLINE UnchangedOr< SeqStmt > | Mutate (const SeqStmt &stmt, InplaceMode inplace_mode=InplaceMode::kDisallow) |
| | Mutate a scope body without collapsing its sequence container.
|
| |
| TVM_FFI_INLINE UnchangedOr< ffi::Optional< SeqStmt > > | Mutate (const ffi::Optional< SeqStmt > &stmt, InplaceMode inplace_mode=InplaceMode::kDisallow) |
| |
| TVM_FFI_INLINE UnchangedOr< ffi::Optional< Stmt > > | Mutate (const ffi::Optional< Stmt > &stmt, InplaceMode inplace_mode=InplaceMode::kDisallow) |
| | Mutate an optional statement, preserving an absent function body.
|
| |
| 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 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::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.
|
| |
IRMutator with an analyzer context.
This class can sub-classed by ir mutators that need an analyzer. It will populates scope-related info such as bounds of loop-variables and constraints for the analyzer, so that the child class can do accurate context-dependent analysis.
- See also
- src/tirx/ir/ir_mutator_with_analyzer.cc