CIRCT 20.0.0git
Loading...
Searching...
No Matches
Public Member Functions | List of all members
circt::firrtl::FIRRTLVisitor< ConcreteType, ResultType, ExtraArgs > Class Template Reference

FIRRTLVisitor allows you to visit all of the expr/stmt/decls with one class declaration. More...

#include <FIRRTLVisitors.h>

Inheritance diagram for circt::firrtl::FIRRTLVisitor< ConcreteType, ResultType, ExtraArgs >:
Inheritance graph
[legend]
Collaboration diagram for circt::firrtl::FIRRTLVisitor< ConcreteType, ResultType, ExtraArgs >:
Collaboration graph
[legend]

Public Member Functions

ResultType dispatchVisitor (Operation *op, ExtraArgs... args)
 This is the main entrypoint for the FIRRTLVisitor.
 
ResultType visitInvalidExpr (Operation *op, ExtraArgs... args)
 
ResultType visitInvalidStmt (Operation *op, ExtraArgs... args)
 
ResultType visitInvalidDecl (Operation *op, ExtraArgs... args)
 
ResultType visitInvalidStmtExpr (Operation *op, ExtraArgs... args)
 
ResultType visitUnhandledExpr (Operation *op, ExtraArgs... args)
 
ResultType visitUnhandledStmt (Operation *op, ExtraArgs... args)
 
ResultType visitUnhandledDecl (Operation *op, ExtraArgs... args)
 
ResultType visitUnhandledStmtExpr (Operation *op, ExtraArgs... args)
 
ResultType visitInvalidOp (Operation *op, ExtraArgs... args)
 visitInvalidOp is an override point for non-FIRRTL dialect operations.
 
ResultType visitUnhandledOp (Operation *op, ExtraArgs... args)
 visitUnhandledOp is an override point for FIRRTL dialect ops that the concrete visitor didn't bother to implement.
 
- Public Member Functions inherited from circt::firrtl::ExprVisitor< ConcreteType, ResultType, ExtraArgs >
ResultType dispatchExprVisitor (Operation *op, ExtraArgs... args)
 
ResultType visitInvalidExpr (Operation *op, ExtraArgs... args)
 This callback is invoked on any non-expression operations.
 
ResultType visitUnhandledExpr (Operation *op, ExtraArgs... args)
 This callback is invoked on any expression operations that are not handled by the concrete visitor.
 
ResultType visitUnaryExpr (Operation *op, ExtraArgs... args)
 This fallback is invoked on any unary expr that isn't explicitly handled.
 
ResultType visitBinaryExpr (Operation *op, ExtraArgs... args)
 This fallback is invoked on any binary expr that isn't explicitly handled.
 
 HANDLE (ConstantOp, Unhandled)
 
 HANDLE (SpecialConstantOp, Unhandled)
 
 HANDLE (AggregateConstantOp, Unhandled)
 
 HANDLE (BundleCreateOp, Unhandled)
 
 HANDLE (VectorCreateOp, Unhandled)
 
 HANDLE (FEnumCreateOp, Unhandled)
 
 HANDLE (SubfieldOp, Unhandled)
 
 HANDLE (SubindexOp, Unhandled)
 
 HANDLE (SubaccessOp, Unhandled)
 
 HANDLE (IsTagOp, Unhandled)
 
 HANDLE (SubtagOp, Unhandled)
 
 HANDLE (TagExtractOp, Unhandled)
 
 HANDLE (MultibitMuxOp, Unhandled)
 
 HANDLE (OpenSubfieldOp, Unhandled)
 
 HANDLE (OpenSubindexOp, Unhandled)
 
 HANDLE (ObjectSubfieldOp, Unhandled)
 
 HANDLE (ObjectAnyRefCastOp, Unhandled)
 
 HANDLE (AddPrimOp, Binary)
 
 HANDLE (SubPrimOp, Binary)
 
 HANDLE (MulPrimOp, Binary)
 
 HANDLE (DivPrimOp, Binary)
 
 HANDLE (RemPrimOp, Binary)
 
 HANDLE (AndPrimOp, Binary)
 
 HANDLE (OrPrimOp, Binary)
 
 HANDLE (XorPrimOp, Binary)
 
 HANDLE (LEQPrimOp, Binary)
 
 HANDLE (LTPrimOp, Binary)
 
 HANDLE (GEQPrimOp, Binary)
 
 HANDLE (GTPrimOp, Binary)
 
 HANDLE (EQPrimOp, Binary)
 
 HANDLE (NEQPrimOp, Binary)
 
 HANDLE (CatPrimOp, Binary)
 
 HANDLE (DShlPrimOp, Binary)
 
 HANDLE (DShlwPrimOp, Binary)
 
 HANDLE (DShrPrimOp, Binary)
 
 HANDLE (AsSIntPrimOp, Unary)
 
 HANDLE (AsUIntPrimOp, Unary)
 
 HANDLE (AsAsyncResetPrimOp, Unary)
 
 HANDLE (AsClockPrimOp, Unary)
 
 HANDLE (CvtPrimOp, Unary)
 
 HANDLE (NegPrimOp, Unary)
 
 HANDLE (NotPrimOp, Unary)
 
 HANDLE (AndRPrimOp, Unary)
 
 HANDLE (OrRPrimOp, Unary)
 
 HANDLE (XorRPrimOp, Unary)
 
 HANDLE (ElementwiseOrPrimOp, Unhandled)
 
 HANDLE (ElementwiseAndPrimOp, Unhandled)
 
 HANDLE (ElementwiseXorPrimOp, Unhandled)
 
 HANDLE (IsXIntrinsicOp, Unhandled)
 
 HANDLE (PlusArgsValueIntrinsicOp, Unhandled)
 
 HANDLE (PlusArgsTestIntrinsicOp, Unhandled)
 
 HANDLE (SizeOfIntrinsicOp, Unhandled)
 
 HANDLE (ClockGateIntrinsicOp, Unhandled)
 
 HANDLE (ClockInverterIntrinsicOp, Unhandled)
 
 HANDLE (ClockDividerIntrinsicOp, Unhandled)
 
 HANDLE (LTLAndIntrinsicOp, Unhandled)
 
 HANDLE (LTLOrIntrinsicOp, Unhandled)
 
 HANDLE (LTLIntersectIntrinsicOp, Unhandled)
 
 HANDLE (LTLDelayIntrinsicOp, Unhandled)
 
 HANDLE (LTLConcatIntrinsicOp, Unhandled)
 
 HANDLE (LTLRepeatIntrinsicOp, Unhandled)
 
 HANDLE (LTLGoToRepeatIntrinsicOp, Unhandled)
 
 HANDLE (LTLNonConsecutiveRepeatIntrinsicOp, Unhandled)
 
 HANDLE (LTLNotIntrinsicOp, Unhandled)
 
 HANDLE (LTLImplicationIntrinsicOp, Unhandled)
 
 HANDLE (LTLUntilIntrinsicOp, Unhandled)
 
 HANDLE (LTLEventuallyIntrinsicOp, Unhandled)
 
 HANDLE (LTLClockIntrinsicOp, Unhandled)
 
 HANDLE (Mux4CellIntrinsicOp, Unhandled)
 
 HANDLE (Mux2CellIntrinsicOp, Unhandled)
 
 HANDLE (HasBeenResetIntrinsicOp, Unhandled)
 
 HANDLE (BitsPrimOp, Unhandled)
 
 HANDLE (HeadPrimOp, Unhandled)
 
 HANDLE (InvalidValueOp, Unhandled)
 
 HANDLE (MuxPrimOp, Unhandled)
 
 HANDLE (PadPrimOp, Unhandled)
 
 HANDLE (ShlPrimOp, Unhandled)
 
 HANDLE (ShrPrimOp, Unhandled)
 
 HANDLE (TailPrimOp, Unhandled)
 
 HANDLE (VerbatimExprOp, Unhandled)
 
 HANDLE (RefSendOp, Unhandled)
 
 HANDLE (RefResolveOp, Unhandled)
 
 HANDLE (RefSubOp, Unhandled)
 
 HANDLE (RWProbeOp, Unhandled)
 
 HANDLE (XMRRefOp, Unhandled)
 
 HANDLE (XMRDerefOp, Unhandled)
 
 HANDLE (HWStructCastOp, Unhandled)
 
 HANDLE (UninferredResetCastOp, Unhandled)
 
 HANDLE (ConstCastOp, Unhandled)
 
 HANDLE (BitCastOp, Unhandled)
 
 HANDLE (RefCastOp, Unhandled)
 
 HANDLE (StringConstantOp, Unhandled)
 
 HANDLE (FIntegerConstantOp, Unhandled)
 
 HANDLE (BoolConstantOp, Unhandled)
 
 HANDLE (DoubleConstantOp, Unhandled)
 
 HANDLE (ListCreateOp, Unhandled)
 
 HANDLE (ListConcatOp, Unhandled)
 
 HANDLE (PathOp, Unhandled)
 
 HANDLE (UnresolvedPathOp, Unhandled)
 
 HANDLE (IntegerAddOp, Unhandled)
 
 HANDLE (IntegerMulOp, Unhandled)
 
 HANDLE (IntegerShrOp, Unhandled)
 
- Public Member Functions inherited from circt::firrtl::StmtVisitor< ConcreteType, ResultType, ExtraArgs >
ResultType dispatchStmtVisitor (Operation *op, ExtraArgs... args)
 
ResultType visitInvalidStmt (Operation *op, ExtraArgs... args)
 This callback is invoked on any non-Stmt operations.
 
ResultType visitUnhandledStmt (Operation *op, ExtraArgs... args)
 This callback is invoked on any Stmt operations that are not handled by the concrete visitor.
 
 HANDLE (AttachOp)
 
 HANDLE (ConnectOp)
 
 HANDLE (MatchingConnectOp)
 
 HANDLE (RefDefineOp)
 
 HANDLE (ForceOp)
 
 HANDLE (PrintFOp)
 
 HANDLE (SkipOp)
 
 HANDLE (StopOp)
 
 HANDLE (WhenOp)
 
 HANDLE (AssertOp)
 
 HANDLE (AssumeOp)
 
 HANDLE (CoverOp)
 
 HANDLE (PropAssignOp)
 
 HANDLE (RefForceOp)
 
 HANDLE (RefForceInitialOp)
 
 HANDLE (RefReleaseOp)
 
 HANDLE (RefReleaseInitialOp)
 
 HANDLE (FPGAProbeIntrinsicOp)
 
 HANDLE (VerifAssertIntrinsicOp)
 
 HANDLE (VerifAssumeIntrinsicOp)
 
 HANDLE (VerifCoverIntrinsicOp)
 
 HANDLE (UnclockedAssumeIntrinsicOp)
 
 HANDLE (LayerBlockOp)
 
 HANDLE (MatchOp)
 
 HANDLE (ViewIntrinsicOp)
 
- Public Member Functions inherited from circt::firrtl::DeclVisitor< ConcreteType, ResultType, ExtraArgs >
ResultType dispatchDeclVisitor (Operation *op, ExtraArgs... args)
 
ResultType visitInvalidDecl (Operation *op, ExtraArgs... args)
 This callback is invoked on any non-Decl operations.
 
ResultType visitUnhandledDecl (Operation *op, ExtraArgs... args)
 This callback is invoked on any Decl operations that are not handled by the concrete visitor.
 
 HANDLE (InstanceOp)
 
 HANDLE (InstanceChoiceOp)
 
 HANDLE (ObjectOp)
 
 HANDLE (MemOp)
 
 HANDLE (NodeOp)
 
 HANDLE (RegOp)
 
 HANDLE (RegResetOp)
 
 HANDLE (WireOp)
 
 HANDLE (VerbatimWireOp)
 
- Public Member Functions inherited from circt::firrtl::StmtExprVisitor< ConcreteType, ResultType, ExtraArgs >
ResultType dispatchStmtExprVisitor (Operation *op, ExtraArgs... args)
 
ResultType visitInvalidStmtExpr (Operation *op, ExtraArgs... args)
 This callback is invoked on any non-StmtExpr operations.
 
ResultType visitUnhandledStmtExpr (Operation *op, ExtraArgs... args)
 This callback is invoked on any StmtExpr operations that are not handled by the concrete visitor.
 
 HANDLE (DPICallIntrinsicOp, Unhandled)
 
 HANDLE (GenericIntrinsicOp, Unhandled)
 

Detailed Description

template<typename ConcreteType, typename ResultType = void, typename... ExtraArgs>
class circt::firrtl::FIRRTLVisitor< ConcreteType, ResultType, ExtraArgs >

FIRRTLVisitor allows you to visit all of the expr/stmt/decls with one class declaration.

Clients call dispatchVisitor to invoke the dispatch, and may implement visitInvalidOp() to get notified about non-FIRRTL dialect nodes and visitUnhandledOp() to get notified about FIRRTL dialect ops that are not handled specifically.

Definition at line 398 of file FIRRTLVisitors.h.

Member Function Documentation

◆ dispatchVisitor()

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
ResultType circt::firrtl::FIRRTLVisitor< ConcreteType, ResultType, ExtraArgs >::dispatchVisitor ( Operation *  op,
ExtraArgs...  args 
)
inline

This is the main entrypoint for the FIRRTLVisitor.

Definition at line 405 of file FIRRTLVisitors.h.

References circt::firrtl::ExprVisitor< ConcreteType, ResultType, ExtraArgs >::dispatchExprVisitor().

◆ visitInvalidDecl()

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
ResultType circt::firrtl::FIRRTLVisitor< ConcreteType, ResultType, ExtraArgs >::visitInvalidDecl ( Operation *  op,
ExtraArgs...  args 
)
inline

◆ visitInvalidExpr()

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
ResultType circt::firrtl::FIRRTLVisitor< ConcreteType, ResultType, ExtraArgs >::visitInvalidExpr ( Operation *  op,
ExtraArgs...  args 
)
inline

◆ visitInvalidOp()

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
ResultType circt::firrtl::FIRRTLVisitor< ConcreteType, ResultType, ExtraArgs >::visitInvalidOp ( Operation *  op,
ExtraArgs...  args 
)
inline

visitInvalidOp is an override point for non-FIRRTL dialect operations.

Definition at line 438 of file FIRRTLVisitors.h.

Referenced by circt::firrtl::FIRRTLVisitor< ConcreteType, ResultType, ExtraArgs >::visitInvalidStmtExpr().

◆ visitInvalidStmt()

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
ResultType circt::firrtl::FIRRTLVisitor< ConcreteType, ResultType, ExtraArgs >::visitInvalidStmt ( Operation *  op,
ExtraArgs...  args 
)
inline

◆ visitInvalidStmtExpr()

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
ResultType circt::firrtl::FIRRTLVisitor< ConcreteType, ResultType, ExtraArgs >::visitInvalidStmtExpr ( Operation *  op,
ExtraArgs...  args 
)
inline

◆ visitUnhandledDecl()

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
ResultType circt::firrtl::FIRRTLVisitor< ConcreteType, ResultType, ExtraArgs >::visitUnhandledDecl ( Operation *  op,
ExtraArgs...  args 
)
inline

◆ visitUnhandledExpr()

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
ResultType circt::firrtl::FIRRTLVisitor< ConcreteType, ResultType, ExtraArgs >::visitUnhandledExpr ( Operation *  op,
ExtraArgs...  args 
)
inline

◆ visitUnhandledOp()

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
ResultType circt::firrtl::FIRRTLVisitor< ConcreteType, ResultType, ExtraArgs >::visitUnhandledOp ( Operation *  op,
ExtraArgs...  args 
)
inline

◆ visitUnhandledStmt()

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
ResultType circt::firrtl::FIRRTLVisitor< ConcreteType, ResultType, ExtraArgs >::visitUnhandledStmt ( Operation *  op,
ExtraArgs...  args 
)
inline

◆ visitUnhandledStmtExpr()

template<typename ConcreteType , typename ResultType = void, typename... ExtraArgs>
ResultType circt::firrtl::FIRRTLVisitor< ConcreteType, ResultType, ExtraArgs >::visitUnhandledStmtExpr ( Operation *  op,
ExtraArgs...  args 
)
inline

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