|
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 | |
| static void | printDomainKind (OpAsmPrinter &p, FlatSymbolRefAttr domainKind) |
| Helper to print domain kind: " of @Symbol". | |
| static ParseResult | parseDomainKind (OpAsmParser &parser, FlatSymbolRefAttr &domainKind) |
| Helper to parse domain kind: "of @Symbol". | |
| 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 7093 of file FIRRTLOps.cpp.
|
static |
Definition at line 1146 of file FIRRTLOps.cpp.
|
static |
Definition at line 1118 of file FIRRTLOps.cpp.
| void buildModuleLike | ( | OpBuilder & | builder, |
| OperationState & | result, | ||
| StringAttr | name, | ||
| ArrayRef< PortInfo > | ports | ||
| ) |
Definition at line 1073 of file FIRRTLOps.cpp.
References circt::firrtl::direction::packAttribute().
|
static |
Definition at line 4706 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 4053 of file FIRRTLOps.cpp.
References isConstFieldDriven().
|
static |
Check if the source and sink are of appropriate flow.
Definition at line 3987 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 465 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 4147 of file FIRRTLOps.cpp.
|
static |
Definition at line 690 of file FIRRTLOps.cpp.
References assert().
|
static |
Emit an error if optional location is non-null, return null of return type.
Definition at line 112 of file FIRRTLOps.cpp.
|
static |
Erases the ports that have their corresponding bit set in portIndices.
Definition at line 979 of file FIRRTLOps.cpp.
References assert(), fixDomainInfoDeletions(), circt::firrtl::direction::packAttribute(), and removeElementsAtIndices().
|
static |
|
static |
Return an updated domain info Attribute with domain indices updated based on port insertions.
Definition at line 772 of file FIRRTLOps.cpp.
References context.
Referenced by insertPorts().
|
static |
Helper for naming forceable declarations (and their optional ref result).
Definition at line 3719 of file FIRRTLOps.cpp.
|
static |
Definition at line 6387 of file FIRRTLOps.cpp.
|
static |
Definition at line 3466 of file FIRRTLOps.cpp.
|
static |
Get the ambient layers active at the given op.
Definition at line 376 of file FIRRTLOps.cpp.
Referenced by getAmbientLayersFor().
|
static |
Get the ambient layer requirements at the definition site of the value.
Definition at line 395 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 347 of file FIRRTLOps.cpp.
|
static |
Definition at line 4275 of file FIRRTLOps.cpp.
References getDomainTypeNameOfResult().
|
static |
Definition at line 4268 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 403 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 160 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 669 of file FIRRTLOps.cpp.
|
static |
Definition at line 735 of file FIRRTLOps.cpp.
References getBodyBlock().
|
static |
Definition at line 699 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 5788 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 797 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 4029 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 415 of file FIRRTLOps.cpp.
Referenced by isLayerCompatibleWith(), and isLayerSetCompatibleWith().
|
static |
Check that the source layer is present in the destination layers.
Definition at line 439 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 455 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 5406 of file FIRRTLOps.cpp.
|
static |
Definition at line 6054 of file FIRRTLOps.cpp.
References circt::firrtl::WidthQualifiedTypeTrait< ConcreteType >::getWidth().
|
static |
Definition at line 496 of file FIRRTLOps.cpp.
|
static |
Definition at line 6309 of file FIRRTLOps.cpp.
| ParseResult parseClassLike | ( | OpAsmParser & | parser, |
| OperationState & | result, | ||
| bool | hasSSAIdentifiers | ||
| ) |
Definition at line 2082 of file FIRRTLOps.cpp.
References assert(), context, circt::firrtl::direction::packAttribute(), and parseModulePorts().
|
static |
Helper to parse domain kind: "of @Symbol".
Definition at line 60 of file FIRRTLOps.cpp.
Referenced by parseModulePorts().
|
static |
Parse an optional attribute dictionary, adding an empty 'annotations' attribute if not specified.
Definition at line 6193 of file FIRRTLOps.cpp.
Referenced by parseElidePortAnnotations(), and parseFIRRTLImplicitSSAName().
|
static |
Definition at line 6325 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 6217 of file FIRRTLOps.cpp.
References parseElideAnnotations().
Referenced by parseMemOp().
|
static |
Definition at line 6274 of file FIRRTLOps.cpp.
References circt::inferImplicitSSAName(), and parseElideAnnotations().
|
static |
Definition at line 1662 of file FIRRTLOps.cpp.
References assert(), context, circt::firrtl::direction::packAttribute(), parseModulePorts(), and parseOptionalParameters().
|
static |
Definition at line 6354 of file FIRRTLOps.cpp.
References parseElideEmptyName().
|
static |
Definition at line 6295 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 1343 of file FIRRTLOps.cpp.
References assert(), context, circt::hw::InnerSymbolTable::getInnerSymbolAttrName(), isdigit, and parseDomainKind().
Referenced by parseClassLike(), and parseFModuleLikeOp().
|
static |
A forward declaration for NameKind attribute parser.
Definition at line 6246 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 1616 of file FIRRTLOps.cpp.
Referenced by parseFModuleLikeOp(), and parseParameterList().
|
static |
Shim to use with assemblyFormat, custom<ParameterList>.
Definition at line 1642 of file FIRRTLOps.cpp.
References parseOptionalParameters().
|
static |
Definition at line 6344 of file FIRRTLOps.cpp.
References parseElideEmptyName().
|
static |
Definition at line 6365 of file FIRRTLOps.cpp.
References parseElideEmptyName().
| ParseResult parseSubfieldLikeOp | ( | OpAsmParser & | parser, |
| OperationState & | result | ||
| ) |
Definition at line 4995 of file FIRRTLOps.cpp.
References context.
|
static |
Definition at line 6374 of file FIRRTLOps.cpp.
References parseElideEmptyName().
|
static |
Definition at line 505 of file FIRRTLOps.cpp.
|
static |
Definition at line 6317 of file FIRRTLOps.cpp.
|
static |
Definition at line 2160 of file FIRRTLOps.cpp.
References printModulePorts().
|
static |
Helper to print domain kind: " of @Symbol".
Definition at line 55 of file FIRRTLOps.cpp.
Referenced by printModulePorts().
|
static |
Definition at line 6202 of file FIRRTLOps.cpp.
Referenced by printFIRRTLImplicitSSAName().
|
static |
Definition at line 6334 of file FIRRTLOps.cpp.
Referenced by printFPrintfAttrs(), printPrintfAttrs(), printStopAttrs(), and printVerifAttrs().
|
static |
Definition at line 6231 of file FIRRTLOps.cpp.
Referenced by printMemOp().
|
static |
Definition at line 6282 of file FIRRTLOps.cpp.
References circt::elideImplicitSSAName(), circt::hw::InnerSymbolTable::getInnerSymbolAttrName(), and printElideAnnotations().
|
static |
Definition at line 1535 of file FIRRTLOps.cpp.
References printModulePorts(), and printParameterList().
|
static |
Definition at line 6359 of file FIRRTLOps.cpp.
References printElideEmptyName().
|
static |
Always elide "ruw" and elide "annotations" if it exists or if it is empty.
Definition at line 6300 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 1237 of file FIRRTLOps.cpp.
References empty, circt::firrtl::direction::get(), and printDomainKind().
Referenced by printClassLike(), and printFModuleLikeOp().
|
static |
Definition at line 6263 of file FIRRTLOps.cpp.
|
static |
Print a paramter list for a module or instance.
Definition at line 1518 of file FIRRTLOps.cpp.
Referenced by printFModuleLikeOp().
|
static |
Definition at line 6349 of file FIRRTLOps.cpp.
References printElideEmptyName().
|
static |
Definition at line 6369 of file FIRRTLOps.cpp.
References printElideEmptyName().
|
static |
Definition at line 5080 of file FIRRTLOps.cpp.
|
static |
Definition at line 6378 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 73 of file FIRRTLOps.cpp.
References assert().
Referenced by erasePorts().
|
static |
Definition at line 2596 of file FIRRTLOps.cpp.
References assert().
|
static |
Definition at line 2577 of file FIRRTLOps.cpp.
References assert().
| const char * toString | ( | Flow | flow | ) |
Definition at line 214 of file FIRRTLOps.cpp.
Referenced by checkConnectFlow().
|
static |
Definition at line 1893 of file FIRRTLOps.cpp.
References verifyProbeType().
|
static |
Definition at line 1872 of file FIRRTLOps.cpp.
Referenced by verifyPortSymbolUses().
|
static |
Definition at line 5107 of file FIRRTLOps.cpp.