tvm
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
tvm::tirx::StmtExprVisitorWithAnalyzer Class Reference

#include <stmt_functor_with_analyzer.h>

Inheritance diagram for tvm::tirx::StmtExprVisitorWithAnalyzer:
Collaboration diagram for tvm::tirx::StmtExprVisitorWithAnalyzer:

Public Member Functions

PrimExpr Simplify (const PrimExpr &expr)
 
ffi::Optional< VisitInterrupt > Visit_ (const ForNode *op)
 
ffi::Optional< VisitInterrupt > Visit_ (const BindNode *op)
 
ffi::Optional< VisitInterrupt > Visit_ (const IfNode *op)
 
ffi::Optional< VisitInterrupt > Visit_ (const RegionStmtNode *op)
 
ffi::Optional< VisitInterrupt > Visit_ (const AssertStmtNode *op)
 
ffi::Optional< VisitInterrupt > Visit_ (const CallNode *op)
 
ffi::Optional< VisitInterrupt > Visit_ (const prim::LetNode *op)
 
virtual ffi::Optional< VisitInterrupt > Visit_ (const BindNode *op)
 
virtual ffi::Optional< VisitInterrupt > Visit_ (const RegionStmtNode *op)
 
virtual ffi::Optional< VisitInterrupt > Visit_ (const IfNode *op)
 
virtual ffi::Optional< VisitInterrupt > Visit_ (const ForNode *op)
 
virtual ffi::Optional< VisitInterrupt > Visit_ (const WhileNode *op)
 
virtual ffi::Optional< VisitInterrupt > Visit_ (const ReturnNode *op)
 
virtual ffi::Optional< VisitInterrupt > Visit_ (const BreakNode *op)
 
virtual ffi::Optional< VisitInterrupt > Visit_ (const ContinueNode *op)
 
virtual ffi::Optional< VisitInterrupt > Visit_ (const TensorStoreNode *op)
 
virtual ffi::Optional< VisitInterrupt > Visit_ (const AssertStmtNode *op)
 
virtual ffi::Optional< VisitInterrupt > Visit_ (const SeqStmtNode *op)
 
virtual ffi::Optional< VisitInterrupt > Visit_ (const EvaluateNode *op)
 
ffi::Optional< VisitInterrupt > Visit_ (const VarNode *op) override
 
ffi::Optional< VisitInterrupt > Visit_ (const TensorLoadNode *op) override
 
ffi::Optional< VisitInterrupt > Visit_ (const OpaqueExprNode *op) override
 
ffi::Optional< VisitInterrupt > Visit_ (const TupleNode *op) override
 
ffi::Optional< VisitInterrupt > Visit_ (const TupleGetItemNode *op) override
 
ffi::Optional< VisitInterrupt > Visit_ (const CallNode *op) override
 
ffi::Optional< VisitInterrupt > Visit_ (const prim::LetNode *op) override
 
ffi::Optional< VisitInterrupt > Visit_ (const prim::RampNode *op) override
 
ffi::Optional< VisitInterrupt > Visit_ (const prim::BroadcastNode *op) override
 
ffi::Optional< VisitInterrupt > Visit_ (const prim::ShuffleNode *op) override
 
- Public Member Functions inherited from tvm::ExprVisitor
virtual ffi::Optional< VisitInterrupt > Visit_ (const TensorRegionNode *node)
 
virtual ffi::Optional< VisitInterrupt > Visit_ (const GlobalVarNode *node)
 
virtual ffi::Optional< VisitInterrupt > Visit_ (const GenericConstNode *node)
 
virtual ffi::Optional< VisitInterrupt > Visit_ (const DataTypeImmNode *node)
 
virtual ffi::Optional< VisitInterrupt > Visit_ (const IntImmNode *node)
 
virtual ffi::Optional< VisitInterrupt > Visit_ (const FloatImmNode *node)
 
virtual ffi::Optional< VisitInterrupt > Visit_ (const OpNode *node)
 
virtual ffi::Optional< VisitInterrupt > Visit_ (const StringImmNode *node)
 
virtual ffi::Optional< VisitInterrupt > Visit_ (const prim::CastNode *node)
 
virtual ffi::Optional< VisitInterrupt > Visit_ (const prim::AddNode *node)
 
virtual ffi::Optional< VisitInterrupt > Visit_ (const prim::LShiftNode *node)
 
virtual ffi::Optional< VisitInterrupt > Visit_ (const prim::RShiftNode *node)
 
virtual ffi::Optional< VisitInterrupt > Visit_ (const prim::BitwiseAndNode *node)
 
virtual ffi::Optional< VisitInterrupt > Visit_ (const prim::BitwiseOrNode *node)
 
virtual ffi::Optional< VisitInterrupt > Visit_ (const prim::BitwiseXorNode *node)
 
virtual ffi::Optional< VisitInterrupt > Visit_ (const prim::BitwiseNotNode *node)
 
virtual ffi::Optional< VisitInterrupt > Visit_ (const prim::SubNode *node)
 
virtual ffi::Optional< VisitInterrupt > Visit_ (const prim::MulNode *node)
 
virtual ffi::Optional< VisitInterrupt > Visit_ (const prim::DivNode *node)
 
virtual ffi::Optional< VisitInterrupt > Visit_ (const prim::ModNode *node)
 
virtual ffi::Optional< VisitInterrupt > Visit_ (const prim::FloorDivNode *node)
 
virtual ffi::Optional< VisitInterrupt > Visit_ (const prim::FloorModNode *node)
 
virtual ffi::Optional< VisitInterrupt > Visit_ (const prim::MinNode *node)
 
virtual ffi::Optional< VisitInterrupt > Visit_ (const prim::MaxNode *node)
 
virtual ffi::Optional< VisitInterrupt > Visit_ (const prim::EQNode *node)
 
virtual ffi::Optional< VisitInterrupt > Visit_ (const prim::NENode *node)
 
virtual ffi::Optional< VisitInterrupt > Visit_ (const prim::LTNode *node)
 
virtual ffi::Optional< VisitInterrupt > Visit_ (const prim::LENode *node)
 
virtual ffi::Optional< VisitInterrupt > Visit_ (const prim::GTNode *node)
 
virtual ffi::Optional< VisitInterrupt > Visit_ (const prim::GENode *node)
 
virtual ffi::Optional< VisitInterrupt > Visit_ (const prim::AndNode *node)
 
virtual ffi::Optional< VisitInterrupt > Visit_ (const prim::OrNode *node)
 
virtual ffi::Optional< VisitInterrupt > Visit_ (const prim::NotNode *node)
 
virtual ffi::Optional< VisitInterrupt > Visit_ (const prim::SelectNode *node)
 
virtual ffi::Optional< VisitInterrupt > Visit (ffi::AnyView value)
 Construct a visitor with the core expression hooks.
 
- Public Member Functions inherited from tvm::ObjectVisitor
 ObjectVisitor ()
 Construct a visitor using structural fallback for every value.
 
 ObjectVisitor (const ObjectVisitor &other)=delete
 
ObjectVisitor & operator= (const ObjectVisitor &other)=delete
 
Expected< ffi::Optional< VisitInterrupt > > VisitExpected (ffi::AnyView value) noexcept
 Adapt the virtual throwing entrypoint to the structural ABI.
 

Protected Member Functions

 StmtExprVisitorWithAnalyzer (const VTable *vtable)
 
PrimExpr ExtractRealCondition (PrimExpr condition) const
 Extract a constraint from a conditional statement.
 
- Protected Member Functions inherited from tvm::tirx::StmtExprVisitor
 StmtExprVisitor (const VTable *vtable)
 
- Protected Member Functions inherited from tvm::ExprVisitor
 ExprVisitor (const VTable *vtable)
 Construct a visitor with an extended native dispatch table.
 
- Protected Member Functions inherited from tvm::ObjectVisitor
 ObjectVisitor (const VTable *vtable)
 Construct a visitor with a finalized native dispatch table.
 

Static Protected Member Functions

static void InitVTable (VTable *vtable)
 
- Static Protected Member Functions inherited from tvm::tirx::StmtExprVisitor
static void InitVTable (VTable *vtable)
 
- Static Protected Member Functions inherited from tvm::ExprVisitor
static void InitVTable (VTable *vtable)
 Register core expression hooks in a fresh mutable table.
 
- Static Protected Member Functions inherited from tvm::ObjectVisitor
static void InitVTable (VTable *vtable)
 Initialize the base registrations in a fresh mutable table.
 
template<typename Self , typename Node >
static void SetDispatch (VTable *vtable)
 Register an exact node type in a fresh table initialized by its parent. Derived node types require separate registrations.
 

Protected Attributes

sym::Analyzer analyzer_
 internal analyzer field.
 
ScopeStack< WithGroup< sym::ConstraintContext > > constraint_scope_
 Scope stack for accumulated assert constraints.
 

Additional Inherited Members

- Protected Types inherited from tvm::ObjectVisitor
using VTable = ObjectFunctor< ffi::Optional< VisitInterrupt >(const ffi::Object *, ObjectVisitor *)>
 Exact native dispatch table with owning interrupt results.
 

Constructor & Destructor Documentation

◆ StmtExprVisitorWithAnalyzer()

tvm::tirx::StmtExprVisitorWithAnalyzer::StmtExprVisitorWithAnalyzer ( const VTable *  vtable)
inlineexplicitprotected

Member Function Documentation

◆ ExtractRealCondition()

PrimExpr tvm::tirx::StmtExprVisitorWithAnalyzer::ExtractRealCondition ( PrimExpr  condition) const
protected

Extract a constraint from a conditional statement.

Intended for preparing argument for use in With<ConstraintContext>.

◆ InitVTable()

static void tvm::tirx::StmtExprVisitorWithAnalyzer::InitVTable ( VTable *  vtable)
staticprotected

◆ Simplify()

PrimExpr tvm::tirx::StmtExprVisitorWithAnalyzer::Simplify ( const PrimExpr &  expr)
inline

◆ Visit_() [1/29]

virtual ffi::Optional< VisitInterrupt > tvm::tirx::StmtExprVisitor::Visit_ ( const AssertStmtNode *  op)
virtual

Reimplemented from tvm::tirx::StmtExprVisitor.

◆ Visit_() [2/29]

ffi::Optional< VisitInterrupt > tvm::tirx::StmtExprVisitorWithAnalyzer::Visit_ ( const AssertStmtNode *  op)
virtual

Reimplemented from tvm::tirx::StmtExprVisitor.

◆ Visit_() [3/29]

virtual ffi::Optional< VisitInterrupt > tvm::tirx::StmtExprVisitor::Visit_ ( const BindNode *  op)
virtual

Reimplemented from tvm::tirx::StmtExprVisitor.

◆ Visit_() [4/29]

ffi::Optional< VisitInterrupt > tvm::tirx::StmtExprVisitorWithAnalyzer::Visit_ ( const BindNode *  op)
virtual

Reimplemented from tvm::tirx::StmtExprVisitor.

◆ Visit_() [5/29]

virtual ffi::Optional< VisitInterrupt > tvm::tirx::StmtExprVisitor::Visit_ ( const BreakNode *  op)
virtual

Reimplemented from tvm::tirx::StmtExprVisitor.

◆ Visit_() [6/29]

ffi::Optional< VisitInterrupt > tvm::tirx::StmtExprVisitorWithAnalyzer::Visit_ ( const CallNode *  op)
virtual

Reimplemented from tvm::tirx::StmtExprVisitor.

◆ Visit_() [7/29]

ffi::Optional< VisitInterrupt > tvm::tirx::StmtExprVisitor::Visit_ ( const CallNode *  op)
overridevirtual

Reimplemented from tvm::tirx::StmtExprVisitor.

◆ Visit_() [8/29]

virtual ffi::Optional< VisitInterrupt > tvm::tirx::StmtExprVisitor::Visit_ ( const ContinueNode *  op)
virtual

Reimplemented from tvm::tirx::StmtExprVisitor.

◆ Visit_() [9/29]

virtual ffi::Optional< VisitInterrupt > tvm::tirx::StmtExprVisitor::Visit_ ( const EvaluateNode *  op)
virtual

Reimplemented from tvm::tirx::StmtExprVisitor.

◆ Visit_() [10/29]

virtual ffi::Optional< VisitInterrupt > tvm::tirx::StmtExprVisitor::Visit_ ( const ForNode *  op)
virtual

Reimplemented from tvm::tirx::StmtExprVisitor.

◆ Visit_() [11/29]

ffi::Optional< VisitInterrupt > tvm::tirx::StmtExprVisitorWithAnalyzer::Visit_ ( const ForNode *  op)
virtual

Reimplemented from tvm::tirx::StmtExprVisitor.

◆ Visit_() [12/29]

virtual ffi::Optional< VisitInterrupt > tvm::tirx::StmtExprVisitor::Visit_ ( const IfNode *  op)
virtual

Reimplemented from tvm::tirx::StmtExprVisitor.

◆ Visit_() [13/29]

ffi::Optional< VisitInterrupt > tvm::tirx::StmtExprVisitorWithAnalyzer::Visit_ ( const IfNode *  op)
virtual

Reimplemented from tvm::tirx::StmtExprVisitor.

◆ Visit_() [14/29]

ffi::Optional< VisitInterrupt > tvm::tirx::StmtExprVisitor::Visit_ ( const OpaqueExprNode *  op)
overridevirtual

Reimplemented from tvm::tirx::StmtExprVisitor.

◆ Visit_() [15/29]

ffi::Optional< VisitInterrupt > tvm::tirx::StmtExprVisitor::Visit_ ( const prim::BroadcastNode *  op)
overridevirtual

Reimplemented from tvm::tirx::StmtExprVisitor.

◆ Visit_() [16/29]

ffi::Optional< VisitInterrupt > tvm::tirx::StmtExprVisitorWithAnalyzer::Visit_ ( const prim::LetNode *  op)
virtual

Reimplemented from tvm::tirx::StmtExprVisitor.

◆ Visit_() [17/29]

ffi::Optional< VisitInterrupt > tvm::tirx::StmtExprVisitor::Visit_ ( const prim::LetNode *  op)
overridevirtual

Reimplemented from tvm::tirx::StmtExprVisitor.

◆ Visit_() [18/29]

ffi::Optional< VisitInterrupt > tvm::tirx::StmtExprVisitor::Visit_ ( const prim::RampNode *  op)
overridevirtual

Reimplemented from tvm::tirx::StmtExprVisitor.

◆ Visit_() [19/29]

ffi::Optional< VisitInterrupt > tvm::tirx::StmtExprVisitor::Visit_ ( const prim::ShuffleNode *  op)
overridevirtual

Reimplemented from tvm::tirx::StmtExprVisitor.

◆ Visit_() [20/29]

virtual ffi::Optional< VisitInterrupt > tvm::tirx::StmtExprVisitor::Visit_ ( const RegionStmtNode *  op)
virtual

Reimplemented from tvm::tirx::StmtExprVisitor.

◆ Visit_() [21/29]

ffi::Optional< VisitInterrupt > tvm::tirx::StmtExprVisitorWithAnalyzer::Visit_ ( const RegionStmtNode *  op)
virtual

Reimplemented from tvm::tirx::StmtExprVisitor.

◆ Visit_() [22/29]

virtual ffi::Optional< VisitInterrupt > tvm::tirx::StmtExprVisitor::Visit_ ( const ReturnNode *  op)
virtual

Reimplemented from tvm::tirx::StmtExprVisitor.

◆ Visit_() [23/29]

virtual ffi::Optional< VisitInterrupt > tvm::tirx::StmtExprVisitor::Visit_ ( const SeqStmtNode *  op)
virtual

Reimplemented from tvm::tirx::StmtExprVisitor.

◆ Visit_() [24/29]

ffi::Optional< VisitInterrupt > tvm::tirx::StmtExprVisitor::Visit_ ( const TensorLoadNode *  op)
overridevirtual

Reimplemented from tvm::tirx::StmtExprVisitor.

◆ Visit_() [25/29]

virtual ffi::Optional< VisitInterrupt > tvm::tirx::StmtExprVisitor::Visit_ ( const TensorStoreNode *  op)
virtual

Reimplemented from tvm::tirx::StmtExprVisitor.

◆ Visit_() [26/29]

ffi::Optional< VisitInterrupt > tvm::tirx::StmtExprVisitor::Visit_ ( const TupleGetItemNode *  op)
overridevirtual

Reimplemented from tvm::tirx::StmtExprVisitor.

◆ Visit_() [27/29]

ffi::Optional< VisitInterrupt > tvm::tirx::StmtExprVisitor::Visit_ ( const TupleNode *  op)
overridevirtual

Reimplemented from tvm::tirx::StmtExprVisitor.

◆ Visit_() [28/29]

ffi::Optional< VisitInterrupt > tvm::tirx::StmtExprVisitor::Visit_ ( const VarNode *  op)
overridevirtual

Reimplemented from tvm::tirx::StmtExprVisitor.

◆ Visit_() [29/29]

virtual ffi::Optional< VisitInterrupt > tvm::tirx::StmtExprVisitor::Visit_ ( const WhileNode *  op)
virtual

Reimplemented from tvm::tirx::StmtExprVisitor.

Member Data Documentation

◆ analyzer_

sym::Analyzer tvm::tirx::StmtExprVisitorWithAnalyzer::analyzer_
protected

internal analyzer field.

◆ constraint_scope_

ScopeStack<WithGroup<sym::ConstraintContext> > tvm::tirx::StmtExprVisitorWithAnalyzer::constraint_scope_
protected

Scope stack for accumulated assert constraints.


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