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

This helps visit Combinational nodes. More...

#include <CombVisitors.h>

Public Member Functions

ResultType dispatchCombinationalVisitor (Operation *op, ExtraArgs... args)
 
ResultType visitInvalidComb (Operation *op, ExtraArgs... args)
 This callback is invoked on any non-expression operations. More...
 
ResultType visitUnhandledComb (Operation *op, ExtraArgs... args)
 This callback is invoked on any combinational operations that are not handled by the concrete visitor. More...
 
ResultType visitBinaryComb (Operation *op, ExtraArgs... args)
 This fallback is invoked on any binary node that isn't explicitly handled. More...
 
ResultType visitUnaryComb (Operation *op, ExtraArgs... args)
 
ResultType visitVariadicComb (Operation *op, ExtraArgs... args)
 
 HANDLE (AddOp, Binary)
 
 HANDLE (SubOp, Binary)
 
 HANDLE (MulOp, Binary)
 
 HANDLE (DivUOp, Binary)
 
 HANDLE (DivSOp, Binary)
 
 HANDLE (ModUOp, Binary)
 
 HANDLE (ModSOp, Binary)
 
 HANDLE (ShlOp, Binary)
 
 HANDLE (ShrUOp, Binary)
 
 HANDLE (ShrSOp, Binary)
 
 HANDLE (AndOp, Variadic)
 
 HANDLE (OrOp, Variadic)
 
 HANDLE (XorOp, Variadic)
 
 HANDLE (ParityOp, Unary)
 
 HANDLE (ICmpOp, Binary)
 
 HANDLE (ConcatOp, Unhandled)
 
 HANDLE (ReplicateOp, Unhandled)
 
 HANDLE (ExtractOp, Unhandled)
 
 HANDLE (MuxOp, Unhandled)
 

Detailed Description

template<typename ConcreteType, typename ResultType = void, typename... ExtraArgs>
class circt::comb::CombinationalVisitor< ConcreteType, ResultType, ExtraArgs >

This helps visit Combinational nodes.

Definition at line 25 of file CombVisitors.h.

Member Function Documentation

◆ dispatchCombinationalVisitor()

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
ResultType circt::comb::CombinationalVisitor< ConcreteType, ResultType, ExtraArgs >::dispatchCombinationalVisitor ( Operation *  op,
ExtraArgs...  args 
)
inline

Definition at line 27 of file CombVisitors.h.

◆ HANDLE() [1/19]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::comb::CombinationalVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( AddOp  ,
Binary   
)

◆ HANDLE() [2/19]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::comb::CombinationalVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( AndOp  ,
Variadic   
)

◆ HANDLE() [3/19]

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

◆ HANDLE() [4/19]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::comb::CombinationalVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( DivSOp  ,
Binary   
)

◆ HANDLE() [5/19]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::comb::CombinationalVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( DivUOp  ,
Binary   
)

◆ HANDLE() [6/19]

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

◆ HANDLE() [7/19]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::comb::CombinationalVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( ICmpOp  ,
Binary   
)

◆ HANDLE() [8/19]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::comb::CombinationalVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( ModSOp  ,
Binary   
)

◆ HANDLE() [9/19]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::comb::CombinationalVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( ModUOp  ,
Binary   
)

◆ HANDLE() [10/19]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::comb::CombinationalVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( MulOp  ,
Binary   
)

◆ HANDLE() [11/19]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::comb::CombinationalVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( MuxOp  ,
Unhandled   
)

◆ HANDLE() [12/19]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::comb::CombinationalVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( OrOp  ,
Variadic   
)

◆ HANDLE() [13/19]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::comb::CombinationalVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( ParityOp  ,
Unary   
)

◆ HANDLE() [14/19]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::comb::CombinationalVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( ReplicateOp  ,
Unhandled   
)

◆ HANDLE() [15/19]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::comb::CombinationalVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( ShlOp  ,
Binary   
)

◆ HANDLE() [16/19]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::comb::CombinationalVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( ShrSOp  ,
Binary   
)

◆ HANDLE() [17/19]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::comb::CombinationalVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( ShrUOp  ,
Binary   
)

◆ HANDLE() [18/19]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::comb::CombinationalVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( SubOp  ,
Binary   
)

◆ HANDLE() [19/19]

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
circt::comb::CombinationalVisitor< ConcreteType, ResultType, ExtraArgs >::HANDLE ( XorOp  ,
Variadic   
)

◆ visitBinaryComb()

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
ResultType circt::comb::CombinationalVisitor< ConcreteType, ResultType, ExtraArgs >::visitBinaryComb ( Operation *  op,
ExtraArgs...  args 
)
inline

This fallback is invoked on any binary node that isn't explicitly handled.

The default implementation delegates to the 'unhandled' fallback.

Definition at line 64 of file CombVisitors.h.

References circt::comb::CombinationalVisitor< ConcreteType, ResultType, ExtraArgs >::visitUnhandledComb().

◆ visitInvalidComb()

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
ResultType circt::comb::CombinationalVisitor< ConcreteType, ResultType, ExtraArgs >::visitInvalidComb ( Operation *  op,
ExtraArgs...  args 
)
inline

This callback is invoked on any non-expression operations.

Definition at line 51 of file CombVisitors.h.

◆ visitUnaryComb()

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
ResultType circt::comb::CombinationalVisitor< ConcreteType, ResultType, ExtraArgs >::visitUnaryComb ( Operation *  op,
ExtraArgs...  args 
)
inline

◆ visitUnhandledComb()

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
ResultType circt::comb::CombinationalVisitor< ConcreteType, ResultType, ExtraArgs >::visitUnhandledComb ( Operation *  op,
ExtraArgs...  args 
)
inline

◆ visitVariadicComb()

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
ResultType circt::comb::CombinationalVisitor< ConcreteType, ResultType, ExtraArgs >::visitVariadicComb ( Operation *  op,
ExtraArgs...  args 
)
inline

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