tvm
Loading...
Searching...
No Matches
Classes | Public Member Functions | List of all members
tvm::relax::ExprVisitor Class Reference

A simple visitor wrapper around ExprFunctor. Recursively visit the content. More...

#include <expr_functor.h>

Inheritance diagram for tvm::relax::ExprVisitor:
Collaboration diagram for tvm::relax::ExprVisitor:

Public Member Functions

void VisitExpr (const Expr &expr) override
 Generic dispatcher for Expr.
 
void VisitExpr_ (const GenericConstNode *op) override
 
void VisitExpr_ (const TupleNode *op) override
 
void VisitExpr_ (const VarNode *op) override
 
void VisitExpr_ (const DataflowVarNode *op) override
 
void VisitExpr_ (const ShapeExprNode *op) override
 
void VisitExpr_ (const ExternFuncNode *op) override
 
void VisitExpr_ (const GlobalVarNode *op) override
 
void VisitExpr_ (const FunctionNode *op) override
 
void VisitExpr_ (const CallNode *op) override
 
void VisitExpr_ (const TensorLoadNode *op) override
 
void VisitExpr_ (const tvm::IntImmNode *op) override
 
void VisitExpr_ (const tvm::FloatImmNode *op) override
 
void VisitExpr_ (const SeqExprNode *op) override
 
void VisitExpr_ (const IfExprNode *op) override
 
void VisitExpr_ (const OpNode *op) override
 
void VisitExpr_ (const TupleGetItemNode *op) override
 
void VisitExpr_ (const StringImmNode *op) override
 
void VisitExpr_ (const DataTypeImmNode *op) override
 
void VisitExpr_ (const prim::AddNode *op) override
 
void VisitExpr_ (const prim::LShiftNode *op) override
 
void VisitExpr_ (const prim::RShiftNode *op) override
 
void VisitExpr_ (const prim::BitwiseAndNode *op) override
 
void VisitExpr_ (const prim::BitwiseOrNode *op) override
 
void VisitExpr_ (const prim::BitwiseXorNode *op) override
 
void VisitExpr_ (const prim::BitwiseNotNode *op) override
 
void VisitExpr_ (const prim::SubNode *op) override
 
void VisitExpr_ (const prim::MulNode *op) override
 
void VisitExpr_ (const prim::DivNode *op) override
 
void VisitExpr_ (const prim::ModNode *op) override
 
void VisitExpr_ (const prim::FloorDivNode *op) override
 
void VisitExpr_ (const prim::FloorModNode *op) override
 
void VisitExpr_ (const prim::MinNode *op) override
 
void VisitExpr_ (const prim::MaxNode *op) override
 
void VisitExpr_ (const prim::EQNode *op) override
 
void VisitExpr_ (const prim::NENode *op) override
 
void VisitExpr_ (const prim::LTNode *op) override
 
void VisitExpr_ (const prim::LENode *op) override
 
void VisitExpr_ (const prim::GTNode *op) override
 
void VisitExpr_ (const prim::GENode *op) override
 
void VisitExpr_ (const prim::AndNode *op) override
 
void VisitExpr_ (const prim::OrNode *op) override
 
void VisitExpr_ (const prim::CastNode *op) override
 
void VisitExpr_ (const prim::NotNode *op) override
 
void VisitExpr_ (const prim::SelectNode *op) override
 
void VisitExpr_ (const prim::RampNode *op) override
 
void VisitExpr_ (const prim::BroadcastNode *op) override
 
void VisitExpr_ (const prim::ShuffleNode *op) override
 
void VisitExprFallback_ (const ExprNode *op) override
 
virtual void VisitBinding (const Binding &binding)
 Generic dispatcher for bindings.
 
virtual void VisitBinding_ (const VarBindingNode *binding)
 
virtual void VisitBinding_ (const MatchCastNode *binding)
 
virtual void VisitBinding_ (const VarBindingNode *binding, const GenericConstNode *val)
 
virtual void VisitBinding_ (const VarBindingNode *binding, const TupleNode *val)
 
virtual void VisitBinding_ (const VarBindingNode *binding, const VarNode *val)
 
virtual void VisitBinding_ (const VarBindingNode *binding, const DataflowVarNode *val)
 
virtual void VisitBinding_ (const VarBindingNode *binding, const ShapeExprNode *val)
 
virtual void VisitBinding_ (const VarBindingNode *binding, const ExternFuncNode *val)
 
virtual void VisitBinding_ (const VarBindingNode *binding, const GlobalVarNode *val)
 
virtual void VisitBinding_ (const VarBindingNode *binding, const FunctionNode *val)
 
virtual void VisitBinding_ (const VarBindingNode *binding, const CallNode *val)
 
virtual void VisitBinding_ (const VarBindingNode *binding, const SeqExprNode *val)
 
virtual void VisitBinding_ (const VarBindingNode *binding, const IfExprNode *val)
 
virtual void VisitBinding_ (const VarBindingNode *binding, const OpNode *val)
 
virtual void VisitBinding_ (const VarBindingNode *binding, const TupleGetItemNode *val)
 
virtual void VisitBinding_ (const VarBindingNode *binding, const ExprNode *val)
 
virtual void VisitBinding_ (const VarBindingNode *binding, const StringImmNode *val)
 
virtual void VisitBinding_ (const VarBindingNode *binding, const DataTypeImmNode *val)
 
virtual void VisitBindingBlock (const BindingBlock &block)
 Generic dispatcher for binding blocks.
 
virtual void VisitBindingBlock_ (const BindingBlockNode *block)
 
virtual void VisitBindingBlock_ (const DataflowBlockNode *block)
 
virtual void VisitVarDef (const Var &var)
 Generic dispatcher for visiting the var definition site.
 
virtual void VisitExprDepTypeField (const Type &ty)
 Visit ty may recursively contain Expr/PrimExpr.
 
virtual void VisitVarDef_ (const VarNode *var)
 
virtual void VisitVarDef_ (const DataflowVarNode *var)
 
virtual void VisitLoc (const Location &loc)
 
virtual void VisitTypePrimExprField (const PrimExpr &expr)
 

Detailed Description

A simple visitor wrapper around ExprFunctor. Recursively visit the content.

Member Function Documentation

◆ VisitBinding()

virtual void tvm::relax::ExprVisitor::VisitBinding ( const Binding &  binding)
virtual

Generic dispatcher for bindings.

Parameters
bindingThe binding to be visited.

◆ VisitBinding_() [1/18]

virtual void tvm::relax::ExprVisitor::VisitBinding_ ( const MatchCastNode *  binding)
virtual

◆ VisitBinding_() [2/18]

virtual void tvm::relax::ExprVisitor::VisitBinding_ ( const VarBindingNode *  binding)
virtual

◆ VisitBinding_() [3/18]

virtual void tvm::relax::ExprVisitor::VisitBinding_ ( const VarBindingNode *  binding,
const CallNode *  val 
)
virtual

◆ VisitBinding_() [4/18]

virtual void tvm::relax::ExprVisitor::VisitBinding_ ( const VarBindingNode *  binding,
const DataflowVarNode *  val 
)
virtual

◆ VisitBinding_() [5/18]

virtual void tvm::relax::ExprVisitor::VisitBinding_ ( const VarBindingNode *  binding,
const DataTypeImmNode *  val 
)
virtual

◆ VisitBinding_() [6/18]

virtual void tvm::relax::ExprVisitor::VisitBinding_ ( const VarBindingNode *  binding,
const ExprNode *  val 
)
virtual

◆ VisitBinding_() [7/18]

virtual void tvm::relax::ExprVisitor::VisitBinding_ ( const VarBindingNode *  binding,
const ExternFuncNode *  val 
)
virtual

◆ VisitBinding_() [8/18]

virtual void tvm::relax::ExprVisitor::VisitBinding_ ( const VarBindingNode *  binding,
const FunctionNode *  val 
)
virtual

◆ VisitBinding_() [9/18]

virtual void tvm::relax::ExprVisitor::VisitBinding_ ( const VarBindingNode *  binding,
const GenericConstNode *  val 
)
virtual

◆ VisitBinding_() [10/18]

virtual void tvm::relax::ExprVisitor::VisitBinding_ ( const VarBindingNode *  binding,
const GlobalVarNode *  val 
)
virtual

◆ VisitBinding_() [11/18]

virtual void tvm::relax::ExprVisitor::VisitBinding_ ( const VarBindingNode *  binding,
const IfExprNode *  val 
)
virtual

◆ VisitBinding_() [12/18]

virtual void tvm::relax::ExprVisitor::VisitBinding_ ( const VarBindingNode *  binding,
const OpNode *  val 
)
virtual

◆ VisitBinding_() [13/18]

virtual void tvm::relax::ExprVisitor::VisitBinding_ ( const VarBindingNode *  binding,
const SeqExprNode *  val 
)
virtual

◆ VisitBinding_() [14/18]

virtual void tvm::relax::ExprVisitor::VisitBinding_ ( const VarBindingNode *  binding,
const ShapeExprNode *  val 
)
virtual

◆ VisitBinding_() [15/18]

virtual void tvm::relax::ExprVisitor::VisitBinding_ ( const VarBindingNode *  binding,
const StringImmNode *  val 
)
virtual

◆ VisitBinding_() [16/18]

virtual void tvm::relax::ExprVisitor::VisitBinding_ ( const VarBindingNode *  binding,
const TupleGetItemNode *  val 
)
virtual

◆ VisitBinding_() [17/18]

virtual void tvm::relax::ExprVisitor::VisitBinding_ ( const VarBindingNode *  binding,
const TupleNode *  val 
)
virtual

◆ VisitBinding_() [18/18]

virtual void tvm::relax::ExprVisitor::VisitBinding_ ( const VarBindingNode *  binding,
const VarNode *  val 
)
virtual

◆ VisitBindingBlock()

virtual void tvm::relax::ExprVisitor::VisitBindingBlock ( const BindingBlock &  block)
virtual

Generic dispatcher for binding blocks.

Parameters
blockThe binding block to be visited.

◆ VisitBindingBlock_() [1/2]

virtual void tvm::relax::ExprVisitor::VisitBindingBlock_ ( const BindingBlockNode *  block)
virtual

◆ VisitBindingBlock_() [2/2]

virtual void tvm::relax::ExprVisitor::VisitBindingBlock_ ( const DataflowBlockNode *  block)
virtual

◆ VisitExpr()

void tvm::relax::ExprVisitor::VisitExpr ( const Expr &  expr)
override

Generic dispatcher for Expr.

Parameters
exprThe expr to be visited.

◆ VisitExpr_() [1/47]

void tvm::relax::ExprVisitor::VisitExpr_ ( const CallNode *  op)
override

◆ VisitExpr_() [2/47]

void tvm::relax::ExprVisitor::VisitExpr_ ( const DataflowVarNode *  op)
override

◆ VisitExpr_() [3/47]

void tvm::relax::ExprVisitor::VisitExpr_ ( const DataTypeImmNode *  op)
override

◆ VisitExpr_() [4/47]

void tvm::relax::ExprVisitor::VisitExpr_ ( const ExternFuncNode *  op)
override

◆ VisitExpr_() [5/47]

void tvm::relax::ExprVisitor::VisitExpr_ ( const FunctionNode *  op)
override

◆ VisitExpr_() [6/47]

void tvm::relax::ExprVisitor::VisitExpr_ ( const GenericConstNode *  op)
override

◆ VisitExpr_() [7/47]

void tvm::relax::ExprVisitor::VisitExpr_ ( const GlobalVarNode *  op)
override

◆ VisitExpr_() [8/47]

void tvm::relax::ExprVisitor::VisitExpr_ ( const IfExprNode *  op)
override

◆ VisitExpr_() [9/47]

void tvm::relax::ExprVisitor::VisitExpr_ ( const OpNode *  op)
override

◆ VisitExpr_() [10/47]

void tvm::relax::ExprVisitor::VisitExpr_ ( const prim::AddNode *  op)
override

◆ VisitExpr_() [11/47]

void tvm::relax::ExprVisitor::VisitExpr_ ( const prim::AndNode *  op)
override

◆ VisitExpr_() [12/47]

void tvm::relax::ExprVisitor::VisitExpr_ ( const prim::BitwiseAndNode *  op)
override

◆ VisitExpr_() [13/47]

void tvm::relax::ExprVisitor::VisitExpr_ ( const prim::BitwiseNotNode *  op)
override

◆ VisitExpr_() [14/47]

void tvm::relax::ExprVisitor::VisitExpr_ ( const prim::BitwiseOrNode *  op)
override

◆ VisitExpr_() [15/47]

void tvm::relax::ExprVisitor::VisitExpr_ ( const prim::BitwiseXorNode *  op)
override

◆ VisitExpr_() [16/47]

void tvm::relax::ExprVisitor::VisitExpr_ ( const prim::BroadcastNode *  op)
override

◆ VisitExpr_() [17/47]

void tvm::relax::ExprVisitor::VisitExpr_ ( const prim::CastNode *  op)
override

◆ VisitExpr_() [18/47]

void tvm::relax::ExprVisitor::VisitExpr_ ( const prim::DivNode *  op)
override

◆ VisitExpr_() [19/47]

void tvm::relax::ExprVisitor::VisitExpr_ ( const prim::EQNode *  op)
override

◆ VisitExpr_() [20/47]

void tvm::relax::ExprVisitor::VisitExpr_ ( const prim::FloorDivNode *  op)
override

◆ VisitExpr_() [21/47]

void tvm::relax::ExprVisitor::VisitExpr_ ( const prim::FloorModNode *  op)
override

◆ VisitExpr_() [22/47]

void tvm::relax::ExprVisitor::VisitExpr_ ( const prim::GENode *  op)
override

◆ VisitExpr_() [23/47]

void tvm::relax::ExprVisitor::VisitExpr_ ( const prim::GTNode *  op)
override

◆ VisitExpr_() [24/47]

void tvm::relax::ExprVisitor::VisitExpr_ ( const prim::LENode *  op)
override

◆ VisitExpr_() [25/47]

void tvm::relax::ExprVisitor::VisitExpr_ ( const prim::LShiftNode *  op)
override

◆ VisitExpr_() [26/47]

void tvm::relax::ExprVisitor::VisitExpr_ ( const prim::LTNode *  op)
override

◆ VisitExpr_() [27/47]

void tvm::relax::ExprVisitor::VisitExpr_ ( const prim::MaxNode *  op)
override

◆ VisitExpr_() [28/47]

void tvm::relax::ExprVisitor::VisitExpr_ ( const prim::MinNode *  op)
override

◆ VisitExpr_() [29/47]

void tvm::relax::ExprVisitor::VisitExpr_ ( const prim::ModNode *  op)
override

◆ VisitExpr_() [30/47]

void tvm::relax::ExprVisitor::VisitExpr_ ( const prim::MulNode *  op)
override

◆ VisitExpr_() [31/47]

void tvm::relax::ExprVisitor::VisitExpr_ ( const prim::NENode *  op)
override

◆ VisitExpr_() [32/47]

void tvm::relax::ExprVisitor::VisitExpr_ ( const prim::NotNode *  op)
override

◆ VisitExpr_() [33/47]

void tvm::relax::ExprVisitor::VisitExpr_ ( const prim::OrNode *  op)
override

◆ VisitExpr_() [34/47]

void tvm::relax::ExprVisitor::VisitExpr_ ( const prim::RampNode *  op)
override

◆ VisitExpr_() [35/47]

void tvm::relax::ExprVisitor::VisitExpr_ ( const prim::RShiftNode *  op)
override

◆ VisitExpr_() [36/47]

void tvm::relax::ExprVisitor::VisitExpr_ ( const prim::SelectNode *  op)
override

◆ VisitExpr_() [37/47]

void tvm::relax::ExprVisitor::VisitExpr_ ( const prim::ShuffleNode *  op)
override

◆ VisitExpr_() [38/47]

void tvm::relax::ExprVisitor::VisitExpr_ ( const prim::SubNode *  op)
override

◆ VisitExpr_() [39/47]

void tvm::relax::ExprVisitor::VisitExpr_ ( const SeqExprNode *  op)
override

◆ VisitExpr_() [40/47]

void tvm::relax::ExprVisitor::VisitExpr_ ( const ShapeExprNode *  op)
override

◆ VisitExpr_() [41/47]

void tvm::relax::ExprVisitor::VisitExpr_ ( const StringImmNode *  op)
override

◆ VisitExpr_() [42/47]

void tvm::relax::ExprVisitor::VisitExpr_ ( const TensorLoadNode *  op)
override

◆ VisitExpr_() [43/47]

void tvm::relax::ExprVisitor::VisitExpr_ ( const TupleGetItemNode *  op)
override

◆ VisitExpr_() [44/47]

void tvm::relax::ExprVisitor::VisitExpr_ ( const TupleNode *  op)
override

◆ VisitExpr_() [45/47]

void tvm::relax::ExprVisitor::VisitExpr_ ( const tvm::FloatImmNode *  op)
override

◆ VisitExpr_() [46/47]

void tvm::relax::ExprVisitor::VisitExpr_ ( const tvm::IntImmNode *  op)
override

◆ VisitExpr_() [47/47]

void tvm::relax::ExprVisitor::VisitExpr_ ( const VarNode *  op)
override

◆ VisitExprDepTypeField()

virtual void tvm::relax::ExprVisitor::VisitExprDepTypeField ( const Type &  ty)
virtual

Visit ty may recursively contain Expr/PrimExpr.

By default, this function recurse into type such as TensorType and ShapeType and call VisitExpr/VisitTypePrimExprField accordingly. It does not recurse into FunctionType as it does not contain Expr defined in the current scope.

Pass writers can overload this function to change to other behaviors. For example, if we are not interested in Expr in Type, we can override this function by a no-op.

Parameters
tyInput type field.

◆ VisitExprFallback_()

void tvm::relax::ExprVisitor::VisitExprFallback_ ( const ExprNode *  op)
override

◆ VisitLoc()

virtual void tvm::relax::ExprVisitor::VisitLoc ( const Location &  loc)
virtual

◆ VisitTypePrimExprField()

virtual void tvm::relax::ExprVisitor::VisitTypePrimExprField ( const PrimExpr &  expr)
virtual

◆ VisitVarDef()

virtual void tvm::relax::ExprVisitor::VisitVarDef ( const Var &  var)
virtual

Generic dispatcher for visiting the var definition site.

Parameters
varThe var to be visited.
Note
VisitExpr_(const VarNode*) will only visit the usage site of an Var

◆ VisitVarDef_() [1/2]

virtual void tvm::relax::ExprVisitor::VisitVarDef_ ( const DataflowVarNode *  var)
virtual

◆ VisitVarDef_() [2/2]

virtual void tvm::relax::ExprVisitor::VisitVarDef_ ( const VarNode *  var)
virtual

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