tvm
Protected Member Functions | List of all members
tvm::tirx::StmtExprMutator Class Reference

Mutator that recursively mutates stmts and exprs on them. More...

#include <stmt_functor.h>

Inheritance diagram for tvm::tirx::StmtExprMutator:
Collaboration diagram for tvm::tirx::StmtExprMutator:

Protected Member Functions

PrimExpr VisitExpr (const PrimExpr &e) override
 Visitor to Exprs, can be overriden to do recursive changes to Exprs. More...
 
PrimExpr VisitExpr_ (const BufferLoadNode *op) override
 
PrimExpr VisitExpr_ (const VarNode *op) override
 
PrimExpr VisitExpr_ (const SizeVarNode *op) override
 
PrimExpr VisitExpr_ (const BufferLoadNode *op) override
 
PrimExpr VisitExpr_ (const ProducerLoadNode *op) override
 
PrimExpr VisitExpr_ (const LetNode *op) override
 
PrimExpr VisitExpr_ (const CallNode *op) override
 
PrimExpr VisitExpr_ (const AddNode *op) override
 
PrimExpr VisitExpr_ (const SubNode *op) override
 
PrimExpr VisitExpr_ (const MulNode *op) override
 
PrimExpr VisitExpr_ (const DivNode *op) override
 
PrimExpr VisitExpr_ (const ModNode *op) override
 
PrimExpr VisitExpr_ (const FloorDivNode *op) override
 
PrimExpr VisitExpr_ (const FloorModNode *op) override
 
PrimExpr VisitExpr_ (const MinNode *op) override
 
PrimExpr VisitExpr_ (const MaxNode *op) override
 
PrimExpr VisitExpr_ (const EQNode *op) override
 
PrimExpr VisitExpr_ (const NENode *op) override
 
PrimExpr VisitExpr_ (const LTNode *op) override
 
PrimExpr VisitExpr_ (const LENode *op) override
 
PrimExpr VisitExpr_ (const GTNode *op) override
 
PrimExpr VisitExpr_ (const GENode *op) override
 
PrimExpr VisitExpr_ (const AndNode *op) override
 
PrimExpr VisitExpr_ (const OrNode *op) override
 
PrimExpr VisitExpr_ (const ReduceNode *op) override
 
PrimExpr VisitExpr_ (const CastNode *op) override
 
PrimExpr VisitExpr_ (const NotNode *op) override
 
PrimExpr VisitExpr_ (const SelectNode *op) override
 
PrimExpr VisitExpr_ (const RampNode *op) override
 
PrimExpr VisitExpr_ (const BroadcastNode *op) override
 
PrimExpr VisitExpr_ (const ShuffleNode *op) override
 
PrimExpr VisitExpr_ (const IntImmNode *op) override
 
PrimExpr VisitExpr_ (const FloatImmNode *op) override
 
PrimExpr VisitExpr_ (const StringImmNode *op) override
 
Stmt VisitStmt (const Stmt &stmt) override
 Internal mutator that everyone calls. More...
 
- Protected Member Functions inherited from tvm::tirx::ExprMutator
PrimExpr VisitExpr_ (const VarNode *op) override
 
PrimExpr VisitExpr_ (const SizeVarNode *op) override
 
PrimExpr VisitExpr_ (const BufferLoadNode *op) override
 
PrimExpr VisitExpr_ (const ProducerLoadNode *op) override
 
PrimExpr VisitExpr_ (const LetNode *op) override
 
PrimExpr VisitExpr_ (const CallNode *op) override
 
PrimExpr VisitExpr_ (const AddNode *op) override
 
PrimExpr VisitExpr_ (const SubNode *op) override
 
PrimExpr VisitExpr_ (const MulNode *op) override
 
PrimExpr VisitExpr_ (const DivNode *op) override
 
PrimExpr VisitExpr_ (const ModNode *op) override
 
PrimExpr VisitExpr_ (const FloorDivNode *op) override
 
PrimExpr VisitExpr_ (const FloorModNode *op) override
 
PrimExpr VisitExpr_ (const MinNode *op) override
 
PrimExpr VisitExpr_ (const MaxNode *op) override
 
PrimExpr VisitExpr_ (const EQNode *op) override
 
PrimExpr VisitExpr_ (const NENode *op) override
 
PrimExpr VisitExpr_ (const LTNode *op) override
 
PrimExpr VisitExpr_ (const LENode *op) override
 
PrimExpr VisitExpr_ (const GTNode *op) override
 
PrimExpr VisitExpr_ (const GENode *op) override
 
PrimExpr VisitExpr_ (const AndNode *op) override
 
PrimExpr VisitExpr_ (const OrNode *op) override
 
PrimExpr VisitExpr_ (const ReduceNode *op) override
 
PrimExpr VisitExpr_ (const CastNode *op) override
 
PrimExpr VisitExpr_ (const NotNode *op) override
 
PrimExpr VisitExpr_ (const SelectNode *op) override
 
PrimExpr VisitExpr_ (const RampNode *op) override
 
PrimExpr VisitExpr_ (const BroadcastNode *op) override
 
PrimExpr VisitExpr_ (const ShuffleNode *op) override
 
PrimExpr VisitExpr_ (const IntImmNode *op) override
 
PrimExpr VisitExpr_ (const FloatImmNode *op) override
 
PrimExpr VisitExpr_ (const StringImmNode *op) override
 
- Protected Member Functions inherited from tvm::tirx::StmtMutator
template<typename TNode >
ObjectPtr< TNode > CopyOnWrite (const TNode *node)
 Perform copy on write on node. More...
 
Stmt VisitStmt (const Stmt &stmt) override
 Internal mutator that everyone calls. More...
 
virtual Buffer VisitBufferDef (const Buffer &buffer, bool alloc_data)
 Visit buffer at definition site. Visits shape/strides/elem_offset via VisitExpr. If any field changes, creates a new buffer and records it in buffer_remap_. More...
 
virtual Buffer VisitBufferUse (const Buffer &buffer)
 Visit buffer at use site (BufferStore, BufferLoad, SBlock reads/writes). By default, returns the remapped buffer from buffer_remap_ if exists, otherwise returns the original buffer. Buffer fields are visited at their definition site. More...
 
Stmt VisitStmt_ (const BindNode *op) override
 
Stmt VisitStmt_ (const AttrStmtNode *op) override
 
Stmt VisitStmt_ (const IfThenElseNode *op) override
 
Stmt VisitStmt_ (const ForNode *op) override
 
Stmt VisitStmt_ (const WhileNode *op) override
 
Stmt VisitStmt_ (const AllocBufferNode *op) override
 
Stmt VisitStmt_ (const DeclBufferNode *op) override
 
Stmt VisitStmt_ (const BufferStoreNode *op) override
 
Stmt VisitStmt_ (const AssertStmtNode *op) override
 
Stmt VisitStmt_ (const SeqStmtNode *op) override
 
Stmt VisitStmt_ (const EvaluateNode *op) override
 
Stmt VisitStmt_ (const SBlockNode *op) override
 
Stmt VisitStmt_ (const SBlockRealizeNode *op) override
 
Stmt VisitSeqStmt_ (const SeqStmtNode *op, bool flatten_before_visit, std::function< Stmt(const Stmt &)> fmutate=nullptr)
 Alternative advance method for SeqStmtNode. More...
 

Additional Inherited Members

- Public Member Functions inherited from tvm::tirx::StmtMutator
Stmt operator() (Stmt stmt)
 Mutate stmt. More...
 
- Protected Attributes inherited from tvm::tirx::StmtMutator
ffi::Map< Buffer, Bufferbuffer_remap_
 Map from old buffer to new buffer, populated by VisitBufferDef. More...
 
bool allow_copy_on_write_ {false}
 Internal state to indicate whether copy on write is enabled. COW is enabled iff all the parents of the node are unique. More...
 

Detailed Description

Mutator that recursively mutates stmts and exprs on them.

Member Function Documentation

◆ VisitExpr()

PrimExpr tvm::tirx::StmtExprMutator::VisitExpr ( const PrimExpr e)
inlineoverrideprotectedvirtual

Visitor to Exprs, can be overriden to do recursive changes to Exprs.

Note
A common pattern is to call ExprMutator here, or have a class sub-class both StmtMutator and ExprMutator and redirect Mutate to ExprMutator::Mutate(Expr)

Reimplemented from tvm::tirx::StmtMutator.

◆ VisitExpr_() [1/34]

PrimExpr tvm::tirx::ExprMutator::VisitExpr_
overrideprotected

◆ VisitExpr_() [2/34]

PrimExpr tvm::tirx::ExprMutator::VisitExpr_
overrideprotected

◆ VisitExpr_() [3/34]

PrimExpr tvm::tirx::ExprMutator::VisitExpr_
overrideprotected

◆ VisitExpr_() [4/34]

PrimExpr tvm::tirx::ExprMutator::VisitExpr_
overrideprotected

◆ VisitExpr_() [5/34]

PrimExpr tvm::tirx::StmtExprMutator::VisitExpr_ ( const BufferLoadNode op)
overrideprotected

◆ VisitExpr_() [6/34]

PrimExpr tvm::tirx::ExprMutator::VisitExpr_
overrideprotected

◆ VisitExpr_() [7/34]

PrimExpr tvm::tirx::ExprMutator::VisitExpr_
overrideprotected

◆ VisitExpr_() [8/34]

PrimExpr tvm::tirx::ExprMutator::VisitExpr_
overrideprotected

◆ VisitExpr_() [9/34]

PrimExpr tvm::tirx::ExprMutator::VisitExpr_
overrideprotected

◆ VisitExpr_() [10/34]

PrimExpr tvm::tirx::ExprMutator::VisitExpr_
overrideprotected

◆ VisitExpr_() [11/34]

PrimExpr tvm::tirx::ExprMutator::VisitExpr_
overrideprotected

◆ VisitExpr_() [12/34]

PrimExpr tvm::tirx::ExprMutator::VisitExpr_
overrideprotected

◆ VisitExpr_() [13/34]

PrimExpr tvm::tirx::ExprMutator::VisitExpr_
overrideprotected

◆ VisitExpr_() [14/34]

PrimExpr tvm::tirx::ExprMutator::VisitExpr_
overrideprotected

◆ VisitExpr_() [15/34]

PrimExpr tvm::tirx::ExprMutator::VisitExpr_
overrideprotected

◆ VisitExpr_() [16/34]

PrimExpr tvm::tirx::ExprMutator::VisitExpr_
overrideprotected

◆ VisitExpr_() [17/34]

PrimExpr tvm::tirx::ExprMutator::VisitExpr_
overrideprotected

◆ VisitExpr_() [18/34]

PrimExpr tvm::tirx::ExprMutator::VisitExpr_
overrideprotected

◆ VisitExpr_() [19/34]

PrimExpr tvm::tirx::ExprMutator::VisitExpr_
overrideprotected

◆ VisitExpr_() [20/34]

PrimExpr tvm::tirx::ExprMutator::VisitExpr_
overrideprotected

◆ VisitExpr_() [21/34]

PrimExpr tvm::tirx::ExprMutator::VisitExpr_
overrideprotected

◆ VisitExpr_() [22/34]

PrimExpr tvm::tirx::ExprMutator::VisitExpr_
overrideprotected

◆ VisitExpr_() [23/34]

PrimExpr tvm::tirx::ExprMutator::VisitExpr_
overrideprotected

◆ VisitExpr_() [24/34]

PrimExpr tvm::tirx::ExprMutator::VisitExpr_
overrideprotected

◆ VisitExpr_() [25/34]

PrimExpr tvm::tirx::ExprMutator::VisitExpr_
overrideprotected

◆ VisitExpr_() [26/34]

PrimExpr tvm::tirx::ExprMutator::VisitExpr_
overrideprotected

◆ VisitExpr_() [27/34]

PrimExpr tvm::tirx::ExprMutator::VisitExpr_
overrideprotected

◆ VisitExpr_() [28/34]

PrimExpr tvm::tirx::ExprMutator::VisitExpr_
overrideprotected

◆ VisitExpr_() [29/34]

PrimExpr tvm::tirx::ExprMutator::VisitExpr_
overrideprotected

◆ VisitExpr_() [30/34]

PrimExpr tvm::tirx::ExprMutator::VisitExpr_
overrideprotected

◆ VisitExpr_() [31/34]

PrimExpr tvm::tirx::ExprMutator::VisitExpr_
overrideprotected

◆ VisitExpr_() [32/34]

PrimExpr tvm::tirx::ExprMutator::VisitExpr_
overrideprotected

◆ VisitExpr_() [33/34]

PrimExpr tvm::tirx::ExprMutator::VisitExpr_
overrideprotected

◆ VisitExpr_() [34/34]

PrimExpr tvm::tirx::ExprMutator::VisitExpr_
overrideprotected

◆ VisitStmt()

Stmt tvm::tirx::StmtMutator::VisitStmt
inlineoverrideprotected

Internal mutator that everyone calls.

Note
To override mutate's behavior, override VisitExpr instead.
Parameters
stmtThe input stmt.
Returns
The mutated results.

The documentation for this class was generated from the following file: