19 #include "mlir/IR/DialectImplementation.h"
20 #include "mlir/IR/OpDefinition.h"
21 #include "llvm/ADT/SmallString.h"
22 #include "llvm/ADT/TypeSwitch.h"
25 using namespace circt;
26 using namespace chirrtl;
27 using namespace firrtl;
29 #define GET_TYPEDEF_CLASSES
30 #include "circt/Dialect/FIRRTL/CHIRRTLTypes.cpp.inc"
36 void CMemoryType::print(AsmPrinter &printer)
const {
40 printer <<
", " << getNumElements() <<
">";
43 Type CMemoryType::parse(AsmParser &parser) {
47 parser.parseComma() || parser.parseInteger(
numElements) ||
48 parser.parseGreater())
57 return emitError() <<
"behavioral memory element type must be passive";
66 void CHIRRTLDialect::registerTypes() {
68 #define GET_TYPEDEF_LIST
69 #include "circt/Dialect/FIRRTL/CHIRRTLTypes.cpp.inc"
MlirType uint64_t numElements
static LogicalResult verify(Value clock, bool eventExists, mlir::Location loc)
ParseResult parseNestedBaseType(FIRRTLBaseType &result, AsmParser &parser)
void printNestedType(Type type, AsmPrinter &os)
Print a type defined by this dialect.
The InstanceGraph op interface, see InstanceGraphInterface.td for more details.