|
CIRCT 22.0.0git
|
#include "circt/Dialect/FIRRTL/FIRRTLOps.h"#include "circt/Dialect/FIRRTL/AnnotationDetails.h"#include "circt/Dialect/FIRRTL/CHIRRTLDialect.h"#include "circt/Dialect/FIRRTL/FIRRTLAnnotations.h"#include "circt/Dialect/FIRRTL/FIRRTLAttributes.h"#include "circt/Dialect/FIRRTL/FIRRTLInstanceImplementation.h"#include "circt/Dialect/FIRRTL/FIRRTLTypes.h"#include "circt/Dialect/FIRRTL/FIRRTLUtils.h"#include "circt/Dialect/FIRRTL/FIRRTLVisitors.h"#include "circt/Dialect/FIRRTL/FieldRefCache.h"#include "circt/Dialect/FIRRTL/LayerSet.h"#include "circt/Dialect/HW/HWAttributes.h"#include "circt/Dialect/HW/HWTypes.h"#include "circt/Support/CustomDirectiveImpl.h"#include "circt/Support/Utils.h"#include "mlir/IR/BuiltinTypes.h"#include "mlir/IR/Diagnostics.h"#include "mlir/IR/DialectImplementation.h"#include "mlir/IR/PatternMatch.h"#include "mlir/IR/SymbolTable.h"#include "mlir/Interfaces/FunctionImplementation.h"#include "llvm/ADT/BitVector.h"#include "llvm/ADT/DenseMap.h"#include "llvm/ADT/DenseSet.h"#include "llvm/ADT/STLExtras.h"#include "llvm/ADT/SmallSet.h"#include "llvm/ADT/StringExtras.h"#include "llvm/ADT/TypeSwitch.h"#include "llvm/Support/Casting.h"#include "llvm/Support/FormatVariadic.h"#include "circt/Dialect/FIRRTL/FIRRTL.cpp.inc"
Go to the source code of this file.
Classes | |
| struct | HasParameters< Properties, typename > |
| struct | HasParameters< Properties, std::void_t< decltype(std::declval< Properties >().parameters)> > |
Macros | |
| #define | GET_OP_CLASSES |
Functions | |
| template<typename T > | |
| static SmallVector< T > | removeElementsAtIndices (ArrayRef< T > input, const llvm::BitVector &indicesToDrop) |
Remove elements from the input array corresponding to set bits in indicesToDrop, returning the elements not mentioned. | |
| template<typename RetTy = FIRRTLType, typename... Args> | |
| static RetTy | emitInferRetTypeError (std::optional< Location > loc, const Twine &message, Args &&...args) |
| Emit an error if optional location is non-null, return null of return type. | |
| static MemOp::PortKind | getMemPortKindFromType (FIRRTLType type) |
| Return the kind of port this is given the port type from a 'mem' decl. | |
| const char * | toString (Flow flow) |
| void | getAsmBlockArgumentNamesImpl (Operation *op, mlir::Region ®ion, OpAsmSetValueNameFn setNameFn) |
| Get a special name to use when printing the entry block arguments of the region contained by an operation in this dialect. | |
| static ParseResult | parseNameKind (OpAsmParser &parser, firrtl::NameKindEnumAttr &result) |
A forward declaration for NameKind attribute parser. | |
| static LayerSet | getAmbientLayersAt (Operation *op) |
| Get the ambient layers active at the given op. | |
| static LayerSet | getAmbientLayersFor (Value value) |
| Get the ambient layer requirements at the definition site of the value. | |
| static LayerSet | getLayersFor (Value value) |
| Get the effective layer requirements for the given value. | |
| static bool | isLayerCompatibleWith (mlir::SymbolRefAttr srcLayer, mlir::SymbolRefAttr dstLayer) |
| Check that the source layer is compatible with the destination layer. | |
| static bool | isLayerCompatibleWith (SymbolRefAttr srcLayer, const LayerSet &dstLayers) |
| Check that the source layer is present in the destination layers. | |
| static bool | isLayerSetCompatibleWith (const LayerSet &src, const LayerSet &dst, SmallVectorImpl< SymbolRefAttr > &missing) |
| Check that the source layers are all present in the destination layers. | |
| static LogicalResult | checkLayerCompatibility (Operation *op, const LayerSet &src, const LayerSet &dst, const Twine &errorMsg, const Twine ¬eMsg=Twine("missing layer requirements")) |
| static ParseResult | parseCircuitOpAttrs (OpAsmParser &parser, NamedAttrList &resultAttrs) |
| static void | printCircuitOpAttrs (OpAsmPrinter &p, Operation *op, DictionaryAttr attr) |
| static SmallVector< PortInfo > | getPortImpl (FModuleLike module) |
| static hw::ModulePort::Direction | dirFtoH (Direction dir) |
| static SmallVector< hw::PortInfo > | getPortListImpl (FModuleLike module) |
| static hw::PortInfo | getPortImpl (FModuleLike module, size_t idx) |
| static Attribute | fixDomainInfoInsertions (MLIRContext *context, Attribute domainInfoAttr, ArrayRef< unsigned > indexMap) |
| Return an updated domain info Attribute with domain indices updated based on port insertions. | |
| static void | insertPorts (FModuleLike op, ArrayRef< std::pair< unsigned, PortInfo > > ports) |
| Inserts the given ports. | |
| static ArrayAttr | fixDomainInfoDeletions (MLIRContext *context, ArrayAttr domainInfoAttr, const llvm::BitVector &portIndices, bool supportsEmptyAttr) |
| static void | erasePorts (FModuleLike op, const llvm::BitVector &portIndices) |
Erases the ports that have their corresponding bit set in portIndices. | |
| template<typename OpTy > | |
| void | buildModuleLike (OpBuilder &builder, OperationState &result, StringAttr name, ArrayRef< PortInfo > ports) |
| template<typename OpTy > | |
| static void | buildModule (OpBuilder &builder, OperationState &result, StringAttr name, ArrayRef< PortInfo > ports, ArrayAttr annotations, ArrayAttr layers) |
| template<typename OpTy > | |
| static void | buildClass (OpBuilder &builder, OperationState &result, StringAttr name, ArrayRef< PortInfo > ports) |
| static bool | printModulePorts (OpAsmPrinter &p, Block *block, ArrayRef< bool > portDirections, ArrayRef< Attribute > portNames, ArrayRef< Attribute > portTypes, ArrayRef< Attribute > portAnnotations, ArrayRef< Attribute > portSyms, ArrayRef< Attribute > portLocs, ArrayRef< Attribute > domainInfo) |
| Print a list of module ports in the following form: in x: !firrtl.uint<1> [{class = "DontTouch}], out "_port": !firrtl.uint<2> | |
| static ParseResult | parseModulePorts (OpAsmParser &parser, bool hasSSAIdentifiers, bool supportsSymbols, bool supportsDomains, SmallVectorImpl< OpAsmParser::Argument > &entryArgs, SmallVectorImpl< Direction > &portDirections, SmallVectorImpl< Attribute > &portNames, SmallVectorImpl< Attribute > &portTypes, SmallVectorImpl< Attribute > &portAnnotations, SmallVectorImpl< Attribute > &portSyms, SmallVectorImpl< Attribute > &portLocs, SmallVectorImpl< Attribute > &domains) |
| Parse a list of module ports. | |
| static void | printParameterList (OpAsmPrinter &p, Operation *op, ArrayAttr parameters) |
| Print a paramter list for a module or instance. | |
| static void | printFModuleLikeOp (OpAsmPrinter &p, FModuleLike op) |
| static ParseResult | parseOptionalParameters (OpAsmParser &parser, SmallVectorImpl< Attribute > ¶meters) |
| Parse an parameter list if present. | |
| static ParseResult | parseParameterList (OpAsmParser &parser, ArrayAttr ¶meters) |
| Shim to use with assemblyFormat, custom<ParameterList>. | |
| template<typename OpTy > | |
| static ParseResult | parseFModuleLikeOp (OpAsmParser &parser, OperationState &result, bool hasSSAIdentifiers) |
| static LogicalResult | verifyProbeType (RefType refType, Location loc, CircuitOp circuitOp, SymbolTableCollection &symbolTable, Twine start) |
| static LogicalResult | verifyPortSymbolUses (FModuleLike module, SymbolTableCollection &symbolTable) |
| template<typename OpTy > | |
| ParseResult | parseClassLike (OpAsmParser &parser, OperationState &result, bool hasSSAIdentifiers) |
| static void | printClassLike (OpAsmPrinter &p, ClassLike op) |
| static void | replaceUsesRespectingInsertedPorts (Operation *op1, Operation *op2, ArrayRef< std::pair< unsigned, PortInfo > > insertions) |
| static void | replaceUsesRespectingErasedPorts (Operation *op1, Operation *op2, const llvm::BitVector &erasures) |
| static size_t | getAddressWidth (size_t depth) |
| static void | forceableAsmResultNames (Forceable op, StringRef name, OpAsmSetValueNameFn setNameFn) |
| Helper for naming forceable declarations (and their optional ref result). | |
| static LogicalResult | checkConnectFlow (Operation *connect) |
| Check if the source and sink are of appropriate flow. | |
| static bool | isConstFieldDriven (FIRRTLBaseType type, bool isFlip=false, bool outerTypeIsConst=false) |
| Checks if the type has any 'const' leaf elements . | |
| static LogicalResult | checkConnectConditionality (FConnectLike connect) |
| Checks that connections to 'const' destinations are not dependent on non-'const' conditions in when blocks. | |
| static LogicalResult | checkSingleConnect (FConnectLike connect) |
| Returns success if the given connect is the sole driver of its dest operand. | |
| template<typename T > | |
| static FlatSymbolRefAttr | getDomainTypeNameOfResult (T op, size_t i) |
| static FlatSymbolRefAttr | getDomainTypeName (Value value) |
| static bool | checkAggConstant (Operation *op, Attribute attr, FIRRTLBaseType type) |
| template<typename OpTy > | |
| ParseResult | parseSubfieldLikeOp (OpAsmParser &parser, OperationState &result) |
| template<typename OpTy > | |
| static void | printSubfieldLikeOp (OpTy op, ::mlir::OpAsmPrinter &printer) |
| template<typename OpTy > | |
| static LogicalResult | verifySubfieldLike (OpTy op) |
| static bool | isSameIntTypeKind (Type lhs, Type rhs, int32_t &lhsWidth, int32_t &rhsWidth, bool &isConstResult, std::optional< Location > loc) |
| If LHS and RHS are both UInt or SInt types, the return true and fill in the width of them if known. | |
| static FIRRTLBaseType | inferMuxReturnType (FIRRTLBaseType high, FIRRTLBaseType low, bool isConstCondition, std::optional< Location > loc) |
| Infer the result type for a multiplexer given its two operand types, which may be aggregates. | |
| static bool | isTypeAllowedForDPI (Operation *op, Type type) |
| static ParseResult | parseElideAnnotations (OpAsmParser &parser, NamedAttrList &resultAttrs) |
| Parse an optional attribute dictionary, adding an empty 'annotations' attribute if not specified. | |
| static void | printElideAnnotations (OpAsmPrinter &p, Operation *op, DictionaryAttr attr, ArrayRef< StringRef > extraElides={}) |
| static ParseResult | parseElidePortAnnotations (OpAsmParser &parser, NamedAttrList &resultAttrs) |
| Parse an optional attribute dictionary, adding empty 'annotations' and 'portAnnotations' attributes if not specified. | |
| static void | printElidePortAnnotations (OpAsmPrinter &p, Operation *op, DictionaryAttr attr, ArrayRef< StringRef > extraElides={}) |
| static void | printNameKind (OpAsmPrinter &p, Operation *op, firrtl::NameKindEnumAttr attr, ArrayRef< StringRef > extraElides={}) |
| static ParseResult | parseFIRRTLImplicitSSAName (OpAsmParser &parser, NamedAttrList &resultAttrs) |
| static void | printFIRRTLImplicitSSAName (OpAsmPrinter &p, Operation *op, DictionaryAttr attrs) |
| static ParseResult | parseMemOp (OpAsmParser &parser, NamedAttrList &resultAttrs) |
| static void | printMemOp (OpAsmPrinter &p, Operation *op, DictionaryAttr attr) |
| Always elide "ruw" and elide "annotations" if it exists or if it is empty. | |
| static ParseResult | parseClassInterface (OpAsmParser &parser, Type &result) |
| static void | printClassInterface (OpAsmPrinter &p, Operation *, ClassType type) |
| static ParseResult | parseElideEmptyName (OpAsmParser &p, NamedAttrList &resultAttrs) |
| static void | printElideEmptyName (OpAsmPrinter &p, Operation *op, DictionaryAttr attr, ArrayRef< StringRef > extraElides={}) |
| static ParseResult | parsePrintfAttrs (OpAsmParser &p, NamedAttrList &resultAttrs) |
| static void | printPrintfAttrs (OpAsmPrinter &p, Operation *op, DictionaryAttr attr) |
| static ParseResult | parseFPrintfAttrs (OpAsmParser &p, NamedAttrList &resultAttrs) |
| static void | printFPrintfAttrs (OpAsmPrinter &p, Operation *op, DictionaryAttr attr) |
| static ParseResult | parseStopAttrs (OpAsmParser &p, NamedAttrList &resultAttrs) |
| static void | printStopAttrs (OpAsmPrinter &p, Operation *op, DictionaryAttr attr) |
| static ParseResult | parseVerifAttrs (OpAsmParser &p, NamedAttrList &resultAttrs) |
| static void | printVerifAttrs (OpAsmPrinter &p, Operation *op, DictionaryAttr attr) |
| static void | genericAsmResultNames (Operation *op, OpAsmSetValueNameFn setNameFn) |
| #define GET_OP_CLASSES |
Definition at line 7012 of file FIRRTLOps.cpp.
|
static |
Definition at line 1130 of file FIRRTLOps.cpp.
|
static |
Definition at line 1102 of file FIRRTLOps.cpp.
| void buildModuleLike | ( | OpBuilder & | builder, |
| OperationState & | result, | ||
| StringAttr | name, | ||
| ArrayRef< PortInfo > | ports | ||
| ) |
Definition at line 1057 of file FIRRTLOps.cpp.
References circt::firrtl::direction::packAttribute().
|
static |
Definition at line 4639 of file FIRRTLOps.cpp.
References checkAggConstant().
Referenced by checkAggConstant().
|
static |
Checks that connections to 'const' destinations are not dependent on non-'const' conditions in when blocks.
Looks up the value's defining op until the defining op is null or a declaration of the value. If a SubAccessOp is encountered with a 'const' input, originalFieldType is made 'const'.
Definition at line 3988 of file FIRRTLOps.cpp.
References isConstFieldDriven().
|
static |
Check if the source and sink are of appropriate flow.
Definition at line 3922 of file FIRRTLOps.cpp.
References circt::firrtl::foldFlow(), circt::firrtl::getDeclarationKind(), circt::firrtl::getFieldName(), circt::firrtl::getFieldRefFromValue(), circt::firrtl::Instance, circt::firrtl::isValidDst(), circt::firrtl::isValidSrc(), circt::firrtl::Port, and toString().
|
static |
Definition at line 450 of file FIRRTLOps.cpp.
References isLayerSetCompatibleWith().
|
static |
Returns success if the given connect is the sole driver of its dest operand.
Returns failure if there are other connects driving the dest.
Definition at line 4082 of file FIRRTLOps.cpp.
|
static |
Definition at line 675 of file FIRRTLOps.cpp.
References assert().
|
static |
Emit an error if optional location is non-null, return null of return type.
Definition at line 97 of file FIRRTLOps.cpp.
|
static |
Erases the ports that have their corresponding bit set in portIndices.
Definition at line 963 of file FIRRTLOps.cpp.
References assert(), fixDomainInfoDeletions(), circt::firrtl::direction::packAttribute(), and removeElementsAtIndices().
|
static |
Definition at line 885 of file FIRRTLOps.cpp.
Referenced by erasePorts().
|
static |
Return an updated domain info Attribute with domain indices updated based on port insertions.
Definition at line 756 of file FIRRTLOps.cpp.
Referenced by insertPorts().
|
static |
Helper for naming forceable declarations (and their optional ref result).
Definition at line 3654 of file FIRRTLOps.cpp.
|
static |
Definition at line 6320 of file FIRRTLOps.cpp.
|
static |
Definition at line 3401 of file FIRRTLOps.cpp.
|
static |
Get the ambient layers active at the given op.
Definition at line 361 of file FIRRTLOps.cpp.
Referenced by getAmbientLayersFor().
|
static |
Get the ambient layer requirements at the definition site of the value.
Definition at line 380 of file FIRRTLOps.cpp.
References getAmbientLayersAt(), and circt::firrtl::getFieldRefFromValue().
Referenced by getLayersFor().
| void getAsmBlockArgumentNamesImpl | ( | Operation * | op, |
| mlir::Region & | region, | ||
| OpAsmSetValueNameFn | setNameFn | ||
| ) |
Get a special name to use when printing the entry block arguments of the region contained by an operation in this dialect.
Definition at line 332 of file FIRRTLOps.cpp.
|
static |
Definition at line 4210 of file FIRRTLOps.cpp.
References getDomainTypeNameOfResult().
|
static |
Definition at line 4203 of file FIRRTLOps.cpp.
Referenced by getDomainTypeName().
|
static |
Get the effective layer requirements for the given value.
The effective layers for a value is the union of
Definition at line 388 of file FIRRTLOps.cpp.
References getAmbientLayersFor().
|
static |
Return the kind of port this is given the port type from a 'mem' decl.
Definition at line 145 of file FIRRTLOps.cpp.
References circt::firrtl::addr, circt::firrtl::clk, circt::firrtl::data, circt::firrtl::en, circt::firrtl::mask, circt::firrtl::rdata, circt::firrtl::wdata, circt::firrtl::wmask, and circt::firrtl::wmode.
|
static |
Definition at line 654 of file FIRRTLOps.cpp.
|
static |
Definition at line 720 of file FIRRTLOps.cpp.
References getBodyBlock().
|
static |
Definition at line 684 of file FIRRTLOps.cpp.
References circt::firrtl::getNumPorts().
|
static |
Infer the result type for a multiplexer given its two operand types, which may be aggregates.
This essentially performs a pairwise comparison of fields and elements, as follows:
Definition at line 5721 of file FIRRTLOps.cpp.
References circt::firrtl::FIRRTLBaseType::getAllConstDroppedType(), circt::firrtl::FIRRTLBaseType::getBitWidthOrSentinel(), circt::firrtl::FIRRTLBaseType::getConstType(), inferMuxReturnType(), circt::firrtl::FIRRTLBaseType::isConst(), and numElements.
Referenced by inferMuxReturnType().
|
static |
Inserts the given ports.
The insertion indices are expected to be in order. Insertion occurs in-order, such that ports with the same insertion index appear in the module in the same order they appeared in the list.
Definition at line 781 of file FIRRTLOps.cpp.
References assert(), fixDomainInfoInsertions(), circt::firrtl::direction::packAttribute(), and circt::firrtl::direction::unGet().
|
static |
Checks if the type has any 'const' leaf elements .
If isFlip is true, the const leaf is not considered to be driven.
Definition at line 3964 of file FIRRTLOps.cpp.
References circt::firrtl::FIRRTLBaseType::isConst(), isConstFieldDriven(), and circt::firrtl::FIRRTLBaseType::isPassive().
Referenced by checkConnectConditionality(), and isConstFieldDriven().
|
static |
Check that the source layer is compatible with the destination layer.
Either the source and destination are identical, or the source-layer is a parent of the destination. For example A is compatible with A.B.C, because any definition valid in A is also valid in A.B.C.
Definition at line 400 of file FIRRTLOps.cpp.
Referenced by isLayerCompatibleWith(), and isLayerSetCompatibleWith().
|
static |
Check that the source layer is present in the destination layers.
Definition at line 424 of file FIRRTLOps.cpp.
References isLayerCompatibleWith().
|
static |
Check that the source layers are all present in the destination layers.
True if all source layers are present in the destination. Outputs the set of source layers that are missing in the destination.
Definition at line 440 of file FIRRTLOps.cpp.
References isLayerCompatibleWith().
Referenced by checkLayerCompatibility().
|
static |
If LHS and RHS are both UInt or SInt types, the return true and fill in the width of them if known.
If unknown, return -1 for the widths. The constness of the result is also returned, where if both lhs and rhs are const, then the result is const.
On failure, this reports and error and returns false. This function should not be used if you don't want an error reported.
Definition at line 5339 of file FIRRTLOps.cpp.
|
static |
Definition at line 5987 of file FIRRTLOps.cpp.
References circt::firrtl::WidthQualifiedTypeTrait< ConcreteType >::getWidth().
|
static |
Definition at line 481 of file FIRRTLOps.cpp.
|
static |
Definition at line 6242 of file FIRRTLOps.cpp.
| ParseResult parseClassLike | ( | OpAsmParser & | parser, |
| OperationState & | result, | ||
| bool | hasSSAIdentifiers | ||
| ) |
Definition at line 2024 of file FIRRTLOps.cpp.
References assert(), circt::firrtl::direction::packAttribute(), and parseModulePorts().
|
static |
Parse an optional attribute dictionary, adding an empty 'annotations' attribute if not specified.
Definition at line 6126 of file FIRRTLOps.cpp.
Referenced by parseElidePortAnnotations(), and parseFIRRTLImplicitSSAName().
|
static |
Definition at line 6258 of file FIRRTLOps.cpp.
Referenced by parseFPrintfAttrs(), parsePrintfAttrs(), parseStopAttrs(), and parseVerifAttrs().
|
static |
Parse an optional attribute dictionary, adding empty 'annotations' and 'portAnnotations' attributes if not specified.
Definition at line 6150 of file FIRRTLOps.cpp.
References parseElideAnnotations().
Referenced by parseMemOp().
|
static |
Definition at line 6207 of file FIRRTLOps.cpp.
References circt::inferImplicitSSAName(), and parseElideAnnotations().
|
static |
Definition at line 1616 of file FIRRTLOps.cpp.
References assert(), circt::firrtl::direction::packAttribute(), parseModulePorts(), and parseOptionalParameters().
|
static |
Definition at line 6287 of file FIRRTLOps.cpp.
References parseElideEmptyName().
|
static |
Definition at line 6228 of file FIRRTLOps.cpp.
References parseElidePortAnnotations().
|
static |
Parse a list of module ports.
If port names are SSA identifiers, then this will populate entryArgs.
Definition at line 1317 of file FIRRTLOps.cpp.
References assert(), circt::hw::InnerSymbolTable::getInnerSymbolAttrName(), and isdigit.
Referenced by parseClassLike(), and parseFModuleLikeOp().
|
static |
A forward declaration for NameKind attribute parser.
Definition at line 6179 of file FIRRTLOps.cpp.
|
static |
Parse an parameter list if present.
module-parameter-list ::= < parameter-decl (, parameter-decl)* > parameter-decl ::= identifier : type parameter-decl ::= identifier : type = attribute
Definition at line 1570 of file FIRRTLOps.cpp.
Referenced by parseFModuleLikeOp(), and parseParameterList().
|
static |
Shim to use with assemblyFormat, custom<ParameterList>.
Definition at line 1596 of file FIRRTLOps.cpp.
References parseOptionalParameters().
|
static |
Definition at line 6277 of file FIRRTLOps.cpp.
References parseElideEmptyName().
|
static |
Definition at line 6298 of file FIRRTLOps.cpp.
References parseElideEmptyName().
| ParseResult parseSubfieldLikeOp | ( | OpAsmParser & | parser, |
| OperationState & | result | ||
| ) |
Definition at line 4928 of file FIRRTLOps.cpp.
|
static |
Definition at line 6307 of file FIRRTLOps.cpp.
References parseElideEmptyName().
|
static |
Definition at line 490 of file FIRRTLOps.cpp.
|
static |
Definition at line 6250 of file FIRRTLOps.cpp.
|
static |
Definition at line 2102 of file FIRRTLOps.cpp.
References printModulePorts().
|
static |
Definition at line 6135 of file FIRRTLOps.cpp.
Referenced by printFIRRTLImplicitSSAName().
|
static |
Definition at line 6267 of file FIRRTLOps.cpp.
Referenced by printFPrintfAttrs(), printPrintfAttrs(), printStopAttrs(), and printVerifAttrs().
|
static |
Definition at line 6164 of file FIRRTLOps.cpp.
Referenced by printMemOp().
|
static |
Definition at line 6215 of file FIRRTLOps.cpp.
References circt::elideImplicitSSAName(), circt::hw::InnerSymbolTable::getInnerSymbolAttrName(), and printElideAnnotations().
|
static |
Definition at line 1489 of file FIRRTLOps.cpp.
References printModulePorts(), and printParameterList().
|
static |
Definition at line 6292 of file FIRRTLOps.cpp.
References printElideEmptyName().
|
static |
Always elide "ruw" and elide "annotations" if it exists or if it is empty.
Definition at line 6233 of file FIRRTLOps.cpp.
References printElidePortAnnotations().
|
static |
Print a list of module ports in the following form: in x: !firrtl.uint<1> [{class = "DontTouch}], out "_port": !firrtl.uint<2>
When there is no block specified, the port names print as MLIR identifiers, wrapping in quotes if not legal to print as-is. When there is no block specified, this function always return false, indicating that there was no issue printing port names.
If there is a block specified, then port names will be printed as SSA values. If there is a reason the printed SSA values can't match the true port name, then this function will return true. When this happens, the caller should print the port names as a part of the attr-dict.
Definition at line 1221 of file FIRRTLOps.cpp.
References empty, and circt::firrtl::direction::get().
Referenced by printClassLike(), and printFModuleLikeOp().
|
static |
Definition at line 6196 of file FIRRTLOps.cpp.
|
static |
Print a paramter list for a module or instance.
Definition at line 1472 of file FIRRTLOps.cpp.
Referenced by printFModuleLikeOp().
|
static |
Definition at line 6282 of file FIRRTLOps.cpp.
References printElideEmptyName().
|
static |
Definition at line 6302 of file FIRRTLOps.cpp.
References printElideEmptyName().
|
static |
Definition at line 5013 of file FIRRTLOps.cpp.
|
static |
Definition at line 6311 of file FIRRTLOps.cpp.
References printElideEmptyName().
|
static |
Remove elements from the input array corresponding to set bits in indicesToDrop, returning the elements not mentioned.
Definition at line 58 of file FIRRTLOps.cpp.
References assert().
Referenced by erasePorts().
|
static |
Definition at line 2538 of file FIRRTLOps.cpp.
References assert().
|
static |
Definition at line 2519 of file FIRRTLOps.cpp.
References assert().
| const char * toString | ( | Flow | flow | ) |
Definition at line 199 of file FIRRTLOps.cpp.
Referenced by checkConnectFlow().
|
static |
Definition at line 1841 of file FIRRTLOps.cpp.
References verifyProbeType().
|
static |
Definition at line 1820 of file FIRRTLOps.cpp.
Referenced by verifyPortSymbolUses().
|
static |
Definition at line 5040 of file FIRRTLOps.cpp.