19#include "mlir/IR/DialectImplementation.h"
20#include "mlir/IR/OpDefinition.h"
21#include "llvm/ADT/SmallString.h"
22#include "llvm/ADT/TypeSwitch.h"
26using namespace chirrtl;
27using namespace firrtl;
29#define GET_TYPEDEF_CLASSES
30#include "circt/Dialect/FIRRTL/CHIRRTLTypes.cpp.inc"
36void CMemoryType::print(AsmPrinter &printer)
const {
40 printer <<
", " << getNumElements() <<
">";
43Type CMemoryType::parse(AsmParser &parser) {
47 parser.parseComma() || parser.parseInteger(
numElements) ||
48 parser.parseGreater())
53LogicalResult CMemoryType::verify(function_ref<InFlightDiagnostic()> emitError,
57 return emitError() <<
"behavioral memory element type must be passive";
66void CHIRRTLDialect::registerTypes() {
68#define GET_TYPEDEF_LIST
69#include "circt/Dialect/FIRRTL/CHIRRTLTypes.cpp.inc"
MlirType uint64_t numElements
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.