16 #include "mlir/IR/Builders.h"
17 #include "mlir/IR/DialectImplementation.h"
18 #include "llvm/ADT/TypeSwitch.h"
20 using namespace circt;
24 #define GET_TYPEDEF_CLASSES
25 #include "circt/Dialect/OM/OMTypes.cpp.inc"
27 void circt::om::OMDialect::registerTypes() {
29 #define GET_TYPEDEF_LIST
30 #include "circt/Dialect/OM/OMTypes.cpp.inc"
37 if (!llvm::isa<om::StringType, mlir::IntegerType>(keyType))
38 return diag() <<
"map key type must be either string or integer but got "
40 return mlir::success();
44 auto tuple = llvm::dyn_cast<mlir::TupleType>(type);
45 return tuple && tuple.getTypes().size() == 2 &&
46 llvm::isa<om::StringType, mlir::IntegerType>(tuple.getTypes().front());
static LogicalResult verify(Value clock, bool eventExists, mlir::Location loc)
bool isMapKeyValuePairType(mlir::Type)
The InstanceGraph op interface, see InstanceGraphInterface.td for more details.