36template <
typename EnumType>
47 using ::mlir::IntegerAttr::IntegerAttr;
48 static bool classof(::mlir::Attribute attr);
56template <
typename T,
typename>
61 template <
typename ParserT>
62 static FailureOr<::llzk::smt::BVCmpPredicate>
parse(ParserT &parser) {
64 std::string enumKeyword;
65 auto loc = parser.getCurrentLocation();
66 if (failed(parser.parseOptionalKeywordOrString(&enumKeyword)))
67 return parser.emitError(loc,
"expected keyword for smt bit-vector comparison predicate");
72 return parser.emitError(loc,
"invalid smt bit-vector comparison predicate specification: ") << enumKeyword;
81struct FieldParser<std::optional<::llzk::smt::BVCmpPredicate>, std::optional<::llzk::smt::BVCmpPredicate>> {
82 template <
typename ParserT>
83 static FailureOr<std::optional<::llzk::smt::BVCmpPredicate>>
parse(ParserT &parser) {
85 std::string enumKeyword;
86 auto loc = parser.getCurrentLocation();
87 if (failed(parser.parseOptionalKeywordOrString(&enumKeyword)))
88 return std::optional<::llzk::smt::BVCmpPredicate>{};
93 return parser.emitError(loc,
"invalid smt bit-vector comparison predicate specification: ") << enumKeyword;
100 auto valueStr = stringifyEnum(value);
101 return p << valueStr;
118 return StorageInfo::getHashValue(
static_cast<uint64_t
>(val));
121 static bool isEqual(const ::llzk::smt::BVCmpPredicate &lhs, const ::llzk::smt::BVCmpPredicate &rhs) {
149template <
typename EnumType>
160 using ::mlir::IntegerAttr::IntegerAttr;
161 static bool classof(::mlir::Attribute attr);
169template <
typename T,
typename>
174 template <
typename ParserT>
175 static FailureOr<::llzk::smt::IntPredicate>
parse(ParserT &parser) {
177 std::string enumKeyword;
178 auto loc = parser.getCurrentLocation();
179 if (failed(parser.parseOptionalKeywordOrString(&enumKeyword)))
180 return parser.emitError(loc,
"expected keyword for smt comparison predicate for integers");
185 return parser.emitError(loc,
"invalid smt comparison predicate for integers specification: ") << enumKeyword;
194struct FieldParser<std::optional<::llzk::smt::IntPredicate>, std::optional<::llzk::smt::IntPredicate>> {
195 template <
typename ParserT>
196 static FailureOr<std::optional<::llzk::smt::IntPredicate>>
parse(ParserT &parser) {
198 std::string enumKeyword;
199 auto loc = parser.getCurrentLocation();
200 if (failed(parser.parseOptionalKeywordOrString(&enumKeyword)))
201 return std::optional<::llzk::smt::IntPredicate>{};
206 return parser.emitError(loc,
"invalid smt comparison predicate for integers specification: ") << enumKeyword;
213 auto valueStr = stringifyEnum(value);
214 return p << valueStr;
231 return StorageInfo::getHashValue(
static_cast<uint64_t
>(val));
234 static bool isEqual(const ::llzk::smt::IntPredicate &lhs, const ::llzk::smt::IntPredicate &rhs) {
BVCmpPredicate getValue() const
static BVCmpPredicateAttr get(::mlir::MLIRContext *context, BVCmpPredicate val)
static bool classof(::mlir::Attribute attr)
static bool classof(::mlir::Attribute attr)
static IntPredicateAttr get(::mlir::MLIRContext *context, IntPredicate val)
IntPredicate getValue() const
raw_ostream & operator<<(raw_ostream &os, llvm::PointerUnion< mlir::Value, mlir::Operation * > ptr)
::std::optional< EnumType > symbolizeEnum(::llvm::StringRef)
inline ::llvm::StringRef stringifyEnum(BVCmpPredicate enumValue)
::llvm::StringRef stringifyBVCmpPredicate(BVCmpPredicate val)
inline ::std::optional< IntPredicate > symbolizeEnum< IntPredicate >(::llvm::StringRef str)
constexpr unsigned getMaxEnumValForBVCmpPredicate()
::llvm::StringRef stringifyIntPredicate(IntPredicate val)
::std::optional< IntPredicate > symbolizeIntPredicate(::llvm::StringRef str)
::std::optional< BVCmpPredicate > symbolizeBVCmpPredicate(::llvm::StringRef str)
constexpr unsigned getMaxEnumValForIntPredicate()
inline ::std::optional< BVCmpPredicate > symbolizeEnum< BVCmpPredicate >(::llvm::StringRef str)
static bool isEqual(const ::llzk::smt::BVCmpPredicate &lhs, const ::llzk::smt::BVCmpPredicate &rhs)
static unsigned getHashValue(const ::llzk::smt::BVCmpPredicate &val)
static inline ::llzk::smt::BVCmpPredicate getEmptyKey()
static inline ::llzk::smt::BVCmpPredicate getTombstoneKey()
::llvm::DenseMapInfo< uint64_t > StorageInfo
static unsigned getHashValue(const ::llzk::smt::IntPredicate &val)
static inline ::llzk::smt::IntPredicate getEmptyKey()
static inline ::llzk::smt::IntPredicate getTombstoneKey()
static bool isEqual(const ::llzk::smt::IntPredicate &lhs, const ::llzk::smt::IntPredicate &rhs)
::llvm::DenseMapInfo< uint64_t > StorageInfo
static FailureOr< std::optional<::llzk::smt::BVCmpPredicate > > parse(ParserT &parser)
static FailureOr< std::optional<::llzk::smt::IntPredicate > > parse(ParserT &parser)
static FailureOr<::llzk::smt::BVCmpPredicate > parse(ParserT &parser)
static FailureOr<::llzk::smt::IntPredicate > parse(ParserT &parser)