13 #include "llvm/ADT/TypeSwitch.h"
19 #define GET_TYPEDEF_CLASSES
20 #include "mlir/Dialect/SMT/IR/SMTTypes.cpp.inc"
22 void SMTDialect::registerTypes() {
24 #define GET_TYPEDEF_LIST
25 #include "mlir/Dialect/SMT/IR/SMTTypes.cpp.inc"
34 return isa<BoolType, BitVectorType, ArrayType, IntType, SortType,
46 return emitError() <<
"bit-vector must have at least a width of one";
57 return emitError() <<
"domain must be any SMT value type";
59 return emitError() <<
"range must be any SMT value type";
70 if (domainTypes.empty())
71 return emitError() <<
"domain must not be empty";
73 return emitError() <<
"domain types must be any non-function SMT type";
75 return emitError() <<
"range type must be any non-function SMT type";
85 StringAttr identifier,
89 <<
"sort parameter types must be any non-function SMT type";
This class represents a diagnostic that is inflight and set to be reported.
Instances of the Type class are uniqued, have an immutable identifier and an optional mutable compone...
bool isAnySMTValueType(mlir::Type type)
Returns whether the given type is an SMT value type.
bool isAnyNonFuncSMTValueType(mlir::Type type)
Returns whether the given type is an SMT value type (excluding functions).
Include the generated interface declarations.
InFlightDiagnostic emitError(Location loc)
Utility method to emit an error message using this location.
LogicalResult verify(Operation *op, bool verifyRecursively=true)
Perform (potentially expensive) checks of invariants, used to detect compiler bugs,...