My Project
Public Member Functions | Protected Member Functions | List of all members
mlir::SDBMVisitor< Derived, Result > Class Template Reference

#include <SDBMExpr.h>

Public Member Functions

Result visit (SDBMExpr expr)
 Visit the given SDBM expression, dispatching to kind-specific functions. More...
 
void walkPreorder (SDBMExpr expr)
 
void walkPostorder (SDBMExpr expr)
 

Protected Member Functions

void visitSum (SDBMSumExpr)
 Default visitors do nothing. More...
 
void visitDiff (SDBMDiffExpr)
 
void visitStripe (SDBMStripeExpr)
 
void visitDim (SDBMDimExpr)
 
void visitSymbol (SDBMSymbolExpr)
 
void visitNeg (SDBMNegExpr)
 
void visitConstant (SDBMConstantExpr)
 
Result visitDirect (SDBMDirectExpr expr)
 
Result visitTerm (SDBMTermExpr expr)
 
Result visitInput (SDBMInputExpr expr)
 
Result visitVarying (SDBMVaryingExpr expr)
 
template<bool isPreorder>
void walk (SDBMExpr expr)
 

Detailed Description

template<typename Derived, typename Result = void>
class mlir::SDBMVisitor< Derived, Result >

A visitor class for SDBM expressions. Calls the kind-specific function depending on the kind of expression it visits.

Member Function Documentation

◆ visit()

template<typename Derived , typename Result = void>
Result mlir::SDBMVisitor< Derived, Result >::visit ( SDBMExpr  expr)
inline

Visit the given SDBM expression, dispatching to kind-specific functions.

◆ visitConstant()

template<typename Derived , typename Result = void>
void mlir::SDBMVisitor< Derived, Result >::visitConstant ( SDBMConstantExpr  )
inlineprotected

◆ visitDiff()

template<typename Derived , typename Result = void>
void mlir::SDBMVisitor< Derived, Result >::visitDiff ( SDBMDiffExpr  )
inlineprotected

◆ visitDim()

template<typename Derived , typename Result = void>
void mlir::SDBMVisitor< Derived, Result >::visitDim ( SDBMDimExpr  )
inlineprotected

◆ visitDirect()

template<typename Derived , typename Result = void>
Result mlir::SDBMVisitor< Derived, Result >::visitDirect ( SDBMDirectExpr  expr)
inlineprotected

Default implementation of visitDirect dispatches to the dedicated for sums or delegates to visitTerm for the other expression kinds. Concrete visitors can overload it.

◆ visitInput()

template<typename Derived , typename Result = void>
Result mlir::SDBMVisitor< Derived, Result >::visitInput ( SDBMInputExpr  expr)
inlineprotected

Default implementation of visitInput dispatches to the special functions for dimensions or symbols. Concrete visitors can override it to visit all variables instead.

◆ visitNeg()

template<typename Derived , typename Result = void>
void mlir::SDBMVisitor< Derived, Result >::visitNeg ( SDBMNegExpr  )
inlineprotected

◆ visitStripe()

template<typename Derived , typename Result = void>
void mlir::SDBMVisitor< Derived, Result >::visitStripe ( SDBMStripeExpr  )
inlineprotected

◆ visitSum()

template<typename Derived , typename Result = void>
void mlir::SDBMVisitor< Derived, Result >::visitSum ( SDBMSumExpr  )
inlineprotected

Default visitors do nothing.

◆ visitSymbol()

template<typename Derived , typename Result = void>
void mlir::SDBMVisitor< Derived, Result >::visitSymbol ( SDBMSymbolExpr  )
inlineprotected

◆ visitTerm()

template<typename Derived , typename Result = void>
Result mlir::SDBMVisitor< Derived, Result >::visitTerm ( SDBMTermExpr  expr)
inlineprotected

Default implementation of visitTerm dispatches to the special functions for stripes and other variables. Concrete visitors can override it.

◆ visitVarying()

template<typename Derived , typename Result = void>
Result mlir::SDBMVisitor< Derived, Result >::visitVarying ( SDBMVaryingExpr  expr)
inlineprotected

Default implementation of visitVarying dispatches to the special functions for variables and negations thereof. Concrete visitors can override it to visit all variables and negations instead.

◆ walk()

template<typename Derived , typename Result = void>
template<bool isPreorder>
void mlir::SDBMVisitor< Derived, Result >::walk ( SDBMExpr  expr)
inlineprotected

◆ walkPostorder()

template<typename Derived , typename Result = void>
void mlir::SDBMVisitor< Derived, Result >::walkPostorder ( SDBMExpr  expr)
inline

Traverse the SDBM expression tree calling visit on each node in depth-first postorder.

◆ walkPreorder()

template<typename Derived , typename Result = void>
void mlir::SDBMVisitor< Derived, Result >::walkPreorder ( SDBMExpr  expr)
inline

Traverse the SDBM expression tree calling visit on each node in depth-first preorder.


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