25#ifndef TVM_S_TIR_STMT_FUNCTOR_WITH_ANALYZER_H_
26#define TVM_S_TIR_STMT_FUNCTOR_WITH_ANALYZER_H_
40 virtual ffi::Optional<VisitInterrupt> Visit_(const
SBlockNode* op);
42 return s_tir::StmtExprVisitor::VisitBlockRealize(
this, op);
47 Parent::InitVTable(vtable);
48 SetDispatch<StmtExprVisitorWithAnalyzer, SBlockNode>(vtable);
49 SetDispatch<StmtExprVisitorWithAnalyzer, SBlockRealizeNode>(vtable);
57 using Parent::Mutate_;
61 :
Parent(analyzer, GlobalVTable()) {}
64 return s_tir::StmtExprMutator::MutateBlockRealize(
this, op, inplace_mode);
69 Parent::InitVTable(vtable);
70 SetDispatch<StmtExprMutatorWithAnalyzer, SBlockNode>(vtable);
71 SetDispatch<StmtExprMutatorWithAnalyzer, SBlockRealizeNode>(vtable);
74 static const VTable table = [] {
A dynamically dispatched functor on the type of the first argument.
Definition object_functor.h:85
A block is a basic schedule unit in TIR.
Definition stmt.h:112
A block realization node represents execution of the block at the binding values.
Definition stmt.h:188
Definition stmt_functor_with_analyzer.h:53
virtual UnchangedOr< Stmt > Mutate_(const SBlockRealizeNode *op, InplaceMode inplace_mode)
Definition stmt_functor_with_analyzer.h:63
static void InitVTable(VTable *vtable)
Definition stmt_functor_with_analyzer.h:68
static const VTable * GlobalVTable()
Definition stmt_functor_with_analyzer.h:73
StmtExprMutatorWithAnalyzer(sym::AnalyzerObj *analyzer)
Definition stmt_functor_with_analyzer.h:60
StmtExprMutatorWithAnalyzer(const sym::Analyzer &analyzer)
Definition stmt_functor_with_analyzer.h:58
virtual UnchangedOr< Stmt > Mutate_(const SBlockNode *op, InplaceMode inplace_mode)
Definition stmt_functor_with_analyzer.h:34
static void InitVTable(VTable *vtable)
Definition stmt_functor_with_analyzer.h:46
Analyzer that contains bunch of sub-analyzers.
Definition analyzer.h:715
Managed reference to AnalyzerObj.
Definition analyzer.h:916
IRMutator with an analyzer context.
Definition stmt_functor_with_analyzer.h:89
Definition stmt_functor_with_analyzer.h:43
An object that builds and maintains block scope and StmtSref mapping for Dependence analysis.
Definition attr.h:23
#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
Native traversal and statement dispatch for schedulable TIR.
Statement and expression functors with an analyzer context.