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

Native visitor for TIRx statements and their expression operands. More...

#include <stmt_functor.h>

Inheritance diagram for tvm::tirx::StmtExprVisitor:
Collaboration diagram for tvm::tirx::StmtExprVisitor:

Public Member Functions

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

 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::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.
 

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.
 

Detailed Description

Native visitor for TIRx statements and their expression operands.

Inherits core expression dispatch and preserves TIRx traversal order and tensor definition/use boundaries. Allocate visitors with ffi::make_object; hooks return the first interrupt or throw on failure. To preserve thrown ffi::Error subclasses, keep child traversal native: Visit(array) crosses structural callbacks that may erase the C++ subtype.

Native hooks match exact types. Unregistered OpaqueExprNode subclasses use structural traversal; leaf types register non-descending structural hooks.

Constructor & Destructor Documentation

◆ StmtExprVisitor()

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

Member Function Documentation

◆ InitVTable()

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

◆ Visit_() [1/22]

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

◆ Visit_() [2/22]

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

◆ Visit_() [3/22]

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

◆ Visit_() [4/22]

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

◆ Visit_() [5/22]

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

◆ Visit_() [6/22]

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

◆ Visit_() [7/22]

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

◆ Visit_() [8/22]

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

◆ Visit_() [9/22]

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

Reimplemented from tvm::ExprVisitor.

Reimplemented in tvm::tirx::StmtExprVisitorWithAnalyzer.

◆ Visit_() [10/22]

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

Reimplemented from tvm::ExprVisitor.

Reimplemented in tvm::tirx::StmtExprVisitorWithAnalyzer.

◆ Visit_() [11/22]

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

◆ Visit_() [12/22]

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

Reimplemented from tvm::ExprVisitor.

Reimplemented in tvm::tirx::StmtExprVisitorWithAnalyzer.

◆ Visit_() [13/22]

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

Reimplemented from tvm::ExprVisitor.

Reimplemented in tvm::tirx::StmtExprVisitorWithAnalyzer.

◆ Visit_() [14/22]

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

◆ Visit_() [15/22]

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

◆ Visit_() [16/22]

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

◆ Visit_() [17/22]

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

Reimplemented from tvm::ExprVisitor.

Reimplemented in tvm::tirx::StmtExprVisitorWithAnalyzer.

◆ Visit_() [18/22]

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

◆ Visit_() [19/22]

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

Reimplemented from tvm::ExprVisitor.

Reimplemented in tvm::tirx::StmtExprVisitorWithAnalyzer.

◆ Visit_() [20/22]

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

Reimplemented from tvm::ExprVisitor.

Reimplemented in tvm::tirx::StmtExprVisitorWithAnalyzer.

◆ Visit_() [21/22]

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

Reimplemented from tvm::ExprVisitor.

Reimplemented in tvm::tirx::StmtExprVisitorWithAnalyzer.

◆ Visit_() [22/22]

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

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