Class StmtExprVisitorWithConstraintContext#

Inheritance Relationships#

Base Type#

Class Documentation#

class StmtExprVisitorWithConstraintContext : public tvm::tirx::ObjectVisitorWithConstraintContext#

Native virtual node hooks using one constraint-aware structural visitor. Allocate with ffi::make_object<Derived>(). Override Visit_ for a known node or Visit for general dispatch. Defaults share matching native expression bodies and delegate scope-sensitive nodes to structural constraint hooks. A hook owns its descent; calling the qualified parent hook runs it once with the same context. Unknown types use structural fallback, which can reach specialized descendants.

Public Functions

inline StmtExprVisitorWithConstraintContext()#
virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const LambdaExprObj *node)#

Default constraint-aware descent; override to customize LambdaExprObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const OpaqueExprObj *node)#

Default constraint-aware descent; override to customize OpaqueExprObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const TupleObj *node)#

Default constraint-aware descent; override to customize TupleObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const TupleGetItemObj *node)#

Default constraint-aware descent; override to customize TupleGetItemObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const TensorLoadObj *node)#

Default constraint-aware descent; override to customize TensorLoadObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const TensorRegionObj *node)#

Default constraint-aware descent; override to customize TensorRegionObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const VarObj *node)#

Default constraint-aware descent; override to customize VarObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const GlobalVarObj *node)#

Default constraint-aware descent; override to customize GlobalVarObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const CallObj *node)#

Default constraint-aware descent; override to customize CallObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const GenericConstObj *node)#

Default constraint-aware descent; override to customize GenericConstObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const DataTypeImmObj *node)#

Default constraint-aware descent; override to customize DataTypeImmObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const IntImmObj *node)#

Default constraint-aware descent; override to customize IntImmObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const FloatImmObj *node)#

Default constraint-aware descent; override to customize FloatImmObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const OpObj *node)#

Default constraint-aware descent; override to customize OpObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const StringImmObj *node)#

Default constraint-aware descent; override to customize StringImmObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const prim::CastObj *node)#

Default constraint-aware descent; override to customize prim::CastObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const prim::AddObj *node)#

Default constraint-aware descent; override to customize prim::AddObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const prim::LShiftObj *node)#

Default constraint-aware descent; override to customize prim::LShiftObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const prim::RShiftObj *node)#

Default constraint-aware descent; override to customize prim::RShiftObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const prim::BitwiseAndObj *node)#

Default constraint-aware descent; override to customize prim::BitwiseAndObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const prim::BitwiseOrObj *node)#

Default constraint-aware descent; override to customize prim::BitwiseOrObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const prim::BitwiseXorObj *node)#

Default constraint-aware descent; override to customize prim::BitwiseXorObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const prim::BitwiseNotObj *node)#

Default constraint-aware descent; override to customize prim::BitwiseNotObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const prim::SubObj *node)#

Default constraint-aware descent; override to customize prim::SubObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const prim::MulObj *node)#

Default constraint-aware descent; override to customize prim::MulObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const prim::DivObj *node)#

Default constraint-aware descent; override to customize prim::DivObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const prim::ModObj *node)#

Default constraint-aware descent; override to customize prim::ModObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const prim::FloorDivObj *node)#

Default constraint-aware descent; override to customize prim::FloorDivObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const prim::FloorModObj *node)#

Default constraint-aware descent; override to customize prim::FloorModObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const prim::MinObj *node)#

Default constraint-aware descent; override to customize prim::MinObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const prim::MaxObj *node)#

Default constraint-aware descent; override to customize prim::MaxObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const prim::EQObj *node)#

Default constraint-aware descent; override to customize prim::EQObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const prim::NEObj *node)#

Default constraint-aware descent; override to customize prim::NEObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const prim::LTObj *node)#

Default constraint-aware descent; override to customize prim::LTObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const prim::LEObj *node)#

Default constraint-aware descent; override to customize prim::LEObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const prim::GTObj *node)#

Default constraint-aware descent; override to customize prim::GTObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const prim::GEObj *node)#

Default constraint-aware descent; override to customize prim::GEObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const prim::AndObj *node)#

Default constraint-aware descent; override to customize prim::AndObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const prim::OrObj *node)#

Default constraint-aware descent; override to customize prim::OrObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const prim::NotObj *node)#

Default constraint-aware descent; override to customize prim::NotObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const prim::SelectObj *node)#

Default constraint-aware descent; override to customize prim::SelectObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const prim::LetObj *node)#

Default constraint-aware descent; override to customize prim::LetObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const prim::RampObj *node)#

Default constraint-aware descent; override to customize prim::RampObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const prim::BroadcastObj *node)#

Default constraint-aware descent; override to customize prim::BroadcastObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const prim::ShuffleObj *node)#

Default constraint-aware descent; override to customize prim::ShuffleObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const BindObj *node)#

Default constraint-aware descent; override to customize BindObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const RegionStmtObj *node)#

Default constraint-aware descent; override to customize RegionStmtObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const IfObj *node)#

Default constraint-aware descent; override to customize IfObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const ForObj *node)#

Default constraint-aware descent; override to customize ForObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const WhileObj *node)#

Default constraint-aware descent; override to customize WhileObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const ReturnObj *node)#

Default constraint-aware descent; override to customize ReturnObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const BreakObj *node)#

Default constraint-aware descent; override to customize BreakObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const ContinueObj *node)#

Default constraint-aware descent; override to customize ContinueObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const TensorStoreObj *node)#

Default constraint-aware descent; override to customize TensorStoreObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const AssertStmtObj *node)#

Default constraint-aware descent; override to customize AssertStmtObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const SeqStmtObj *node)#

Default constraint-aware descent; override to customize SeqStmtObj.

virtual ffi::Optional<ffi::VisitInterrupt> Visit_(const EvaluateObj *node)#

Default constraint-aware descent; override to customize EvaluateObj.

Protected Functions

inline explicit StmtExprVisitorWithConstraintContext(const VTable *table)#

Construct with a finalized table extended by a native subclass.

Protected Static Functions

static void InitVTable(VTable *table)#