CIRCT  20.0.0git
Public Member Functions | List of all members
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs > Class Template Reference

This helps visit SMT nodes. More...

#include <SMTVisitors.h>

Public Member Functions

ResultType dispatchSMTOpVisitor (Operation *op, ExtraArgs... args)
 
ResultType visitInvalidSMTOp (Operation *op, ExtraArgs... args)
 This callback is invoked on any non-expression operations. More...
 
ResultType visitUnhandledSMTOp (Operation *op, ExtraArgs... args)
 This callback is invoked on any SMT operations that are not handled by the concrete visitor. More...
 
 HANDLE (BoolConstantOp, Unhandled)
 
 HANDLE (IntConstantOp, Unhandled)
 
 HANDLE (BVConstantOp, Unhandled)
 
 HANDLE (BVNegOp, Unhandled)
 
 HANDLE (BVAddOp, Unhandled)
 
 HANDLE (BVMulOp, Unhandled)
 
 HANDLE (BVURemOp, Unhandled)
 
 HANDLE (BVSRemOp, Unhandled)
 
 HANDLE (BVSModOp, Unhandled)
 
 HANDLE (BVShlOp, Unhandled)
 
 HANDLE (BVLShrOp, Unhandled)
 
 HANDLE (BVAShrOp, Unhandled)
 
 HANDLE (BVUDivOp, Unhandled)
 
 HANDLE (BVSDivOp, Unhandled)
 
 HANDLE (BVNotOp, Unhandled)
 
 HANDLE (BVAndOp, Unhandled)
 
 HANDLE (BVOrOp, Unhandled)
 
 HANDLE (BVXOrOp, Unhandled)
 
 HANDLE (ConcatOp, Unhandled)
 
 HANDLE (ExtractOp, Unhandled)
 
 HANDLE (RepeatOp, Unhandled)
 
 HANDLE (BVCmpOp, Unhandled)
 
 HANDLE (IntAddOp, Unhandled)
 
 HANDLE (IntMulOp, Unhandled)
 
 HANDLE (IntSubOp, Unhandled)
 
 HANDLE (IntDivOp, Unhandled)
 
 HANDLE (IntModOp, Unhandled)
 
 HANDLE (IntCmpOp, Unhandled)
 
 HANDLE (EqOp, Unhandled)
 
 HANDLE (DistinctOp, Unhandled)
 
 HANDLE (IteOp, Unhandled)
 
 HANDLE (DeclareFunOp, Unhandled)
 
 HANDLE (ApplyFuncOp, Unhandled)
 
 HANDLE (SolverOp, Unhandled)
 
 HANDLE (AssertOp, Unhandled)
 
 HANDLE (ResetOp, Unhandled)
 
 HANDLE (PushOp, Unhandled)
 
 HANDLE (PopOp, Unhandled)
 
 HANDLE (CheckOp, Unhandled)
 
 HANDLE (NotOp, Unhandled)
 
 HANDLE (AndOp, Unhandled)
 
 HANDLE (OrOp, Unhandled)
 
 HANDLE (XOrOp, Unhandled)
 
 HANDLE (ImpliesOp, Unhandled)
 
 HANDLE (ArrayStoreOp, Unhandled)
 
 HANDLE (ArraySelectOp, Unhandled)
 
 HANDLE (ArrayBroadcastOp, Unhandled)
 
 HANDLE (ForallOp, Unhandled)
 
 HANDLE (ExistsOp, Unhandled)
 
 HANDLE (YieldOp, Unhandled)
 

Detailed Description

template<typename ConcreteType, typename ResultType = void, typename... ExtraArgs>
class circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >

This helps visit SMT nodes.

Definition at line 25 of file SMTVisitors.h.

Member Function Documentation

◆ dispatchSMTOpVisitor()

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
ResultType circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::dispatchSMTOpVisitor ( Operation *  op,
ExtraArgs...  args 
)
inline

Definition at line 27 of file SMTVisitors.h.

◆ HANDLE() [1/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( AndOp  ,
Unhandled   
)

◆ HANDLE() [2/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( ApplyFuncOp  ,
Unhandled   
)

◆ HANDLE() [3/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( ArrayBroadcastOp  ,
Unhandled   
)

◆ HANDLE() [4/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( ArraySelectOp  ,
Unhandled   
)

◆ HANDLE() [5/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( ArrayStoreOp  ,
Unhandled   
)

◆ HANDLE() [6/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( AssertOp  ,
Unhandled   
)

◆ HANDLE() [7/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( BoolConstantOp  ,
Unhandled   
)

◆ HANDLE() [8/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( BVAddOp  ,
Unhandled   
)

◆ HANDLE() [9/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( BVAndOp  ,
Unhandled   
)

◆ HANDLE() [10/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( BVAShrOp  ,
Unhandled   
)

◆ HANDLE() [11/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( BVCmpOp  ,
Unhandled   
)

◆ HANDLE() [12/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( BVConstantOp  ,
Unhandled   
)

◆ HANDLE() [13/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( BVLShrOp  ,
Unhandled   
)

◆ HANDLE() [14/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( BVMulOp  ,
Unhandled   
)

◆ HANDLE() [15/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( BVNegOp  ,
Unhandled   
)

◆ HANDLE() [16/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( BVNotOp  ,
Unhandled   
)

◆ HANDLE() [17/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( BVOrOp  ,
Unhandled   
)

◆ HANDLE() [18/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( BVSDivOp  ,
Unhandled   
)

◆ HANDLE() [19/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( BVShlOp  ,
Unhandled   
)

◆ HANDLE() [20/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( BVSModOp  ,
Unhandled   
)

◆ HANDLE() [21/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( BVSRemOp  ,
Unhandled   
)

◆ HANDLE() [22/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( BVUDivOp  ,
Unhandled   
)

◆ HANDLE() [23/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( BVURemOp  ,
Unhandled   
)

◆ HANDLE() [24/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( BVXOrOp  ,
Unhandled   
)

◆ HANDLE() [25/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( CheckOp  ,
Unhandled   
)

◆ HANDLE() [26/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( ConcatOp  ,
Unhandled   
)

◆ HANDLE() [27/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( DeclareFunOp  ,
Unhandled   
)

◆ HANDLE() [28/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( DistinctOp  ,
Unhandled   
)

◆ HANDLE() [29/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( EqOp  ,
Unhandled   
)

◆ HANDLE() [30/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( ExistsOp  ,
Unhandled   
)

◆ HANDLE() [31/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( ExtractOp  ,
Unhandled   
)

◆ HANDLE() [32/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( ForallOp  ,
Unhandled   
)

◆ HANDLE() [33/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( ImpliesOp  ,
Unhandled   
)

◆ HANDLE() [34/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( IntAddOp  ,
Unhandled   
)

◆ HANDLE() [35/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( IntCmpOp  ,
Unhandled   
)

◆ HANDLE() [36/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( IntConstantOp  ,
Unhandled   
)

◆ HANDLE() [37/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( IntDivOp  ,
Unhandled   
)

◆ HANDLE() [38/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( IntModOp  ,
Unhandled   
)

◆ HANDLE() [39/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( IntMulOp  ,
Unhandled   
)

◆ HANDLE() [40/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( IntSubOp  ,
Unhandled   
)

◆ HANDLE() [41/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( IteOp  ,
Unhandled   
)

◆ HANDLE() [42/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( NotOp  ,
Unhandled   
)

◆ HANDLE() [43/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( OrOp  ,
Unhandled   
)

◆ HANDLE() [44/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( PopOp  ,
Unhandled   
)

◆ HANDLE() [45/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( PushOp  ,
Unhandled   
)

◆ HANDLE() [46/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( RepeatOp  ,
Unhandled   
)

◆ HANDLE() [47/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( ResetOp  ,
Unhandled   
)

◆ HANDLE() [48/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( SolverOp  ,
Unhandled   
)

◆ HANDLE() [49/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( XOrOp  ,
Unhandled   
)

◆ HANDLE() [50/50]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( YieldOp  ,
Unhandled   
)

◆ visitInvalidSMTOp()

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
ResultType circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::visitInvalidSMTOp ( Operation *  op,
ExtraArgs...  args 
)
inline

This callback is invoked on any non-expression operations.

Definition at line 62 of file SMTVisitors.h.

◆ visitUnhandledSMTOp()

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
ResultType circt::smt::SMTOpVisitor< ConcreteType, ResultType, ExtraArgs >::visitUnhandledSMTOp ( Operation *  op,
ExtraArgs...  args 
)
inline

This callback is invoked on any SMT operations that are not handled by the concrete visitor.

Definition at line 69 of file SMTVisitors.h.


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