42static ::llvm::LogicalResult __mlir_ods_local_type_constraint_Ops1(
43 ::mlir::Operation *op, ::mlir::Type type, ::llvm::StringRef valueKind,
44 unsigned valueIndex) {
46 return op->emitOpError(valueKind) <<
" #" << valueIndex
47 <<
" must be any LLZK type, excluding struct and string types, but got " << type;
49 return ::mlir::success();
52static ::llvm::LogicalResult __mlir_ods_local_type_constraint_Ops2(
53 ::mlir::Operation *op, ::mlir::Type type, ::llvm::StringRef valueKind,
54 unsigned valueIndex) {
55 if (!((::llvm::isa<::llzk::felt::FeltType>(type)))) {
56 return op->emitOpError(valueKind) <<
" #" << valueIndex
57 <<
" must be finite field element, but got " << type;
59 return ::mlir::success();
62static ::llvm::LogicalResult __mlir_ods_local_type_constraint_Ops3(
63 ::mlir::Operation *op, ::mlir::Type type, ::llvm::StringRef valueKind,
64 unsigned valueIndex) {
65 if (!((type.isSignlessInteger(1)))) {
66 return op->emitOpError(valueKind) <<
" #" << valueIndex
67 <<
" must be 1-bit signless integer, but got " << type;
69 return ::mlir::success();
72static ::llvm::LogicalResult __mlir_ods_local_type_constraint_Ops4(
73 ::mlir::Operation *op, ::mlir::Type type, ::llvm::StringRef valueKind,
74 unsigned valueIndex) {
76 return op->emitOpError(valueKind) <<
" #" << valueIndex
77 <<
" must be variadic of a valid LLZK type, but got " << type;
79 return ::mlir::success();
82static ::llvm::LogicalResult __mlir_ods_local_type_constraint_Ops5(
83 ::mlir::Operation *op, ::mlir::Type type, ::llvm::StringRef valueKind,
84 unsigned valueIndex) {
85 if (!((::llvm::isa<::mlir::IndexType>(type)))) {
86 return op->emitOpError(valueKind) <<
" #" << valueIndex
87 <<
" must be variadic of index, but got " << type;
89 return ::mlir::success();
92static ::llvm::LogicalResult __mlir_ods_local_type_constraint_Ops6(
93 ::mlir::Operation *op, ::mlir::Type type, ::llvm::StringRef valueKind,
94 unsigned valueIndex) {
96 return op->emitOpError(valueKind) <<
" #" << valueIndex
97 <<
" must be a valid LLZK type, but got " << type;
99 return ::mlir::success();
102static ::llvm::LogicalResult __mlir_ods_local_type_constraint_Ops7(
103 ::mlir::Operation *op, ::mlir::Type type, ::llvm::StringRef valueKind,
104 unsigned valueIndex) {
105 if (!((::llvm::isa<mlir::smt::BoolType>(type)))) {
106 return op->emitOpError(valueKind) <<
" #" << valueIndex
107 <<
" must be , but got " << type;
109 return ::mlir::success();
112static ::llvm::LogicalResult __mlir_ods_local_attr_constraint_Ops1(
113 ::mlir::Attribute attr, ::llvm::StringRef attrName, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError) {
114 if (attr && !((::llvm::isa<::mlir::StringAttr>(attr))))
115 return emitError() <<
"attribute '" << attrName
116 <<
"' failed to satisfy constraint: string attribute";
117 return ::mlir::success();
119static ::llvm::LogicalResult __mlir_ods_local_attr_constraint_Ops1(
120 ::mlir::Operation *op, ::mlir::Attribute attr, ::llvm::StringRef attrName) {
121 return __mlir_ods_local_attr_constraint_Ops1(attr, attrName, [op]() {
122 return op->emitOpError();
126static ::llvm::LogicalResult __mlir_ods_local_attr_constraint_Ops2(
127 ::mlir::Attribute attr, ::llvm::StringRef attrName, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError) {
128 if (attr && !((::llvm::isa<::mlir::SymbolRefAttr>(attr))))
129 return emitError() <<
"attribute '" << attrName
130 <<
"' failed to satisfy constraint: symbol reference attribute";
131 return ::mlir::success();
133static ::llvm::LogicalResult __mlir_ods_local_attr_constraint_Ops2(
134 ::mlir::Operation *op, ::mlir::Attribute attr, ::llvm::StringRef attrName) {
135 return __mlir_ods_local_attr_constraint_Ops2(attr, attrName, [op]() {
136 return op->emitOpError();
140static ::llvm::LogicalResult __mlir_ods_local_attr_constraint_Ops3(
141 ::mlir::Attribute attr, ::llvm::StringRef attrName, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError) {
142 if (attr && !(((::llvm::isa<::mlir::TypeAttr>(attr))) && ((::llvm::isa<::mlir::FunctionType>(::llvm::cast<::mlir::TypeAttr>(attr).getValue()))) && ((::llvm::isa<::mlir::FunctionType>(::llvm::cast<::mlir::TypeAttr>(attr).getValue())))))
143 return emitError() <<
"attribute '" << attrName
144 <<
"' failed to satisfy constraint: type attribute of function type";
145 return ::mlir::success();
147static ::llvm::LogicalResult __mlir_ods_local_attr_constraint_Ops3(
148 ::mlir::Operation *op, ::mlir::Attribute attr, ::llvm::StringRef attrName) {
149 return __mlir_ods_local_attr_constraint_Ops3(attr, attrName, [op]() {
150 return op->emitOpError();
154static ::llvm::LogicalResult __mlir_ods_local_attr_constraint_Ops4(
155 ::mlir::Attribute attr, ::llvm::StringRef attrName, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError) {
156 if (attr && !(((::llvm::isa<::mlir::ArrayAttr>(attr))) && (::llvm::all_of(::llvm::cast<::mlir::ArrayAttr>(attr), [&](::mlir::Attribute attr) {
return attr && ((::llvm::isa<::mlir::DictionaryAttr>(attr))); }))))
157 return emitError() <<
"attribute '" << attrName
158 <<
"' failed to satisfy constraint: Array of dictionary attributes";
159 return ::mlir::success();
161static ::llvm::LogicalResult __mlir_ods_local_attr_constraint_Ops4(
162 ::mlir::Operation *op, ::mlir::Attribute attr, ::llvm::StringRef attrName) {
163 return __mlir_ods_local_attr_constraint_Ops4(attr, attrName, [op]() {
164 return op->emitOpError();
168static ::llvm::LogicalResult __mlir_ods_local_attr_constraint_Ops5(
169 ::mlir::Attribute attr, ::llvm::StringRef attrName, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError) {
170 if (attr && !((::llvm::isa<::mlir::ArrayAttr>(attr))))
171 return emitError() <<
"attribute '" << attrName
172 <<
"' failed to satisfy constraint: array attribute";
173 return ::mlir::success();
175static ::llvm::LogicalResult __mlir_ods_local_attr_constraint_Ops5(
176 ::mlir::Operation *op, ::mlir::Attribute attr, ::llvm::StringRef attrName) {
177 return __mlir_ods_local_attr_constraint_Ops5(attr, attrName, [op]() {
178 return op->emitOpError();
182static ::llvm::LogicalResult __mlir_ods_local_attr_constraint_Ops6(
183 ::mlir::Attribute attr, ::llvm::StringRef attrName, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError) {
184 if (attr && !((::llvm::isa<::mlir::DenseI32ArrayAttr>(attr))))
185 return emitError() <<
"attribute '" << attrName
186 <<
"' failed to satisfy constraint: i32 dense array attribute";
187 return ::mlir::success();
189static ::llvm::LogicalResult __mlir_ods_local_attr_constraint_Ops6(
190 ::mlir::Operation *op, ::mlir::Attribute attr, ::llvm::StringRef attrName) {
191 return __mlir_ods_local_attr_constraint_Ops6(attr, attrName, [op]() {
192 return op->emitOpError();
196static ::llvm::LogicalResult __mlir_ods_local_attr_constraint_Ops7(
197 ::mlir::Attribute attr, ::llvm::StringRef attrName, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError) {
198 if (attr && !(((::llvm::isa<::mlir::ArrayAttr>(attr))) && (::llvm::all_of(::llvm::cast<::mlir::ArrayAttr>(attr), [&](::mlir::Attribute attr) {
return attr && (((::llvm::isa<::mlir::TypeAttr>(attr))) && ((::llvm::isa<::mlir::Type>(::llvm::cast<::mlir::TypeAttr>(attr).getValue()))) && ((
true))); }))))
199 return emitError() <<
"attribute '" << attrName
200 <<
"' failed to satisfy constraint: type array attribute";
201 return ::mlir::success();
203static ::llvm::LogicalResult __mlir_ods_local_attr_constraint_Ops7(
204 ::mlir::Operation *op, ::mlir::Attribute attr, ::llvm::StringRef attrName) {
205 return __mlir_ods_local_attr_constraint_Ops7(attr, attrName, [op]() {
206 return op->emitOpError();
210static ::llvm::LogicalResult __mlir_ods_local_region_constraint_Ops1(
211 ::mlir::Operation *op, ::mlir::Region ®ion, ::llvm::StringRef regionName,
212 unsigned regionIndex) {
214 return op->emitOpError(
"region #") << regionIndex
215 << (regionName.empty() ?
" " :
" ('" + regionName +
"') ")
216 <<
"failed to verify constraint: any region";
218 return ::mlir::success();
221static ::llvm::LogicalResult __mlir_ods_local_region_constraint_Ops2(
222 ::mlir::Operation *op, ::mlir::Region ®ion, ::llvm::StringRef regionName,
223 unsigned regionIndex) {
224 if (!((::llvm::hasNItems(region, 1)))) {
225 return op->emitOpError(
"region #") << regionIndex
226 << (regionName.empty() ?
" " :
" ('" + regionName +
"') ")
227 <<
"failed to verify constraint: region with 1 blocks";
229 return ::mlir::success();
247 return ::mlir::success();
251 ::mlir::DictionaryAttr dict = ::llvm::dyn_cast<::mlir::DictionaryAttr>(attr);
253 emitError() <<
"expected DictionaryAttr to set properties";
254 return ::mlir::failure();
256 return ::mlir::success();
260 ::mlir::SmallVector<::mlir::NamedAttribute> attrs;
261 ::mlir::Builder odsBuilder{ctx};
264 return odsBuilder.getDictionaryAttr(attrs);
269 using llvm::hash_value;
270 return llvm::hash_combine();
283::llvm::LogicalResult
AssumeDetOp::verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError) {
284 return ::mlir::success();
287void AssumeDetOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value hint) {
288 odsState.addOperands(hint);
293 build(builder, __state__, std::forward<
decltype(hint)>(hint));
294 auto __res__ = ::llvm::dyn_cast<AssumeDetOp>(builder.create(__state__));
295 assert(__res__ &&
"builder didn't return the right type");
300 return create(builder, builder.getLoc(), std::forward<
decltype(hint)>(hint));
303void AssumeDetOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value hint) {
304 odsState.addOperands(hint);
305 assert(resultTypes.size() == 0u &&
"mismatched number of results");
306 odsState.addTypes(resultTypes);
311 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(hint)>(hint));
312 auto __res__ = ::llvm::dyn_cast<AssumeDetOp>(builder.create(__state__));
313 assert(__res__ &&
"builder didn't return the right type");
318 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(hint)>(hint));
321void AssumeDetOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
322 assert(operands.size() == 1u &&
"mismatched number of parameters");
323 odsState.addOperands(operands);
324 odsState.addAttributes(attributes);
325 assert(resultTypes.size() == 0u &&
"mismatched number of return types");
326 odsState.addTypes(resultTypes);
329AssumeDetOp AssumeDetOp::create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
331 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(attributes)>(attributes));
332 auto __res__ = ::llvm::dyn_cast<AssumeDetOp>(builder.create(__state__));
333 assert(__res__ &&
"builder didn't return the right type");
337AssumeDetOp AssumeDetOp::create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
338 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(attributes)>(attributes));
341void AssumeDetOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands,
const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes) {
342 assert(operands.size() == 1u &&
"mismatched number of parameters");
343 odsState.addOperands(operands);
344 odsState.useProperties(
const_cast<Properties&
>(properties));
345 odsState.addAttributes(discardableAttributes);
346 assert(resultTypes.size() == 0u &&
"mismatched number of return types");
347 odsState.addTypes(resultTypes);
350AssumeDetOp AssumeDetOp::create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands,
const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes) {
352 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(properties)>(properties), std::forward<
decltype(discardableAttributes)>(discardableAttributes));
353 auto __res__ = ::llvm::dyn_cast<AssumeDetOp>(builder.create(__state__));
354 assert(__res__ &&
"builder didn't return the right type");
358AssumeDetOp AssumeDetOp::create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands,
const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes) {
359 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(properties)>(properties), std::forward<
decltype(discardableAttributes)>(discardableAttributes));
364 unsigned index = 0; (void)index;
367 for (
auto v : valueGroup0) {
368 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops1(*
this, v.getType(),
"operand", index++)))
369 return ::mlir::failure();
372 return ::mlir::success();
380 ::mlir::OpAsmParser::UnresolvedOperand hintRawOperand{};
381 ::llvm::ArrayRef<::mlir::OpAsmParser::UnresolvedOperand> hintOperands(&hintRawOperand, 1); ::llvm::SMLoc hintOperandsLoc;
382 (void)hintOperandsLoc;
383 ::mlir::Type hintRawType{};
384 ::llvm::ArrayRef<::mlir::Type> hintTypes(&hintRawType, 1);
386 hintOperandsLoc = parser.getCurrentLocation();
387 if (parser.parseOperand(hintRawOperand))
388 return ::mlir::failure();
390 auto loc = parser.getCurrentLocation();(void)loc;
391 if (parser.parseOptionalAttrDict(result.attributes))
392 return ::mlir::failure();
394 return parser.emitError(loc) <<
"'" << result.name.getStringRef() <<
"' op ";
396 return ::mlir::failure();
398 if (parser.parseColon())
399 return ::mlir::failure();
403 if (parser.parseCustomTypeWithFallback(type))
404 return ::mlir::failure();
407 if (parser.resolveOperands(hintOperands, hintTypes, hintOperandsLoc, result.operands))
408 return ::mlir::failure();
409 return ::mlir::success();
415 ::llvm::SmallVector<::llvm::StringRef, 2> elidedAttrs;
416 _odsPrinter.printOptionalAttrDict((*this)->getAttrs(), elidedAttrs);
417 _odsPrinter <<
' ' <<
":";
420 auto type =
getHint().getType();
421 if (
auto validType = ::llvm::dyn_cast<::mlir::Type>(type))
422 _odsPrinter.printStrippedAttrOrType(validType);
430static void getEffects(
431 ::mlir::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects
433 effects.emplace_back(::mlir::MemoryEffects::Write::get());
455 return ::mlir::success();
459 ::mlir::DictionaryAttr dict = ::llvm::dyn_cast<::mlir::DictionaryAttr>(attr);
461 emitError() <<
"expected DictionaryAttr to set properties";
462 return ::mlir::failure();
464 return ::mlir::success();
468 ::mlir::SmallVector<::mlir::NamedAttribute> attrs;
469 ::mlir::Builder odsBuilder{ctx};
472 return odsBuilder.getDictionaryAttr(attrs);
477 using llvm::hash_value;
478 return llvm::hash_combine();
492 return ::mlir::success();
500 build(builder, __state__);
501 auto __res__ = ::llvm::dyn_cast<ContractEndOp>(builder.create(__state__));
502 assert(__res__ &&
"builder didn't return the right type");
507 return create(builder, builder.getLoc());
510void ContractEndOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes) {
511 assert(resultTypes.size() == 0u &&
"mismatched number of results");
512 odsState.addTypes(resultTypes);
517 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes));
518 auto __res__ = ::llvm::dyn_cast<ContractEndOp>(builder.create(__state__));
519 assert(__res__ &&
"builder didn't return the right type");
524 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes));
527void ContractEndOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
528 assert(operands.size() == 0u &&
"mismatched number of parameters");
529 odsState.addOperands(operands);
530 odsState.addAttributes(attributes);
531 assert(resultTypes.size() == 0u &&
"mismatched number of return types");
532 odsState.addTypes(resultTypes);
535ContractEndOp ContractEndOp::create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
537 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(attributes)>(attributes));
538 auto __res__ = ::llvm::dyn_cast<ContractEndOp>(builder.create(__state__));
539 assert(__res__ &&
"builder didn't return the right type");
543ContractEndOp ContractEndOp::create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
544 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(attributes)>(attributes));
547void ContractEndOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands,
const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes) {
548 assert(operands.size() == 0u &&
"mismatched number of parameters");
549 odsState.addOperands(operands);
550 odsState.useProperties(
const_cast<Properties&
>(properties));
551 odsState.addAttributes(discardableAttributes);
552 assert(resultTypes.size() == 0u &&
"mismatched number of return types");
553 odsState.addTypes(resultTypes);
556ContractEndOp ContractEndOp::create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands,
const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes) {
558 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(properties)>(properties), std::forward<
decltype(discardableAttributes)>(discardableAttributes));
559 auto __res__ = ::llvm::dyn_cast<ContractEndOp>(builder.create(__state__));
560 assert(__res__ &&
"builder didn't return the right type");
565 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(properties)>(properties), std::forward<
decltype(discardableAttributes)>(discardableAttributes));
569 return ::mlir::success();
578 auto loc = parser.getCurrentLocation();(void)loc;
579 if (parser.parseOptionalAttrDict(result.attributes))
580 return ::mlir::failure();
582 return parser.emitError(loc) <<
"'" << result.name.getStringRef() <<
"' op ";
584 return ::mlir::failure();
586 return ::mlir::success();
590 ::llvm::SmallVector<::llvm::StringRef, 2> elidedAttrs;
591 _odsPrinter.printOptionalAttrDict((*this)->getAttrs(), elidedAttrs);
614 return attr.getValue();
624 return ::llvm::cast<::mlir::FunctionType>(attr.getValue());
629 return attr ? ::std::optional< ::mlir::ArrayAttr >(attr) : (::std::nullopt);
634 return attr ? ::std::optional< ::mlir::ArrayAttr >(attr) : (::std::nullopt);
644 if (!tblgen_function_type)
return emitError(loc,
"'verif.contract' op requires attribute 'function_type'");
647 if (!tblgen_sym_name)
return emitError(loc,
"'verif.contract' op requires attribute 'sym_name'");
649 if (!tblgen_target)
return emitError(loc,
"'verif.contract' op requires attribute 'target'");
651 if (tblgen_sym_name && !((::llvm::isa<::mlir::StringAttr>(tblgen_sym_name))))
652 return emitError(loc,
"'verif.contract' op attribute 'sym_name' failed to satisfy constraint: string attribute");
654 if (tblgen_target && !((::llvm::isa<::mlir::SymbolRefAttr>(tblgen_target))))
655 return emitError(loc,
"'verif.contract' op attribute 'target' failed to satisfy constraint: symbol reference attribute");
657 if (tblgen_function_type && !(((::llvm::isa<::mlir::TypeAttr>(tblgen_function_type))) && ((::llvm::isa<::mlir::FunctionType>(::llvm::cast<::mlir::TypeAttr>(tblgen_function_type).getValue()))) && ((::llvm::isa<::mlir::FunctionType>(::llvm::cast<::mlir::TypeAttr>(tblgen_function_type).getValue())))))
658 return emitError(loc,
"'verif.contract' op attribute 'function_type' failed to satisfy constraint: type attribute of function type");
660 if (tblgen_arg_attrs && !(((::llvm::isa<::mlir::ArrayAttr>(tblgen_arg_attrs))) && (::llvm::all_of(::llvm::cast<::mlir::ArrayAttr>(tblgen_arg_attrs), [&](::mlir::Attribute attr) {
return attr && ((::llvm::isa<::mlir::DictionaryAttr>(attr))); }))))
661 return emitError(loc,
"'verif.contract' op attribute 'arg_attrs' failed to satisfy constraint: Array of dictionary attributes");
663 if (tblgen_res_attrs && !(((::llvm::isa<::mlir::ArrayAttr>(tblgen_res_attrs))) && (::llvm::all_of(::llvm::cast<::mlir::ArrayAttr>(tblgen_res_attrs), [&](::mlir::Attribute attr) {
return attr && ((::llvm::isa<::mlir::DictionaryAttr>(attr))); }))))
664 return emitError(loc,
"'verif.contract' op attribute 'res_attrs' failed to satisfy constraint: Array of dictionary attributes");
665 return ::mlir::success();
669 ::mlir::DictionaryAttr dict = ::llvm::dyn_cast<::mlir::DictionaryAttr>(attr);
671 emitError() <<
"expected DictionaryAttr to set properties";
672 return ::mlir::failure();
677 auto attr = dict.get(
"arg_attrs");
679 auto convertedAttr = ::llvm::dyn_cast<std::remove_reference_t<
decltype(propStorage)>>(attr);
681 propStorage = convertedAttr;
683 emitError() <<
"Invalid attribute `arg_attrs` in property conversion: " << attr;
684 return ::mlir::failure();
691 auto attr = dict.get(
"function_type");
693 auto convertedAttr = ::llvm::dyn_cast<std::remove_reference_t<
decltype(propStorage)>>(attr);
695 propStorage = convertedAttr;
697 emitError() <<
"Invalid attribute `function_type` in property conversion: " << attr;
698 return ::mlir::failure();
705 auto attr = dict.get(
"res_attrs");
707 auto convertedAttr = ::llvm::dyn_cast<std::remove_reference_t<
decltype(propStorage)>>(attr);
709 propStorage = convertedAttr;
711 emitError() <<
"Invalid attribute `res_attrs` in property conversion: " << attr;
712 return ::mlir::failure();
719 auto attr = dict.get(
"sym_name");
721 auto convertedAttr = ::llvm::dyn_cast<std::remove_reference_t<
decltype(propStorage)>>(attr);
723 propStorage = convertedAttr;
725 emitError() <<
"Invalid attribute `sym_name` in property conversion: " << attr;
726 return ::mlir::failure();
732 auto &propStorage = prop.
target;
733 auto attr = dict.get(
"target");
735 auto convertedAttr = ::llvm::dyn_cast<std::remove_reference_t<
decltype(propStorage)>>(attr);
737 propStorage = convertedAttr;
739 emitError() <<
"Invalid attribute `target` in property conversion: " << attr;
740 return ::mlir::failure();
744 return ::mlir::success();
748 ::mlir::SmallVector<::mlir::NamedAttribute> attrs;
749 ::mlir::Builder odsBuilder{ctx};
752 const auto &propStorage = prop.
arg_attrs;
754 attrs.push_back(odsBuilder.getNamedAttr(
"arg_attrs",
761 attrs.push_back(odsBuilder.getNamedAttr(
"function_type",
766 const auto &propStorage = prop.
res_attrs;
768 attrs.push_back(odsBuilder.getNamedAttr(
"res_attrs",
773 const auto &propStorage = prop.
sym_name;
775 attrs.push_back(odsBuilder.getNamedAttr(
"sym_name",
780 const auto &propStorage = prop.
target;
782 attrs.push_back(odsBuilder.getNamedAttr(
"target",
787 return odsBuilder.getDictionaryAttr(attrs);
792 using llvm::hash_value;
793 return llvm::hash_combine(
794 llvm::hash_value(prop.
arg_attrs.getAsOpaquePointer()),
796 llvm::hash_value(prop.
res_attrs.getAsOpaquePointer()),
797 llvm::hash_value(prop.
sym_name.getAsOpaquePointer()),
798 llvm::hash_value(prop.
target.getAsOpaquePointer()));
802 if (name ==
"arg_attrs")
805 if (name ==
"function_type")
808 if (name ==
"res_attrs")
811 if (name ==
"sym_name")
814 if (name ==
"target")
820 if (name ==
"arg_attrs") {
821 prop.
arg_attrs = ::llvm::dyn_cast_or_null<std::remove_reference_t<
decltype(prop.
arg_attrs)>>(value);
825 if (name ==
"function_type") {
830 if (name ==
"res_attrs") {
831 prop.
res_attrs = ::llvm::dyn_cast_or_null<std::remove_reference_t<
decltype(prop.
res_attrs)>>(value);
835 if (name ==
"sym_name") {
836 prop.
sym_name = ::llvm::dyn_cast_or_null<std::remove_reference_t<
decltype(prop.
sym_name)>>(value);
840 if (name ==
"target") {
841 prop.
target = ::llvm::dyn_cast_or_null<std::remove_reference_t<
decltype(prop.
target)>>(value);
858::llvm::LogicalResult
ContractOp::verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError) {
861 if (attr && ::mlir::failed(__mlir_ods_local_attr_constraint_Ops4(attr,
"arg_attrs", emitError)))
862 return ::mlir::failure();
867 if (attr && ::mlir::failed(__mlir_ods_local_attr_constraint_Ops3(attr,
"function_type", emitError)))
868 return ::mlir::failure();
873 if (attr && ::mlir::failed(__mlir_ods_local_attr_constraint_Ops4(attr,
"res_attrs", emitError)))
874 return ::mlir::failure();
879 if (attr && ::mlir::failed(__mlir_ods_local_attr_constraint_Ops1(attr,
"sym_name", emitError)))
880 return ::mlir::failure();
885 if (attr && ::mlir::failed(__mlir_ods_local_attr_constraint_Ops2(attr,
"target", emitError)))
886 return ::mlir::failure();
888 return ::mlir::success();
892 auto &prop = state.getOrAddProperties<
Properties>(); (void)prop;
893 if (::mlir::failed(reader.readOptionalAttribute(prop.
arg_attrs)))
894 return ::mlir::failure();
896 if (::mlir::failed(reader.readAttribute(prop.
function_type)))
897 return ::mlir::failure();
899 if (::mlir::failed(reader.readOptionalAttribute(prop.
res_attrs)))
900 return ::mlir::failure();
902 if (::mlir::failed(reader.readAttribute(prop.
sym_name)))
903 return ::mlir::failure();
905 if (::mlir::failed(reader.readAttribute(prop.
target)))
906 return ::mlir::failure();
907 return ::mlir::success();
911 auto &prop = getProperties(); (void)prop;
913 writer.writeOptionalAttribute(prop.
arg_attrs);
916 writer.writeOptionalAttribute(prop.
res_attrs);
917 writer.writeAttribute(prop.
sym_name);
918 writer.writeAttribute(prop.
target);
923 return attr.getValue();
933 return ::llvm::cast<::mlir::FunctionType>(attr.getValue());
938 return attr ? ::std::optional< ::mlir::ArrayAttr >(attr) : (::std::nullopt);
943 return attr ? ::std::optional< ::mlir::ArrayAttr >(attr) : (::std::nullopt);
947 getProperties().sym_name = ::mlir::Builder((*this)->getContext()).getStringAttr(attrValue);
951 getProperties().function_type = ::mlir::TypeAttr::get(attrValue);
954void ContractOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::StringAttr sym_name, ::mlir::SymbolRefAttr target, ::mlir::TypeAttr function_type, ::mlir::ArrayAttr arg_attrs, ::mlir::ArrayAttr res_attrs) {
955 build(odsBuilder, odsState, ::mlir::TypeRange {}, sym_name, target, function_type, arg_attrs,
960ContractOp ContractOp::create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::StringAttr sym_name, ::mlir::SymbolRefAttr target, ::mlir::TypeAttr function_type, ::mlir::ArrayAttr arg_attrs, ::mlir::ArrayAttr res_attrs) {
962 build(builder, __state__, std::forward<
decltype(sym_name)>(sym_name), std::forward<
decltype(target)>(target), std::forward<
decltype(function_type)>(function_type), std::forward<
decltype(arg_attrs)>(arg_attrs), std::forward<
decltype(res_attrs)>(res_attrs));
963 auto __res__ = ::llvm::dyn_cast<ContractOp>(builder.create(__state__));
964 assert(__res__ &&
"builder didn't return the right type");
968ContractOp ContractOp::create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::StringAttr sym_name, ::mlir::SymbolRefAttr target, ::mlir::TypeAttr function_type, ::mlir::ArrayAttr arg_attrs, ::mlir::ArrayAttr res_attrs) {
969 return create(builder, builder.getLoc(), std::forward<
decltype(sym_name)>(sym_name), std::forward<
decltype(target)>(target), std::forward<
decltype(function_type)>(function_type), std::forward<
decltype(arg_attrs)>(arg_attrs), std::forward<
decltype(res_attrs)>(res_attrs));
972void ContractOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::StringAttr sym_name, ::mlir::SymbolRefAttr target, ::mlir::TypeAttr function_type, ::mlir::ArrayAttr arg_attrs, ::mlir::ArrayAttr res_attrs) {
973 odsState.getOrAddProperties<
Properties>().sym_name = sym_name;
974 odsState.getOrAddProperties<
Properties>().target = target;
975 odsState.getOrAddProperties<
Properties>().function_type = function_type;
977 odsState.getOrAddProperties<
Properties>().arg_attrs = arg_attrs;
980 odsState.getOrAddProperties<
Properties>().res_attrs = res_attrs;
983 odsBuilder, odsState, ::llvm::cast<::mlir::FunctionType>(function_type.getValue())
985 assert(resultTypes.size() == 0u &&
"mismatched number of results");
986 odsState.addTypes(resultTypes);
990ContractOp ContractOp::create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::StringAttr sym_name, ::mlir::SymbolRefAttr target, ::mlir::TypeAttr function_type, ::mlir::ArrayAttr arg_attrs, ::mlir::ArrayAttr res_attrs) {
992 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(sym_name)>(sym_name), std::forward<
decltype(target)>(target), std::forward<
decltype(function_type)>(function_type), std::forward<
decltype(arg_attrs)>(arg_attrs), std::forward<
decltype(res_attrs)>(res_attrs));
993 auto __res__ = ::llvm::dyn_cast<ContractOp>(builder.create(__state__));
994 assert(__res__ &&
"builder didn't return the right type");
998ContractOp ContractOp::create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::StringAttr sym_name, ::mlir::SymbolRefAttr target, ::mlir::TypeAttr function_type, ::mlir::ArrayAttr arg_attrs, ::mlir::ArrayAttr res_attrs) {
999 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(sym_name)>(sym_name), std::forward<
decltype(target)>(target), std::forward<
decltype(function_type)>(function_type), std::forward<
decltype(arg_attrs)>(arg_attrs), std::forward<
decltype(res_attrs)>(res_attrs));
1002void ContractOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llvm::StringRef sym_name, ::mlir::SymbolRefAttr target, ::mlir::FunctionType function_type, ::mlir::ArrayAttr arg_attrs, ::mlir::ArrayAttr res_attrs) {
1003 build(odsBuilder, odsState, ::mlir::TypeRange {}, sym_name, target, function_type, arg_attrs,
1008ContractOp ContractOp::create(::mlir::OpBuilder &builder, ::mlir::Location location, ::llvm::StringRef sym_name, ::mlir::SymbolRefAttr target, ::mlir::FunctionType function_type, ::mlir::ArrayAttr arg_attrs, ::mlir::ArrayAttr res_attrs) {
1010 build(builder, __state__, std::forward<
decltype(sym_name)>(sym_name), std::forward<
decltype(target)>(target), std::forward<
decltype(function_type)>(function_type), std::forward<
decltype(arg_attrs)>(arg_attrs), std::forward<
decltype(res_attrs)>(res_attrs));
1011 auto __res__ = ::llvm::dyn_cast<ContractOp>(builder.create(__state__));
1012 assert(__res__ &&
"builder didn't return the right type");
1016ContractOp ContractOp::create(::mlir::ImplicitLocOpBuilder &builder, ::llvm::StringRef sym_name, ::mlir::SymbolRefAttr target, ::mlir::FunctionType function_type, ::mlir::ArrayAttr arg_attrs, ::mlir::ArrayAttr res_attrs) {
1017 return create(builder, builder.getLoc(), std::forward<
decltype(sym_name)>(sym_name), std::forward<
decltype(target)>(target), std::forward<
decltype(function_type)>(function_type), std::forward<
decltype(arg_attrs)>(arg_attrs), std::forward<
decltype(res_attrs)>(res_attrs));
1020void ContractOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::llvm::StringRef sym_name, ::mlir::SymbolRefAttr target, ::mlir::FunctionType function_type, ::mlir::ArrayAttr arg_attrs, ::mlir::ArrayAttr res_attrs) {
1021 odsState.getOrAddProperties<
Properties>().sym_name = odsBuilder.getStringAttr(sym_name);
1022 odsState.getOrAddProperties<
Properties>().target = target;
1023 odsState.getOrAddProperties<
Properties>().function_type = ::mlir::TypeAttr::get(function_type);
1025 odsState.getOrAddProperties<
Properties>().arg_attrs = arg_attrs;
1028 odsState.getOrAddProperties<
Properties>().res_attrs = res_attrs;
1030 initializeEmptyBody(odsBuilder, odsState, function_type);
1031 assert(resultTypes.size() == 0u &&
"mismatched number of results");
1032 odsState.addTypes(resultTypes);
1036ContractOp ContractOp::create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::llvm::StringRef sym_name, ::mlir::SymbolRefAttr target, ::mlir::FunctionType function_type, ::mlir::ArrayAttr arg_attrs, ::mlir::ArrayAttr res_attrs) {
1038 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(sym_name)>(sym_name), std::forward<
decltype(target)>(target), std::forward<
decltype(function_type)>(function_type), std::forward<
decltype(arg_attrs)>(arg_attrs), std::forward<
decltype(res_attrs)>(res_attrs));
1039 auto __res__ = ::llvm::dyn_cast<ContractOp>(builder.create(__state__));
1040 assert(__res__ &&
"builder didn't return the right type");
1044ContractOp ContractOp::create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::llvm::StringRef sym_name, ::mlir::SymbolRefAttr target, ::mlir::FunctionType function_type, ::mlir::ArrayAttr arg_attrs, ::mlir::ArrayAttr res_attrs) {
1045 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(sym_name)>(sym_name), std::forward<
decltype(target)>(target), std::forward<
decltype(function_type)>(function_type), std::forward<
decltype(arg_attrs)>(arg_attrs), std::forward<
decltype(res_attrs)>(res_attrs));
1050 build(builder, __state__, std::forward<
decltype(name)>(name), std::forward<
decltype(target)>(target));
1051 auto __res__ = ::llvm::dyn_cast<ContractOp>(builder.create(__state__));
1052 assert(__res__ &&
"builder didn't return the right type");
1057 return create(builder, builder.getLoc(), std::forward<
decltype(name)>(name), std::forward<
decltype(target)>(target));
1062 build(builder, __state__, std::forward<
decltype(name)>(name), std::forward<
decltype(target)>(target));
1063 auto __res__ = ::llvm::dyn_cast<ContractOp>(builder.create(__state__));
1064 assert(__res__ &&
"builder didn't return the right type");
1069 return create(builder, builder.getLoc(), std::forward<
decltype(name)>(name), std::forward<
decltype(target)>(target));
1073 auto tblgen_arg_attrs = getProperties().arg_attrs; (void)tblgen_arg_attrs;
1074 auto tblgen_function_type = getProperties().function_type; (void)tblgen_function_type;
1075 if (!tblgen_function_type)
return emitOpError(
"requires attribute 'function_type'");
1076 auto tblgen_res_attrs = getProperties().res_attrs; (void)tblgen_res_attrs;
1077 auto tblgen_sym_name = getProperties().sym_name; (void)tblgen_sym_name;
1078 if (!tblgen_sym_name)
return emitOpError(
"requires attribute 'sym_name'");
1079 auto tblgen_target = getProperties().target; (void)tblgen_target;
1080 if (!tblgen_target)
return emitOpError(
"requires attribute 'target'");
1082 if (::mlir::failed(__mlir_ods_local_attr_constraint_Ops1(*
this, tblgen_sym_name,
"sym_name")))
1083 return ::mlir::failure();
1085 if (::mlir::failed(__mlir_ods_local_attr_constraint_Ops2(*
this, tblgen_target,
"target")))
1086 return ::mlir::failure();
1088 if (::mlir::failed(__mlir_ods_local_attr_constraint_Ops3(*
this, tblgen_function_type,
"function_type")))
1089 return ::mlir::failure();
1091 if (::mlir::failed(__mlir_ods_local_attr_constraint_Ops4(*
this, tblgen_arg_attrs,
"arg_attrs")))
1092 return ::mlir::failure();
1094 if (::mlir::failed(__mlir_ods_local_attr_constraint_Ops4(*
this, tblgen_res_attrs,
"res_attrs")))
1095 return ::mlir::failure();
1097 unsigned index = 0; (void)index;
1099 for (
auto ®ion : ::llvm::MutableArrayRef((*this)->getRegion(0)))
1100 if (::mlir::failed(__mlir_ods_local_region_constraint_Ops1(*
this, region,
"body", index++)))
1101 return ::mlir::failure();
1103 return ::mlir::success();
1108 return ::mlir::success();
1109 return ::mlir::failure();
1113 ::mlir::DictionaryAttr dict = ::llvm::dyn_cast<::mlir::DictionaryAttr>(attr);
1115 emitError() <<
"expected DictionaryAttr to set properties";
1116 return ::mlir::failure();
1120 ::mlir::DenseSet<::mlir::StringAttr> usedKeys;
1121 ::mlir::MLIRContext *ctx = dict.getContext();
1126 auto sym_nameAttrName = ::mlir::StringAttr::get(ctx,
"sym_name");
1127 auto attr = dict.get(sym_nameAttrName);
1128 usedKeys.insert(sym_nameAttrName);
1131 emitError() <<
"expected key entry for sym_name in DictionaryAttr to set "
1133 return ::mlir::failure();
1135 auto convertedAttr = ::llvm::dyn_cast<std::remove_reference_t<
decltype(propStorage)>>(attr);
1136 if (convertedAttr) {
1137 propStorage = convertedAttr;
1139 emitError() <<
"Invalid attribute `sym_name` in property conversion: " << attr;
1140 return ::mlir::failure();
1146 auto &propStorage = prop.
target;
1147 auto targetAttrName = ::mlir::StringAttr::get(ctx,
"target");
1148 auto attr = dict.get(targetAttrName);
1149 usedKeys.insert(targetAttrName);
1152 emitError() <<
"expected key entry for target in DictionaryAttr to set "
1154 return ::mlir::failure();
1156 auto convertedAttr = ::llvm::dyn_cast<std::remove_reference_t<
decltype(propStorage)>>(attr);
1157 if (convertedAttr) {
1158 propStorage = convertedAttr;
1160 emitError() <<
"Invalid attribute `target` in property conversion: " << attr;
1161 return ::mlir::failure();
1168 auto function_typeAttrName = ::mlir::StringAttr::get(ctx,
"function_type");
1169 auto attr = dict.get(function_typeAttrName);
1170 usedKeys.insert(function_typeAttrName);
1173 emitError() <<
"expected key entry for function_type in DictionaryAttr to set "
1175 return ::mlir::failure();
1177 auto convertedAttr = ::llvm::dyn_cast<std::remove_reference_t<
decltype(propStorage)>>(attr);
1178 if (convertedAttr) {
1179 propStorage = convertedAttr;
1181 emitError() <<
"Invalid attribute `function_type` in property conversion: " << attr;
1182 return ::mlir::failure();
1189 auto arg_attrsAttrName = ::mlir::StringAttr::get(ctx,
"arg_attrs");
1190 auto attr = dict.get(arg_attrsAttrName);
1191 usedKeys.insert(arg_attrsAttrName);
1192 if (attr ||
false) {
1194 emitError() <<
"expected key entry for arg_attrs in DictionaryAttr to set "
1196 return ::mlir::failure();
1198 auto convertedAttr = ::llvm::dyn_cast<std::remove_reference_t<
decltype(propStorage)>>(attr);
1199 if (convertedAttr) {
1200 propStorage = convertedAttr;
1202 emitError() <<
"Invalid attribute `arg_attrs` in property conversion: " << attr;
1203 return ::mlir::failure();
1210 auto res_attrsAttrName = ::mlir::StringAttr::get(ctx,
"res_attrs");
1211 auto attr = dict.get(res_attrsAttrName);
1212 usedKeys.insert(res_attrsAttrName);
1213 if (attr ||
false) {
1215 emitError() <<
"expected key entry for res_attrs in DictionaryAttr to set "
1217 return ::mlir::failure();
1219 auto convertedAttr = ::llvm::dyn_cast<std::remove_reference_t<
decltype(propStorage)>>(attr);
1220 if (convertedAttr) {
1221 propStorage = convertedAttr;
1223 emitError() <<
"Invalid attribute `res_attrs` in property conversion: " << attr;
1224 return ::mlir::failure();
1229 for (::mlir::NamedAttribute attr : dict) {
1230 if (!usedKeys.contains(attr.getName()))
1231 return emitError() <<
"unknown key '" << attr.getName() <<
1232 "' when parsing properties dictionary";
1234 return ::mlir::success();
1258 return ::mlir::success();
1262 ::mlir::DictionaryAttr dict = ::llvm::dyn_cast<::mlir::DictionaryAttr>(attr);
1264 emitError() <<
"expected DictionaryAttr to set properties";
1265 return ::mlir::failure();
1267 return ::mlir::success();
1271 ::mlir::SmallVector<::mlir::NamedAttribute> attrs;
1272 ::mlir::Builder odsBuilder{ctx};
1275 return odsBuilder.getDictionaryAttr(attrs);
1280 using llvm::hash_value;
1281 return llvm::hash_combine();
1285 return std::nullopt;
1294::llvm::LogicalResult
DecreasesOp::verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError) {
1295 return ::mlir::success();
1298void DecreasesOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value value) {
1299 odsState.addOperands(value);
1304 build(builder, __state__, std::forward<
decltype(value)>(value));
1305 auto __res__ = ::llvm::dyn_cast<DecreasesOp>(builder.create(__state__));
1306 assert(__res__ &&
"builder didn't return the right type");
1311 return create(builder, builder.getLoc(), std::forward<
decltype(value)>(value));
1314void DecreasesOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value value) {
1315 odsState.addOperands(value);
1316 assert(resultTypes.size() == 0u &&
"mismatched number of results");
1317 odsState.addTypes(resultTypes);
1322 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(value)>(value));
1323 auto __res__ = ::llvm::dyn_cast<DecreasesOp>(builder.create(__state__));
1324 assert(__res__ &&
"builder didn't return the right type");
1329 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(value)>(value));
1332void DecreasesOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
1333 assert(operands.size() == 1u &&
"mismatched number of parameters");
1334 odsState.addOperands(operands);
1335 odsState.addAttributes(attributes);
1336 assert(resultTypes.size() == 0u &&
"mismatched number of return types");
1337 odsState.addTypes(resultTypes);
1340DecreasesOp DecreasesOp::create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
1342 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(attributes)>(attributes));
1343 auto __res__ = ::llvm::dyn_cast<DecreasesOp>(builder.create(__state__));
1344 assert(__res__ &&
"builder didn't return the right type");
1348DecreasesOp DecreasesOp::create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
1349 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(attributes)>(attributes));
1352void DecreasesOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands,
const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes) {
1353 assert(operands.size() == 1u &&
"mismatched number of parameters");
1354 odsState.addOperands(operands);
1355 odsState.useProperties(
const_cast<Properties&
>(properties));
1356 odsState.addAttributes(discardableAttributes);
1357 assert(resultTypes.size() == 0u &&
"mismatched number of return types");
1358 odsState.addTypes(resultTypes);
1361DecreasesOp DecreasesOp::create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands,
const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes) {
1363 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(properties)>(properties), std::forward<
decltype(discardableAttributes)>(discardableAttributes));
1364 auto __res__ = ::llvm::dyn_cast<DecreasesOp>(builder.create(__state__));
1365 assert(__res__ &&
"builder didn't return the right type");
1369DecreasesOp DecreasesOp::create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands,
const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes) {
1370 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(properties)>(properties), std::forward<
decltype(discardableAttributes)>(discardableAttributes));
1375 unsigned index = 0; (void)index;
1378 for (
auto v : valueGroup0) {
1379 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops2(*
this, v.getType(),
"operand", index++)))
1380 return ::mlir::failure();
1383 return ::mlir::success();
1391 ::mlir::OpAsmParser::UnresolvedOperand valueRawOperand{};
1392 ::llvm::ArrayRef<::mlir::OpAsmParser::UnresolvedOperand> valueOperands(&valueRawOperand, 1); ::llvm::SMLoc valueOperandsLoc;
1393 (void)valueOperandsLoc;
1395 valueOperandsLoc = parser.getCurrentLocation();
1396 if (parser.parseOperand(valueRawOperand))
1397 return ::mlir::failure();
1399 auto loc = parser.getCurrentLocation();(void)loc;
1400 if (parser.parseOptionalAttrDict(result.attributes))
1401 return ::mlir::failure();
1403 return parser.emitError(loc) <<
"'" << result.name.getStringRef() <<
"' op ";
1405 return ::mlir::failure();
1408 if (parser.resolveOperands(valueOperands, odsBuildableType0, valueOperandsLoc, result.operands))
1409 return ::mlir::failure();
1410 return ::mlir::success();
1416 ::llvm::SmallVector<::llvm::StringRef, 2> elidedAttrs;
1417 _odsPrinter.printOptionalAttrDict((*this)->getAttrs(), elidedAttrs);
1423 ::mlir::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects
1425 effects.emplace_back(::mlir::MemoryEffects::Write::get());
1447 return ::mlir::success();
1451 ::mlir::DictionaryAttr dict = ::llvm::dyn_cast<::mlir::DictionaryAttr>(attr);
1453 emitError() <<
"expected DictionaryAttr to set properties";
1454 return ::mlir::failure();
1456 return ::mlir::success();
1460 ::mlir::SmallVector<::mlir::NamedAttribute> attrs;
1461 ::mlir::Builder odsBuilder{ctx};
1464 return odsBuilder.getDictionaryAttr(attrs);
1469 using llvm::hash_value;
1470 return llvm::hash_combine();
1474 return std::nullopt;
1484 return ::mlir::success();
1488 odsState.addOperands(condition);
1493 build(builder, __state__, std::forward<
decltype(condition)>(condition));
1494 auto __res__ = ::llvm::dyn_cast<EnsureComputeOp>(builder.create(__state__));
1495 assert(__res__ &&
"builder didn't return the right type");
1500 return create(builder, builder.getLoc(), std::forward<
decltype(condition)>(condition));
1503void EnsureComputeOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value condition) {
1504 odsState.addOperands(condition);
1505 assert(resultTypes.size() == 0u &&
"mismatched number of results");
1506 odsState.addTypes(resultTypes);
1511 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(condition)>(condition));
1512 auto __res__ = ::llvm::dyn_cast<EnsureComputeOp>(builder.create(__state__));
1513 assert(__res__ &&
"builder didn't return the right type");
1518 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(condition)>(condition));
1521void EnsureComputeOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
1522 assert(operands.size() == 1u &&
"mismatched number of parameters");
1523 odsState.addOperands(operands);
1524 odsState.addAttributes(attributes);
1525 assert(resultTypes.size() == 0u &&
"mismatched number of return types");
1526 odsState.addTypes(resultTypes);
1529EnsureComputeOp EnsureComputeOp::create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
1531 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(attributes)>(attributes));
1532 auto __res__ = ::llvm::dyn_cast<EnsureComputeOp>(builder.create(__state__));
1533 assert(__res__ &&
"builder didn't return the right type");
1538 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(attributes)>(attributes));
1541void EnsureComputeOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands,
const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes) {
1542 assert(operands.size() == 1u &&
"mismatched number of parameters");
1543 odsState.addOperands(operands);
1544 odsState.useProperties(
const_cast<Properties&
>(properties));
1545 odsState.addAttributes(discardableAttributes);
1546 assert(resultTypes.size() == 0u &&
"mismatched number of return types");
1547 odsState.addTypes(resultTypes);
1552 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(properties)>(properties), std::forward<
decltype(discardableAttributes)>(discardableAttributes));
1553 auto __res__ = ::llvm::dyn_cast<EnsureComputeOp>(builder.create(__state__));
1554 assert(__res__ &&
"builder didn't return the right type");
1559 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(properties)>(properties), std::forward<
decltype(discardableAttributes)>(discardableAttributes));
1564 unsigned index = 0; (void)index;
1567 for (
auto v : valueGroup0) {
1568 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops3(*
this, v.getType(),
"operand", index++)))
1569 return ::mlir::failure();
1572 return ::mlir::success();
1580 ::mlir::OpAsmParser::UnresolvedOperand conditionRawOperand{};
1581 ::llvm::ArrayRef<::mlir::OpAsmParser::UnresolvedOperand> conditionOperands(&conditionRawOperand, 1); ::llvm::SMLoc conditionOperandsLoc;
1582 (void)conditionOperandsLoc;
1584 conditionOperandsLoc = parser.getCurrentLocation();
1585 if (parser.parseOperand(conditionRawOperand))
1586 return ::mlir::failure();
1588 auto loc = parser.getCurrentLocation();(void)loc;
1589 if (parser.parseOptionalAttrDict(result.attributes))
1590 return ::mlir::failure();
1592 return parser.emitError(loc) <<
"'" << result.name.getStringRef() <<
"' op ";
1594 return ::mlir::failure();
1596 ::mlir::Type odsBuildableType0 = parser.getBuilder().getIntegerType(1);
1597 if (parser.resolveOperands(conditionOperands, odsBuildableType0, conditionOperandsLoc, result.operands))
1598 return ::mlir::failure();
1599 return ::mlir::success();
1605 ::llvm::SmallVector<::llvm::StringRef, 2> elidedAttrs;
1606 _odsPrinter.printOptionalAttrDict((*this)->getAttrs(), elidedAttrs);
1612 ::mlir::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects
1614 effects.emplace_back(::mlir::MemoryEffects::Write::get());
1636 return ::mlir::success();
1640 ::mlir::DictionaryAttr dict = ::llvm::dyn_cast<::mlir::DictionaryAttr>(attr);
1642 emitError() <<
"expected DictionaryAttr to set properties";
1643 return ::mlir::failure();
1645 return ::mlir::success();
1649 ::mlir::SmallVector<::mlir::NamedAttribute> attrs;
1650 ::mlir::Builder odsBuilder{ctx};
1653 return odsBuilder.getDictionaryAttr(attrs);
1658 using llvm::hash_value;
1659 return llvm::hash_combine();
1663 return std::nullopt;
1673 return ::mlir::success();
1677 odsState.addOperands(condition);
1682 build(builder, __state__, std::forward<
decltype(condition)>(condition));
1683 auto __res__ = ::llvm::dyn_cast<EnsureConstrainOp>(builder.create(__state__));
1684 assert(__res__ &&
"builder didn't return the right type");
1689 return create(builder, builder.getLoc(), std::forward<
decltype(condition)>(condition));
1692void EnsureConstrainOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value condition) {
1693 odsState.addOperands(condition);
1694 assert(resultTypes.size() == 0u &&
"mismatched number of results");
1695 odsState.addTypes(resultTypes);
1700 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(condition)>(condition));
1701 auto __res__ = ::llvm::dyn_cast<EnsureConstrainOp>(builder.create(__state__));
1702 assert(__res__ &&
"builder didn't return the right type");
1707 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(condition)>(condition));
1710void EnsureConstrainOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
1711 assert(operands.size() == 1u &&
"mismatched number of parameters");
1712 odsState.addOperands(operands);
1713 odsState.addAttributes(attributes);
1714 assert(resultTypes.size() == 0u &&
"mismatched number of return types");
1715 odsState.addTypes(resultTypes);
1720 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(attributes)>(attributes));
1721 auto __res__ = ::llvm::dyn_cast<EnsureConstrainOp>(builder.create(__state__));
1722 assert(__res__ &&
"builder didn't return the right type");
1727 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(attributes)>(attributes));
1730void EnsureConstrainOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands,
const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes) {
1731 assert(operands.size() == 1u &&
"mismatched number of parameters");
1732 odsState.addOperands(operands);
1733 odsState.useProperties(
const_cast<Properties&
>(properties));
1734 odsState.addAttributes(discardableAttributes);
1735 assert(resultTypes.size() == 0u &&
"mismatched number of return types");
1736 odsState.addTypes(resultTypes);
1741 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(properties)>(properties), std::forward<
decltype(discardableAttributes)>(discardableAttributes));
1742 auto __res__ = ::llvm::dyn_cast<EnsureConstrainOp>(builder.create(__state__));
1743 assert(__res__ &&
"builder didn't return the right type");
1748 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(properties)>(properties), std::forward<
decltype(discardableAttributes)>(discardableAttributes));
1753 unsigned index = 0; (void)index;
1756 for (
auto v : valueGroup0) {
1757 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops3(*
this, v.getType(),
"operand", index++)))
1758 return ::mlir::failure();
1761 return ::mlir::success();
1769 ::mlir::OpAsmParser::UnresolvedOperand conditionRawOperand{};
1770 ::llvm::ArrayRef<::mlir::OpAsmParser::UnresolvedOperand> conditionOperands(&conditionRawOperand, 1); ::llvm::SMLoc conditionOperandsLoc;
1771 (void)conditionOperandsLoc;
1773 conditionOperandsLoc = parser.getCurrentLocation();
1774 if (parser.parseOperand(conditionRawOperand))
1775 return ::mlir::failure();
1777 auto loc = parser.getCurrentLocation();(void)loc;
1778 if (parser.parseOptionalAttrDict(result.attributes))
1779 return ::mlir::failure();
1781 return parser.emitError(loc) <<
"'" << result.name.getStringRef() <<
"' op ";
1783 return ::mlir::failure();
1785 ::mlir::Type odsBuildableType0 = parser.getBuilder().getIntegerType(1);
1786 if (parser.resolveOperands(conditionOperands, odsBuildableType0, conditionOperandsLoc, result.operands))
1787 return ::mlir::failure();
1788 return ::mlir::success();
1794 ::llvm::SmallVector<::llvm::StringRef, 2> elidedAttrs;
1795 _odsPrinter.printOptionalAttrDict((*this)->getAttrs(), elidedAttrs);
1801 ::mlir::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects
1803 effects.emplace_back(::mlir::MemoryEffects::Write::get());
1824 for (
unsigned i = 0; i < index; ++i)
1825 start += sizeAttr[i];
1826 return {start, sizeAttr[index]};
1836 return attr ? ::std::optional< ::mlir::ArrayAttr >(attr) : (::std::nullopt);
1840 auto attr = ::llvm::dyn_cast_or_null<::mlir::DenseI32ArrayAttr>(
getProperties().numDimsPerMap);
1856 return attr ? ::std::optional< ::mlir::ArrayAttr >(attr) : (::std::nullopt);
1861 return attr ? ::std::optional< ::mlir::ArrayAttr >(attr) : (::std::nullopt);
1871 if (!tblgen_callee)
return emitError(loc,
"'verif.include' op requires attribute 'callee'");
1873 if (!tblgen_mapOpGroupSizes)
return emitError(loc,
"'verif.include' op requires attribute 'mapOpGroupSizes'");
1878 if (tblgen_callee && !((::llvm::isa<::mlir::SymbolRefAttr>(tblgen_callee))))
1879 return emitError(loc,
"'verif.include' op attribute 'callee' failed to satisfy constraint: symbol reference attribute");
1881 if (tblgen_templateParams && !((::llvm::isa<::mlir::ArrayAttr>(tblgen_templateParams))))
1882 return emitError(loc,
"'verif.include' op attribute 'templateParams' failed to satisfy constraint: array attribute");
1884 if (tblgen_numDimsPerMap && !((::llvm::isa<::mlir::DenseI32ArrayAttr>(tblgen_numDimsPerMap))))
1885 return emitError(loc,
"'verif.include' op attribute 'numDimsPerMap' failed to satisfy constraint: i32 dense array attribute");
1887 if (tblgen_mapOpGroupSizes && !((::llvm::isa<::mlir::DenseI32ArrayAttr>(tblgen_mapOpGroupSizes))))
1888 return emitError(loc,
"'verif.include' op attribute 'mapOpGroupSizes' failed to satisfy constraint: i32 dense array attribute");
1890 if (tblgen_arg_attrs && !(((::llvm::isa<::mlir::ArrayAttr>(tblgen_arg_attrs))) && (::llvm::all_of(::llvm::cast<::mlir::ArrayAttr>(tblgen_arg_attrs), [&](::mlir::Attribute attr) {
return attr && ((::llvm::isa<::mlir::DictionaryAttr>(attr))); }))))
1891 return emitError(loc,
"'verif.include' op attribute 'arg_attrs' failed to satisfy constraint: Array of dictionary attributes");
1893 if (tblgen_res_attrs && !(((::llvm::isa<::mlir::ArrayAttr>(tblgen_res_attrs))) && (::llvm::all_of(::llvm::cast<::mlir::ArrayAttr>(tblgen_res_attrs), [&](::mlir::Attribute attr) {
return attr && ((::llvm::isa<::mlir::DictionaryAttr>(attr))); }))))
1894 return emitError(loc,
"'verif.include' op attribute 'res_attrs' failed to satisfy constraint: Array of dictionary attributes");
1895 return ::mlir::success();
1899 ::llvm::ArrayRef<int32_t> sizeAttr = getProperties().operandSegmentSizes;
1902 for (
unsigned i = 0; i < index; ++i)
1903 start += sizeAttr[i];
1904 return {start, sizeAttr[index]};
1909 auto mutableRange = ::mlir::MutableOperandRange(getOperation(), range.first, range.second, ::mlir::MutableOperandRange::OperandSegment(0u, {getOperandSegmentSizesAttrName(), ::mlir::DenseI32ArrayAttr::get(getContext(), getProperties().operandSegmentSizes)}));
1910 return mutableRange;
1915 auto mutableRange = ::mlir::MutableOperandRange(getOperation(), range.first, range.second, ::mlir::MutableOperandRange::OperandSegment(1u, {getOperandSegmentSizesAttrName(), ::mlir::DenseI32ArrayAttr::get(getContext(), getProperties().operandSegmentSizes)}));
1920 ::mlir::DictionaryAttr dict = ::llvm::dyn_cast<::mlir::DictionaryAttr>(attr);
1922 emitError() <<
"expected DictionaryAttr to set properties";
1923 return ::mlir::failure();
1928 auto attr = dict.get(
"arg_attrs");
1930 auto convertedAttr = ::llvm::dyn_cast<std::remove_reference_t<
decltype(propStorage)>>(attr);
1931 if (convertedAttr) {
1932 propStorage = convertedAttr;
1934 emitError() <<
"Invalid attribute `arg_attrs` in property conversion: " << attr;
1935 return ::mlir::failure();
1941 auto &propStorage = prop.
callee;
1942 auto attr = dict.get(
"callee");
1944 auto convertedAttr = ::llvm::dyn_cast<std::remove_reference_t<
decltype(propStorage)>>(attr);
1945 if (convertedAttr) {
1946 propStorage = convertedAttr;
1948 emitError() <<
"Invalid attribute `callee` in property conversion: " << attr;
1949 return ::mlir::failure();
1956 auto attr = dict.get(
"mapOpGroupSizes");
1958 auto convertedAttr = ::llvm::dyn_cast<std::remove_reference_t<
decltype(propStorage)>>(attr);
1959 if (convertedAttr) {
1960 propStorage = convertedAttr;
1962 emitError() <<
"Invalid attribute `mapOpGroupSizes` in property conversion: " << attr;
1963 return ::mlir::failure();
1970 auto attr = dict.get(
"numDimsPerMap");
1972 auto convertedAttr = ::llvm::dyn_cast<std::remove_reference_t<
decltype(propStorage)>>(attr);
1973 if (convertedAttr) {
1974 propStorage = convertedAttr;
1976 emitError() <<
"Invalid attribute `numDimsPerMap` in property conversion: " << attr;
1977 return ::mlir::failure();
1984 auto attr = dict.get(
"res_attrs");
1986 auto convertedAttr = ::llvm::dyn_cast<std::remove_reference_t<
decltype(propStorage)>>(attr);
1987 if (convertedAttr) {
1988 propStorage = convertedAttr;
1990 emitError() <<
"Invalid attribute `res_attrs` in property conversion: " << attr;
1991 return ::mlir::failure();
1998 auto attr = dict.get(
"templateParams");
2000 auto convertedAttr = ::llvm::dyn_cast<std::remove_reference_t<
decltype(propStorage)>>(attr);
2001 if (convertedAttr) {
2002 propStorage = convertedAttr;
2004 emitError() <<
"Invalid attribute `templateParams` in property conversion: " << attr;
2005 return ::mlir::failure();
2011 auto setFromAttr = [] (
auto &propStorage, ::mlir::Attribute propAttr,
2012 ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError) -> ::mlir::LogicalResult {
2013 return convertFromAttribute(propStorage, propAttr, emitError);
2015 auto attr = dict.get(
"operandSegmentSizes");
if (!attr) attr = dict.get(
"operand_segment_sizes");;
2018 return emitError() <<
"for `operandSegmentSizes`: ";
2020 return ::mlir::failure();
2022 return ::mlir::success();
2026 ::mlir::SmallVector<::mlir::NamedAttribute> attrs;
2027 ::mlir::Builder odsBuilder{ctx};
2030 const auto &propStorage = prop.
arg_attrs;
2032 attrs.push_back(odsBuilder.getNamedAttr(
"arg_attrs",
2037 const auto &propStorage = prop.
callee;
2039 attrs.push_back(odsBuilder.getNamedAttr(
"callee",
2046 attrs.push_back(odsBuilder.getNamedAttr(
"mapOpGroupSizes",
2053 attrs.push_back(odsBuilder.getNamedAttr(
"numDimsPerMap",
2058 const auto &propStorage = prop.
res_attrs;
2060 attrs.push_back(odsBuilder.getNamedAttr(
"res_attrs",
2067 attrs.push_back(odsBuilder.getNamedAttr(
"templateParams",
2073 auto attr = [&]() -> ::mlir::Attribute {
2074 return ::mlir::DenseI32ArrayAttr::get(ctx, propStorage);
2076 attrs.push_back(odsBuilder.getNamedAttr(
"operandSegmentSizes", attr));
2080 return odsBuilder.getDictionaryAttr(attrs);
2085 auto hash_operandSegmentSizes_ = [] (
const auto &propStorage) -> llvm::hash_code {
2086 using ::llvm::hash_value;
2087 return ::llvm::hash_combine_range(std::begin(propStorage), std::end(propStorage));;
2089 using llvm::hash_value;
2090 return llvm::hash_combine(
2091 llvm::hash_value(prop.
arg_attrs.getAsOpaquePointer()),
2092 llvm::hash_value(prop.
callee.getAsOpaquePointer()),
2095 llvm::hash_value(prop.
res_attrs.getAsOpaquePointer()),
2101 if (name ==
"arg_attrs")
2104 if (name ==
"callee")
2107 if (name ==
"mapOpGroupSizes")
2110 if (name ==
"numDimsPerMap")
2113 if (name ==
"res_attrs")
2116 if (name ==
"templateParams")
2118 if (name ==
"operand_segment_sizes" || name ==
"operandSegmentSizes")
return [&]() -> ::mlir::Attribute { return ::mlir::DenseI32ArrayAttr::get(ctx, prop.
operandSegmentSizes); }();
2119 return std::nullopt;
2123 if (name ==
"arg_attrs") {
2124 prop.
arg_attrs = ::llvm::dyn_cast_or_null<std::remove_reference_t<
decltype(prop.
arg_attrs)>>(value);
2128 if (name ==
"callee") {
2129 prop.
callee = ::llvm::dyn_cast_or_null<std::remove_reference_t<
decltype(prop.
callee)>>(value);
2133 if (name ==
"mapOpGroupSizes") {
2138 if (name ==
"numDimsPerMap") {
2143 if (name ==
"res_attrs") {
2144 prop.
res_attrs = ::llvm::dyn_cast_or_null<std::remove_reference_t<
decltype(prop.
res_attrs)>>(value);
2148 if (name ==
"templateParams") {
2152 if (name ==
"operand_segment_sizes" || name ==
"operandSegmentSizes") {
2153 auto arrAttr = ::llvm::dyn_cast_or_null<::mlir::DenseI32ArrayAttr>(value);
2154 if (!arrAttr)
return;
2174 attrs.append(
"operandSegmentSizes", [&]() -> ::mlir::Attribute { return ::mlir::DenseI32ArrayAttr::get(ctx, prop.
operandSegmentSizes); }());
2177::llvm::LogicalResult
IncludeOp::verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError) {
2180 if (attr && ::mlir::failed(__mlir_ods_local_attr_constraint_Ops4(attr,
"arg_attrs", emitError)))
2181 return ::mlir::failure();
2186 if (attr && ::mlir::failed(__mlir_ods_local_attr_constraint_Ops2(attr,
"callee", emitError)))
2187 return ::mlir::failure();
2192 if (attr && ::mlir::failed(__mlir_ods_local_attr_constraint_Ops6(attr,
"mapOpGroupSizes", emitError)))
2193 return ::mlir::failure();
2198 if (attr && ::mlir::failed(__mlir_ods_local_attr_constraint_Ops6(attr,
"numDimsPerMap", emitError)))
2199 return ::mlir::failure();
2204 if (attr && ::mlir::failed(__mlir_ods_local_attr_constraint_Ops4(attr,
"res_attrs", emitError)))
2205 return ::mlir::failure();
2210 if (attr && ::mlir::failed(__mlir_ods_local_attr_constraint_Ops5(attr,
"templateParams", emitError)))
2211 return ::mlir::failure();
2213 return ::mlir::success();
2217 auto &prop = state.getOrAddProperties<
Properties>(); (void)prop;
2218 if (::mlir::failed(reader.readOptionalAttribute(prop.
arg_attrs)))
2219 return ::mlir::failure();
2221 if (::mlir::failed(reader.readAttribute(prop.
callee)))
2222 return ::mlir::failure();
2225 return ::mlir::failure();
2227 if (::mlir::failed(reader.readOptionalAttribute(prop.
numDimsPerMap)))
2228 return ::mlir::failure();
2230 if (reader.getBytecodeVersion() < 6) {
2232 ::mlir::DenseI32ArrayAttr attr;
2233 if (::mlir::failed(reader.readAttribute(attr))) return ::mlir::failure();
2234 if (attr.size() >
static_cast<int64_t
>(
sizeof(propStorage) /
sizeof(int32_t))) {
2235 reader.emitError(
"size mismatch for operand/result_segment_size");
2236 return ::mlir::failure();
2238 ::llvm::copy(::llvm::ArrayRef<int32_t>(attr), propStorage.begin());
2241 if (::mlir::failed(reader.readOptionalAttribute(prop.
res_attrs)))
2242 return ::mlir::failure();
2244 if (::mlir::failed(reader.readOptionalAttribute(prop.
templateParams)))
2245 return ::mlir::failure();
2249 auto readProp = [&]() {
2251 if (reader.getBytecodeVersion() >= 6)
2252 return reader.readSparseArray(::llvm::MutableArrayRef(propStorage));
2254 return ::mlir::success();
2256 if (::mlir::failed(readProp()))
2257 return ::mlir::failure();
2259 return ::mlir::success();
2263 auto &prop = getProperties(); (void)prop;
2265 writer.writeOptionalAttribute(prop.
arg_attrs);
2266 writer.writeAttribute(prop.
callee);
2271if (writer.getBytecodeVersion() < 6) {
2273 writer.writeAttribute(::mlir::DenseI32ArrayAttr::get(this->getContext(), propStorage));
2276 writer.writeOptionalAttribute(prop.
res_attrs);
2283 if (writer.getBytecodeVersion() >= 6)
2284 writer.writeSparseArray(::llvm::ArrayRef(propStorage));
2296 return attr ? ::std::optional< ::mlir::ArrayAttr >(attr) : (::std::nullopt);
2311 return attr ? ::std::optional< ::mlir::ArrayAttr >(attr) : (::std::nullopt);
2316 return attr ? ::std::optional< ::mlir::ArrayAttr >(attr) : (::std::nullopt);
2320 getProperties().numDimsPerMap = ::mlir::Builder((*this)->getContext()).getDenseI32ArrayAttr(attrValue);
2324 getProperties().mapOpGroupSizes = ::mlir::Builder((*this)->getContext()).getDenseI32ArrayAttr(attrValue);
2327IncludeOp IncludeOp::create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::SymbolRefAttr callee, ::mlir::ValueRange argOperands, ::llvm::ArrayRef<::mlir::Attribute> templateParams) {
2329 build(builder, __state__, std::forward<
decltype(callee)>(callee), std::forward<
decltype(argOperands)>(argOperands), std::forward<
decltype(templateParams)>(templateParams));
2330 auto __res__ = ::llvm::dyn_cast<IncludeOp>(builder.create(__state__));
2331 assert(__res__ &&
"builder didn't return the right type");
2335IncludeOp IncludeOp::create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::SymbolRefAttr callee, ::mlir::ValueRange argOperands, ::llvm::ArrayRef<::mlir::Attribute> templateParams) {
2336 return create(builder, builder.getLoc(), std::forward<
decltype(callee)>(callee), std::forward<
decltype(argOperands)>(argOperands), std::forward<
decltype(templateParams)>(templateParams));
2339IncludeOp IncludeOp::create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::SymbolRefAttr callee, ::llvm::ArrayRef<::mlir::ValueRange> mapOperands, ::mlir::DenseI32ArrayAttr numDimsPerMap, ::mlir::ValueRange argOperands, ::llvm::ArrayRef<::mlir::Attribute> templateParams) {
2341 build(builder, __state__, std::forward<
decltype(callee)>(callee), std::forward<
decltype(mapOperands)>(mapOperands), std::forward<
decltype(numDimsPerMap)>(numDimsPerMap), std::forward<
decltype(argOperands)>(argOperands), std::forward<
decltype(templateParams)>(templateParams));
2342 auto __res__ = ::llvm::dyn_cast<IncludeOp>(builder.create(__state__));
2343 assert(__res__ &&
"builder didn't return the right type");
2347IncludeOp IncludeOp::create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::SymbolRefAttr callee, ::llvm::ArrayRef<::mlir::ValueRange> mapOperands, ::mlir::DenseI32ArrayAttr numDimsPerMap, ::mlir::ValueRange argOperands, ::llvm::ArrayRef<::mlir::Attribute> templateParams) {
2348 return create(builder, builder.getLoc(), std::forward<
decltype(callee)>(callee), std::forward<
decltype(mapOperands)>(mapOperands), std::forward<
decltype(numDimsPerMap)>(numDimsPerMap), std::forward<
decltype(argOperands)>(argOperands), std::forward<
decltype(templateParams)>(templateParams));
2351void IncludeOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::SymbolRefAttr callee, ::llvm::ArrayRef<::mlir::ValueRange> mapOperands, ::llvm::ArrayRef<int32_t> numDimsPerMap, ::mlir::ValueRange argOperands, ::llvm::ArrayRef<::mlir::Attribute> templateParams) {
2352 build(odsBuilder, odsState, callee, mapOperands,
2353 odsBuilder.getDenseI32ArrayAttr(numDimsPerMap),
2354 argOperands, templateParams);
2358IncludeOp IncludeOp::create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::SymbolRefAttr callee, ::llvm::ArrayRef<::mlir::ValueRange> mapOperands, ::llvm::ArrayRef<int32_t> numDimsPerMap, ::mlir::ValueRange argOperands, ::llvm::ArrayRef<::mlir::Attribute> templateParams) {
2360 build(builder, __state__, std::forward<
decltype(callee)>(callee), std::forward<
decltype(mapOperands)>(mapOperands), std::forward<
decltype(numDimsPerMap)>(numDimsPerMap), std::forward<
decltype(argOperands)>(argOperands), std::forward<
decltype(templateParams)>(templateParams));
2361 auto __res__ = ::llvm::dyn_cast<IncludeOp>(builder.create(__state__));
2362 assert(__res__ &&
"builder didn't return the right type");
2366IncludeOp IncludeOp::create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::SymbolRefAttr callee, ::llvm::ArrayRef<::mlir::ValueRange> mapOperands, ::llvm::ArrayRef<int32_t> numDimsPerMap, ::mlir::ValueRange argOperands, ::llvm::ArrayRef<::mlir::Attribute> templateParams) {
2367 return create(builder, builder.getLoc(), std::forward<
decltype(callee)>(callee), std::forward<
decltype(mapOperands)>(mapOperands), std::forward<
decltype(numDimsPerMap)>(numDimsPerMap), std::forward<
decltype(argOperands)>(argOperands), std::forward<
decltype(templateParams)>(templateParams));
2371 build(odsBuilder, odsState,
2373 argOperands, templateParams);
2379 build(builder, __state__, std::forward<
decltype(callee)>(callee), std::forward<
decltype(argOperands)>(argOperands), std::forward<
decltype(templateParams)>(templateParams));
2380 auto __res__ = ::llvm::dyn_cast<IncludeOp>(builder.create(__state__));
2381 assert(__res__ &&
"builder didn't return the right type");
2386 return create(builder, builder.getLoc(), std::forward<
decltype(callee)>(callee), std::forward<
decltype(argOperands)>(argOperands), std::forward<
decltype(templateParams)>(templateParams));
2389void IncludeOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState,
::llzk::verif::ContractOp callee, ::llvm::ArrayRef<::mlir::ValueRange> mapOperands, ::mlir::DenseI32ArrayAttr numDimsPerMap, ::mlir::ValueRange argOperands, ::llvm::ArrayRef<::mlir::Attribute> templateParams) {
2390 build(odsBuilder, odsState,
2392 argOperands, templateParams);
2396IncludeOp IncludeOp::create(::mlir::OpBuilder &builder, ::mlir::Location location,
::llzk::verif::ContractOp callee, ::llvm::ArrayRef<::mlir::ValueRange> mapOperands, ::mlir::DenseI32ArrayAttr numDimsPerMap, ::mlir::ValueRange argOperands, ::llvm::ArrayRef<::mlir::Attribute> templateParams) {
2398 build(builder, __state__, std::forward<
decltype(callee)>(callee), std::forward<
decltype(mapOperands)>(mapOperands), std::forward<
decltype(numDimsPerMap)>(numDimsPerMap), std::forward<
decltype(argOperands)>(argOperands), std::forward<
decltype(templateParams)>(templateParams));
2399 auto __res__ = ::llvm::dyn_cast<IncludeOp>(builder.create(__state__));
2400 assert(__res__ &&
"builder didn't return the right type");
2404IncludeOp IncludeOp::create(::mlir::ImplicitLocOpBuilder &builder,
::llzk::verif::ContractOp callee, ::llvm::ArrayRef<::mlir::ValueRange> mapOperands, ::mlir::DenseI32ArrayAttr numDimsPerMap, ::mlir::ValueRange argOperands, ::llvm::ArrayRef<::mlir::Attribute> templateParams) {
2405 return create(builder, builder.getLoc(), std::forward<
decltype(callee)>(callee), std::forward<
decltype(mapOperands)>(mapOperands), std::forward<
decltype(numDimsPerMap)>(numDimsPerMap), std::forward<
decltype(argOperands)>(argOperands), std::forward<
decltype(templateParams)>(templateParams));
2408void IncludeOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState,
::llzk::verif::ContractOp callee, ::llvm::ArrayRef<::mlir::ValueRange> mapOperands, ::llvm::ArrayRef<int32_t> numDimsPerMap, ::mlir::ValueRange argOperands, ::llvm::ArrayRef<::mlir::Attribute> templateParams) {
2409 build(odsBuilder, odsState, callee, mapOperands,
2410 odsBuilder.getDenseI32ArrayAttr(numDimsPerMap),
2411 argOperands, templateParams);
2415IncludeOp IncludeOp::create(::mlir::OpBuilder &builder, ::mlir::Location location,
::llzk::verif::ContractOp callee, ::llvm::ArrayRef<::mlir::ValueRange> mapOperands, ::llvm::ArrayRef<int32_t> numDimsPerMap, ::mlir::ValueRange argOperands, ::llvm::ArrayRef<::mlir::Attribute> templateParams) {
2417 build(builder, __state__, std::forward<
decltype(callee)>(callee), std::forward<
decltype(mapOperands)>(mapOperands), std::forward<
decltype(numDimsPerMap)>(numDimsPerMap), std::forward<
decltype(argOperands)>(argOperands), std::forward<
decltype(templateParams)>(templateParams));
2418 auto __res__ = ::llvm::dyn_cast<IncludeOp>(builder.create(__state__));
2419 assert(__res__ &&
"builder didn't return the right type");
2423IncludeOp IncludeOp::create(::mlir::ImplicitLocOpBuilder &builder,
::llzk::verif::ContractOp callee, ::llvm::ArrayRef<::mlir::ValueRange> mapOperands, ::llvm::ArrayRef<int32_t> numDimsPerMap, ::mlir::ValueRange argOperands, ::llvm::ArrayRef<::mlir::Attribute> templateParams) {
2424 return create(builder, builder.getLoc(), std::forward<
decltype(callee)>(callee), std::forward<
decltype(mapOperands)>(mapOperands), std::forward<
decltype(numDimsPerMap)>(numDimsPerMap), std::forward<
decltype(argOperands)>(argOperands), std::forward<
decltype(templateParams)>(templateParams));
2428 ::mlir::Builder odsBuilder(opName.getContext());
2430 properties.
numDimsPerMap = odsBuilder.getDenseI32ArrayAttr({});
2434 auto tblgen_arg_attrs = getProperties().arg_attrs; (void)tblgen_arg_attrs;
2435 auto tblgen_callee = getProperties().callee; (void)tblgen_callee;
2436 if (!tblgen_callee)
return emitOpError(
"requires attribute 'callee'");
2437 auto tblgen_mapOpGroupSizes = getProperties().mapOpGroupSizes; (void)tblgen_mapOpGroupSizes;
2438 if (!tblgen_mapOpGroupSizes)
return emitOpError(
"requires attribute 'mapOpGroupSizes'");
2439 auto tblgen_numDimsPerMap = getProperties().numDimsPerMap; (void)tblgen_numDimsPerMap;
2440 auto tblgen_res_attrs = getProperties().res_attrs; (void)tblgen_res_attrs;
2441 auto tblgen_templateParams = getProperties().templateParams; (void)tblgen_templateParams;
2443 if (::mlir::failed(__mlir_ods_local_attr_constraint_Ops2(*
this, tblgen_callee,
"callee")))
2444 return ::mlir::failure();
2446 if (::mlir::failed(__mlir_ods_local_attr_constraint_Ops5(*
this, tblgen_templateParams,
"templateParams")))
2447 return ::mlir::failure();
2449 if (::mlir::failed(__mlir_ods_local_attr_constraint_Ops6(*
this, tblgen_numDimsPerMap,
"numDimsPerMap")))
2450 return ::mlir::failure();
2452 if (::mlir::failed(__mlir_ods_local_attr_constraint_Ops6(*
this, tblgen_mapOpGroupSizes,
"mapOpGroupSizes")))
2453 return ::mlir::failure();
2455 if (::mlir::failed(__mlir_ods_local_attr_constraint_Ops4(*
this, tblgen_arg_attrs,
"arg_attrs")))
2456 return ::mlir::failure();
2458 if (::mlir::failed(__mlir_ods_local_attr_constraint_Ops4(*
this, tblgen_res_attrs,
"res_attrs")))
2459 return ::mlir::failure();
2461 unsigned index = 0; (void)index;
2464 for (
auto v : valueGroup0) {
2465 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops4(*
this, v.getType(),
"operand", index++)))
2466 return ::mlir::failure();
2469 if (::mlir::failed(::mlir::OpTrait::impl::verifyValueSizeAttr(*
this,
"mapOpGroupSizes",
"mapOperands", valueGroup1.size())))
2470 return ::mlir::failure();
2472 for (
auto v : valueGroup1) {
2473 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops5(*
this, v.getType(),
"operand", index++)))
2474 return ::mlir::failure();
2477 return ::mlir::success();
2484::mlir::ParseResult
IncludeOp::parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result) {
2485 ::mlir::SymbolRefAttr calleeAttr;
2486 ::mlir::ArrayAttr templateParamsAttr;
2487 ::llvm::SmallVector<::mlir::OpAsmParser::UnresolvedOperand, 4> argOperandsOperands;
2488 ::llvm::SMLoc argOperandsOperandsLoc;
2489 (void)argOperandsOperandsLoc;
2490 ::llvm::SmallVector<::mlir::OpAsmParser::UnresolvedOperand, 4> mapOperandsOperands;
2491 llvm::SmallVector<int32_t> mapOperandsOperandGroupSizes;
2492 ::llvm::SMLoc mapOperandsOperandsLoc;
2493 (void)mapOperandsOperandsLoc;
2494 ::mlir::DenseI32ArrayAttr numDimsPerMapAttr;
2495 ::llvm::ArrayRef<::mlir::Type> argOperandsTypes;
2496 ::llvm::ArrayRef<::mlir::Type> allResultTypes;
2498 if (parser.parseCustomAttributeWithFallback(calleeAttr, parser.getBuilder().getType<::mlir::NoneType>())) {
2499 return ::mlir::failure();
2502 if (::mlir::succeeded(parser.parseOptionalLess())) {
2505 if (odsResult) return ::mlir::failure();
2506 if (templateParamsAttr)
2509 if (parser.parseGreater())
2510 return ::mlir::failure();
2512 if (parser.parseLParen())
2513 return ::mlir::failure();
2515 argOperandsOperandsLoc = parser.getCurrentLocation();
2516 if (parser.parseOperandList(argOperandsOperands))
2517 return ::mlir::failure();
2518 if (parser.parseRParen())
2519 return ::mlir::failure();
2520 if (::mlir::succeeded(parser.parseOptionalLBrace())) {
2522 mapOperandsOperandsLoc = parser.getCurrentLocation();
2523 ::llvm::SmallVector<::llvm::SmallVector<::mlir::OpAsmParser::UnresolvedOperand>> mapOperandsOperandGroups;
2525 if (odsResult) return ::mlir::failure();
2526 for (
const auto &subRange : mapOperandsOperandGroups) {
2527 mapOperandsOperands.append(subRange.begin(), subRange.end());
2528 mapOperandsOperandGroupSizes.push_back(subRange.size());
2530 if (numDimsPerMapAttr)
2533 if (parser.parseRBrace())
2534 return ::mlir::failure();
2536 if (parser.parseColon())
2537 return ::mlir::failure();
2539 ::mlir::FunctionType argOperands__allResult_functionType;
2540 if (parser.parseType(argOperands__allResult_functionType))
2541 return ::mlir::failure();
2542 argOperandsTypes = argOperands__allResult_functionType.getInputs();
2543 allResultTypes = argOperands__allResult_functionType.getResults();
2546 if (odsResult) return ::mlir::failure();
2548::llvm::copy(::llvm::ArrayRef<int32_t>({
static_cast<int32_t
>(argOperandsOperands.size()),
static_cast<int32_t
>(mapOperandsOperands.size())}), result.getOrAddProperties<
IncludeOp::Properties>().operandSegmentSizes.begin());
2549 result.getOrAddProperties<
IncludeOp::Properties>().mapOpGroupSizes = parser.getBuilder().getDenseI32ArrayAttr(mapOperandsOperandGroupSizes);
2550 ::mlir::Type odsBuildableType0 = parser.getBuilder().getIndexType();
2551 result.addTypes(allResultTypes);
2552 if (parser.resolveOperands(argOperandsOperands, argOperandsTypes, argOperandsOperandsLoc, result.operands))
2553 return ::mlir::failure();
2554 if (parser.resolveOperands(mapOperandsOperands, odsBuildableType0, mapOperandsOperandsLoc, result.operands))
2555 return ::mlir::failure();
2556 return ::mlir::success();
2560 ::mlir::DictionaryAttr dict = ::llvm::dyn_cast<::mlir::DictionaryAttr>(attr);
2562 emitError() <<
"expected DictionaryAttr to set properties";
2563 return ::mlir::failure();
2567 ::mlir::DenseSet<::mlir::StringAttr> usedKeys;
2568 ::mlir::MLIRContext *ctx = dict.getContext();
2573 auto mapOpGroupSizesAttrName = ::mlir::StringAttr::get(ctx,
"mapOpGroupSizes");
2574 auto attr = dict.get(mapOpGroupSizesAttrName);
2575 usedKeys.insert(mapOpGroupSizesAttrName);
2578 emitError() <<
"expected key entry for mapOpGroupSizes in DictionaryAttr to set "
2580 return ::mlir::failure();
2582 auto convertedAttr = ::llvm::dyn_cast<std::remove_reference_t<
decltype(propStorage)>>(attr);
2583 if (convertedAttr) {
2584 propStorage = convertedAttr;
2586 emitError() <<
"Invalid attribute `mapOpGroupSizes` in property conversion: " << attr;
2587 return ::mlir::failure();
2594 auto arg_attrsAttrName = ::mlir::StringAttr::get(ctx,
"arg_attrs");
2595 auto attr = dict.get(arg_attrsAttrName);
2596 usedKeys.insert(arg_attrsAttrName);
2597 if (attr ||
false) {
2599 emitError() <<
"expected key entry for arg_attrs in DictionaryAttr to set "
2601 return ::mlir::failure();
2603 auto convertedAttr = ::llvm::dyn_cast<std::remove_reference_t<
decltype(propStorage)>>(attr);
2604 if (convertedAttr) {
2605 propStorage = convertedAttr;
2607 emitError() <<
"Invalid attribute `arg_attrs` in property conversion: " << attr;
2608 return ::mlir::failure();
2615 auto res_attrsAttrName = ::mlir::StringAttr::get(ctx,
"res_attrs");
2616 auto attr = dict.get(res_attrsAttrName);
2617 usedKeys.insert(res_attrsAttrName);
2618 if (attr ||
false) {
2620 emitError() <<
"expected key entry for res_attrs in DictionaryAttr to set "
2622 return ::mlir::failure();
2624 auto convertedAttr = ::llvm::dyn_cast<std::remove_reference_t<
decltype(propStorage)>>(attr);
2625 if (convertedAttr) {
2626 propStorage = convertedAttr;
2628 emitError() <<
"Invalid attribute `res_attrs` in property conversion: " << attr;
2629 return ::mlir::failure();
2634 for (::mlir::NamedAttribute attr : dict) {
2635 if (!usedKeys.contains(attr.getName()))
2636 return emitError() <<
"unknown key '" << attr.getName() <<
2637 "' when parsing properties dictionary";
2639 return ::mlir::success();
2654 _odsPrinter <<
' ' <<
"{";
2658 _odsPrinter <<
' ' <<
":";
2660 _odsPrinter.printFunctionalType(
getArgOperands().getTypes(), getOperation()->getResultTypes());
2686 return ::mlir::success();
2690 ::mlir::DictionaryAttr dict = ::llvm::dyn_cast<::mlir::DictionaryAttr>(attr);
2692 emitError() <<
"expected DictionaryAttr to set properties";
2693 return ::mlir::failure();
2695 return ::mlir::success();
2699 ::mlir::SmallVector<::mlir::NamedAttribute> attrs;
2700 ::mlir::Builder odsBuilder{ctx};
2703 return odsBuilder.getDictionaryAttr(attrs);
2708 using llvm::hash_value;
2709 return llvm::hash_combine();
2713 return std::nullopt;
2722::llvm::LogicalResult
IncreasesOp::verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError) {
2723 return ::mlir::success();
2726void IncreasesOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value value) {
2727 odsState.addOperands(value);
2732 build(builder, __state__, std::forward<
decltype(value)>(value));
2733 auto __res__ = ::llvm::dyn_cast<IncreasesOp>(builder.create(__state__));
2734 assert(__res__ &&
"builder didn't return the right type");
2739 return create(builder, builder.getLoc(), std::forward<
decltype(value)>(value));
2742void IncreasesOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value value) {
2743 odsState.addOperands(value);
2744 assert(resultTypes.size() == 0u &&
"mismatched number of results");
2745 odsState.addTypes(resultTypes);
2750 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(value)>(value));
2751 auto __res__ = ::llvm::dyn_cast<IncreasesOp>(builder.create(__state__));
2752 assert(__res__ &&
"builder didn't return the right type");
2757 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(value)>(value));
2760void IncreasesOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
2761 assert(operands.size() == 1u &&
"mismatched number of parameters");
2762 odsState.addOperands(operands);
2763 odsState.addAttributes(attributes);
2764 assert(resultTypes.size() == 0u &&
"mismatched number of return types");
2765 odsState.addTypes(resultTypes);
2768IncreasesOp IncreasesOp::create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
2770 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(attributes)>(attributes));
2771 auto __res__ = ::llvm::dyn_cast<IncreasesOp>(builder.create(__state__));
2772 assert(__res__ &&
"builder didn't return the right type");
2776IncreasesOp IncreasesOp::create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
2777 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(attributes)>(attributes));
2780void IncreasesOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands,
const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes) {
2781 assert(operands.size() == 1u &&
"mismatched number of parameters");
2782 odsState.addOperands(operands);
2783 odsState.useProperties(
const_cast<Properties&
>(properties));
2784 odsState.addAttributes(discardableAttributes);
2785 assert(resultTypes.size() == 0u &&
"mismatched number of return types");
2786 odsState.addTypes(resultTypes);
2789IncreasesOp IncreasesOp::create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands,
const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes) {
2791 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(properties)>(properties), std::forward<
decltype(discardableAttributes)>(discardableAttributes));
2792 auto __res__ = ::llvm::dyn_cast<IncreasesOp>(builder.create(__state__));
2793 assert(__res__ &&
"builder didn't return the right type");
2797IncreasesOp IncreasesOp::create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands,
const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes) {
2798 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(properties)>(properties), std::forward<
decltype(discardableAttributes)>(discardableAttributes));
2803 unsigned index = 0; (void)index;
2806 for (
auto v : valueGroup0) {
2807 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops2(*
this, v.getType(),
"operand", index++)))
2808 return ::mlir::failure();
2811 return ::mlir::success();
2819 ::mlir::OpAsmParser::UnresolvedOperand valueRawOperand{};
2820 ::llvm::ArrayRef<::mlir::OpAsmParser::UnresolvedOperand> valueOperands(&valueRawOperand, 1); ::llvm::SMLoc valueOperandsLoc;
2821 (void)valueOperandsLoc;
2823 valueOperandsLoc = parser.getCurrentLocation();
2824 if (parser.parseOperand(valueRawOperand))
2825 return ::mlir::failure();
2827 auto loc = parser.getCurrentLocation();(void)loc;
2828 if (parser.parseOptionalAttrDict(result.attributes))
2829 return ::mlir::failure();
2831 return parser.emitError(loc) <<
"'" << result.name.getStringRef() <<
"' op ";
2833 return ::mlir::failure();
2836 if (parser.resolveOperands(valueOperands, odsBuildableType0, valueOperandsLoc, result.operands))
2837 return ::mlir::failure();
2838 return ::mlir::success();
2844 ::llvm::SmallVector<::llvm::StringRef, 2> elidedAttrs;
2845 _odsPrinter.printOptionalAttrDict((*this)->getAttrs(), elidedAttrs);
2851 ::mlir::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects
2853 effects.emplace_back(::mlir::MemoryEffects::Write::get());
2872 return attr.getValue();
2886 if (!tblgen_loop_arg_types)
return emitError(loc,
"'verif.invariant' op requires attribute 'loop_arg_types'");
2888 if (!tblgen_loop_name)
return emitError(loc,
"'verif.invariant' op requires attribute 'loop_name'");
2890 if (tblgen_loop_name && !((::llvm::isa<::mlir::StringAttr>(tblgen_loop_name))))
2891 return emitError(loc,
"'verif.invariant' op attribute 'loop_name' failed to satisfy constraint: string attribute");
2893 if (tblgen_loop_arg_types && !(((::llvm::isa<::mlir::ArrayAttr>(tblgen_loop_arg_types))) && (::llvm::all_of(::llvm::cast<::mlir::ArrayAttr>(tblgen_loop_arg_types), [&](::mlir::Attribute attr) {
return attr && (((::llvm::isa<::mlir::TypeAttr>(attr))) && ((::llvm::isa<::mlir::Type>(::llvm::cast<::mlir::TypeAttr>(attr).getValue()))) && ((
true))); }))))
2894 return emitError(loc,
"'verif.invariant' op attribute 'loop_arg_types' failed to satisfy constraint: type array attribute");
2895 return ::mlir::success();
2899 ::mlir::DictionaryAttr dict = ::llvm::dyn_cast<::mlir::DictionaryAttr>(attr);
2901 emitError() <<
"expected DictionaryAttr to set properties";
2902 return ::mlir::failure();
2907 auto attr = dict.get(
"loop_arg_types");
2909 auto convertedAttr = ::llvm::dyn_cast<std::remove_reference_t<
decltype(propStorage)>>(attr);
2910 if (convertedAttr) {
2911 propStorage = convertedAttr;
2913 emitError() <<
"Invalid attribute `loop_arg_types` in property conversion: " << attr;
2914 return ::mlir::failure();
2921 auto attr = dict.get(
"loop_name");
2923 auto convertedAttr = ::llvm::dyn_cast<std::remove_reference_t<
decltype(propStorage)>>(attr);
2924 if (convertedAttr) {
2925 propStorage = convertedAttr;
2927 emitError() <<
"Invalid attribute `loop_name` in property conversion: " << attr;
2928 return ::mlir::failure();
2932 return ::mlir::success();
2936 ::mlir::SmallVector<::mlir::NamedAttribute> attrs;
2937 ::mlir::Builder odsBuilder{ctx};
2942 attrs.push_back(odsBuilder.getNamedAttr(
"loop_arg_types",
2947 const auto &propStorage = prop.
loop_name;
2949 attrs.push_back(odsBuilder.getNamedAttr(
"loop_name",
2954 return odsBuilder.getDictionaryAttr(attrs);
2959 using llvm::hash_value;
2960 return llvm::hash_combine(
2962 llvm::hash_value(prop.
loop_name.getAsOpaquePointer()));
2966 if (name ==
"loop_arg_types")
2969 if (name ==
"loop_name")
2971 return std::nullopt;
2975 if (name ==
"loop_arg_types") {
2980 if (name ==
"loop_name") {
2981 prop.
loop_name = ::llvm::dyn_cast_or_null<std::remove_reference_t<
decltype(prop.
loop_name)>>(value);
2992::llvm::LogicalResult
InvariantOp::verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError) {
2995 if (attr && ::mlir::failed(__mlir_ods_local_attr_constraint_Ops7(attr,
"loop_arg_types", emitError)))
2996 return ::mlir::failure();
3001 if (attr && ::mlir::failed(__mlir_ods_local_attr_constraint_Ops1(attr,
"loop_name", emitError)))
3002 return ::mlir::failure();
3004 return ::mlir::success();
3008 auto &prop = state.getOrAddProperties<
Properties>(); (void)prop;
3010 return ::mlir::failure();
3012 if (::mlir::failed(reader.readAttribute(prop.
loop_name)))
3013 return ::mlir::failure();
3014 return ::mlir::success();
3018 auto &prop = getProperties(); (void)prop;
3025 return attr.getValue();
3034 getProperties().loop_name = ::mlir::Builder((*this)->getContext()).getStringAttr(attrValue);
3037InvariantOp InvariantOp::create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::StringRef loop_name, ::llvm::ArrayRef<::mlir::Type> loop_arg_types, ::llvm::ArrayRef<::mlir::Location> loop_arg_locs) {
3039 build(builder, __state__, std::forward<
decltype(loop_name)>(loop_name), std::forward<
decltype(loop_arg_types)>(loop_arg_types), std::forward<
decltype(loop_arg_locs)>(loop_arg_locs));
3040 auto __res__ = ::llvm::dyn_cast<InvariantOp>(builder.create(__state__));
3041 assert(__res__ &&
"builder didn't return the right type");
3045InvariantOp InvariantOp::create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::StringRef loop_name, ::llvm::ArrayRef<::mlir::Type> loop_arg_types, ::llvm::ArrayRef<::mlir::Location> loop_arg_locs) {
3046 return create(builder, builder.getLoc(), std::forward<
decltype(loop_name)>(loop_name), std::forward<
decltype(loop_arg_types)>(loop_arg_types), std::forward<
decltype(loop_arg_locs)>(loop_arg_locs));
3050 auto tblgen_loop_arg_types = getProperties().loop_arg_types; (void)tblgen_loop_arg_types;
3051 if (!tblgen_loop_arg_types)
return emitOpError(
"requires attribute 'loop_arg_types'");
3052 auto tblgen_loop_name = getProperties().loop_name; (void)tblgen_loop_name;
3053 if (!tblgen_loop_name)
return emitOpError(
"requires attribute 'loop_name'");
3055 if (::mlir::failed(__mlir_ods_local_attr_constraint_Ops1(*
this, tblgen_loop_name,
"loop_name")))
3056 return ::mlir::failure();
3058 if (::mlir::failed(__mlir_ods_local_attr_constraint_Ops7(*
this, tblgen_loop_arg_types,
"loop_arg_types")))
3059 return ::mlir::failure();
3061 unsigned index = 0; (void)index;
3063 for (
auto ®ion : ::llvm::MutableArrayRef((*this)->getRegion(0)))
3064 if (::mlir::failed(__mlir_ods_local_region_constraint_Ops2(*
this, region,
"region", index++)))
3065 return ::mlir::failure();
3067 return ::mlir::success();
3072 return ::mlir::success();
3073 return ::mlir::failure();
3077 ::mlir::DictionaryAttr dict = ::llvm::dyn_cast<::mlir::DictionaryAttr>(attr);
3079 emitError() <<
"expected DictionaryAttr to set properties";
3080 return ::mlir::failure();
3084 ::mlir::DenseSet<::mlir::StringAttr> usedKeys;
3085 ::mlir::MLIRContext *ctx = dict.getContext();
3090 auto loop_nameAttrName = ::mlir::StringAttr::get(ctx,
"loop_name");
3091 auto attr = dict.get(loop_nameAttrName);
3092 usedKeys.insert(loop_nameAttrName);
3095 emitError() <<
"expected key entry for loop_name in DictionaryAttr to set "
3097 return ::mlir::failure();
3099 auto convertedAttr = ::llvm::dyn_cast<std::remove_reference_t<
decltype(propStorage)>>(attr);
3100 if (convertedAttr) {
3101 propStorage = convertedAttr;
3103 emitError() <<
"Invalid attribute `loop_name` in property conversion: " << attr;
3104 return ::mlir::failure();
3111 auto loop_arg_typesAttrName = ::mlir::StringAttr::get(ctx,
"loop_arg_types");
3112 auto attr = dict.get(loop_arg_typesAttrName);
3113 usedKeys.insert(loop_arg_typesAttrName);
3116 emitError() <<
"expected key entry for loop_arg_types in DictionaryAttr to set "
3118 return ::mlir::failure();
3120 auto convertedAttr = ::llvm::dyn_cast<std::remove_reference_t<
decltype(propStorage)>>(attr);
3121 if (convertedAttr) {
3122 propStorage = convertedAttr;
3124 emitError() <<
"Invalid attribute `loop_arg_types` in property conversion: " << attr;
3125 return ::mlir::failure();
3130 for (::mlir::NamedAttribute attr : dict) {
3131 if (!usedKeys.contains(attr.getName()))
3132 return emitError() <<
"unknown key '" << attr.getName() <<
3133 "' when parsing properties dictionary";
3135 return ::mlir::success();
3159 return ::mlir::success();
3163 ::mlir::DictionaryAttr dict = ::llvm::dyn_cast<::mlir::DictionaryAttr>(attr);
3165 emitError() <<
"expected DictionaryAttr to set properties";
3166 return ::mlir::failure();
3168 return ::mlir::success();
3172 ::mlir::SmallVector<::mlir::NamedAttribute> attrs;
3173 ::mlir::Builder odsBuilder{ctx};
3176 return odsBuilder.getDictionaryAttr(attrs);
3181 using llvm::hash_value;
3182 return llvm::hash_combine();
3186 return std::nullopt;
3195::llvm::LogicalResult
OldOp::verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError) {
3196 return ::mlir::success();
3199void OldOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value value) {
3200 odsState.addOperands(value);
3201 odsState.addTypes(result);
3204OldOp OldOp::create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Type result, ::mlir::Value value) {
3206 build(builder, __state__, std::forward<
decltype(result)>(result), std::forward<
decltype(value)>(value));
3207 auto __res__ = ::llvm::dyn_cast<OldOp>(builder.create(__state__));
3208 assert(__res__ &&
"builder didn't return the right type");
3213 return create(builder, builder.getLoc(), std::forward<
decltype(result)>(result), std::forward<
decltype(value)>(value));
3216void OldOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value value) {
3217 odsState.addOperands(value);
3219 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
3221 odsState.location, odsState.operands,
3222 odsState.attributes.getDictionary(odsState.getContext()),
3223 odsState.getRawProperties(),
3224 odsState.regions, inferredReturnTypes)))
3225 odsState.addTypes(inferredReturnTypes);
3227 ::mlir::detail::reportFatalInferReturnTypesError(odsState);
3233 build(builder, __state__, std::forward<
decltype(value)>(value));
3234 auto __res__ = ::llvm::dyn_cast<OldOp>(builder.create(__state__));
3235 assert(__res__ &&
"builder didn't return the right type");
3240 return create(builder, builder.getLoc(), std::forward<
decltype(value)>(value));
3243void OldOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value value) {
3244 odsState.addOperands(value);
3245 assert(resultTypes.size() == 1u &&
"mismatched number of results");
3246 odsState.addTypes(resultTypes);
3249OldOp OldOp::create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::Value value) {
3251 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(value)>(value));
3252 auto __res__ = ::llvm::dyn_cast<OldOp>(builder.create(__state__));
3253 assert(__res__ &&
"builder didn't return the right type");
3257OldOp OldOp::create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::Value value) {
3258 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(value)>(value));
3261void OldOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
3262 assert(operands.size() == 1u &&
"mismatched number of parameters");
3263 odsState.addOperands(operands);
3264 odsState.addAttributes(attributes);
3265 assert(resultTypes.size() == 1u &&
"mismatched number of return types");
3266 odsState.addTypes(resultTypes);
3269OldOp OldOp::create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
3271 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(attributes)>(attributes));
3272 auto __res__ = ::llvm::dyn_cast<OldOp>(builder.create(__state__));
3273 assert(__res__ &&
"builder didn't return the right type");
3277OldOp OldOp::create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
3278 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(attributes)>(attributes));
3281void OldOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
3282 assert(operands.size() == 1u &&
"mismatched number of parameters");
3283 odsState.addOperands(operands);
3284 odsState.addAttributes(attributes);
3286 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
3288 odsState.location, operands,
3289 odsState.attributes.getDictionary(odsState.getContext()),
3290 odsState.getRawProperties(),
3291 odsState.regions, inferredReturnTypes))) {
3292 assert(inferredReturnTypes.size() == 1u &&
"mismatched number of return types");
3293 odsState.addTypes(inferredReturnTypes);
3295 ::llvm::report_fatal_error(
"Failed to infer result type(s).");
3299OldOp OldOp::create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
3301 build(builder, __state__, std::forward<
decltype(operands)>(operands), std::forward<
decltype(attributes)>(attributes));
3302 auto __res__ = ::llvm::dyn_cast<OldOp>(builder.create(__state__));
3303 assert(__res__ &&
"builder didn't return the right type");
3307OldOp OldOp::create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
3308 return create(builder, builder.getLoc(), std::forward<
decltype(operands)>(operands), std::forward<
decltype(attributes)>(attributes));
3311void OldOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands,
const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes) {
3312 assert(operands.size() == 1u &&
"mismatched number of parameters");
3313 odsState.addOperands(operands);
3314 odsState.useProperties(
const_cast<Properties&
>(properties));
3315 odsState.addAttributes(discardableAttributes);
3316 assert(resultTypes.size() == 1u &&
"mismatched number of return types");
3317 odsState.addTypes(resultTypes);
3320OldOp OldOp::create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands,
const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes) {
3322 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(properties)>(properties), std::forward<
decltype(discardableAttributes)>(discardableAttributes));
3323 auto __res__ = ::llvm::dyn_cast<OldOp>(builder.create(__state__));
3324 assert(__res__ &&
"builder didn't return the right type");
3328OldOp OldOp::create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands,
const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes) {
3329 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(properties)>(properties), std::forward<
decltype(discardableAttributes)>(discardableAttributes));
3332void OldOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands,
const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes) {
3333 assert(operands.size() == 1u &&
"mismatched number of parameters");
3334 odsState.addOperands(operands);
3335 odsState.useProperties(
const_cast<Properties &
>(properties));
3336 odsState.addAttributes(discardableAttributes);
3338 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
3340 odsState.location, operands,
3341 odsState.attributes.getDictionary(odsState.getContext()),
3342 odsState.getRawProperties(),
3343 odsState.regions, inferredReturnTypes))) {
3344 assert(inferredReturnTypes.size() == 1u &&
"mismatched number of return types");
3345 odsState.addTypes(inferredReturnTypes);
3347 ::llvm::report_fatal_error(
"Failed to infer result type(s).");
3351OldOp OldOp::create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::ValueRange operands,
const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes) {
3353 build(builder, __state__, std::forward<
decltype(operands)>(operands), std::forward<
decltype(properties)>(properties), std::forward<
decltype(discardableAttributes)>(discardableAttributes));
3354 auto __res__ = ::llvm::dyn_cast<OldOp>(builder.create(__state__));
3355 assert(__res__ &&
"builder didn't return the right type");
3359OldOp OldOp::create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::ValueRange operands,
const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes) {
3360 return create(builder, builder.getLoc(), std::forward<
decltype(operands)>(operands), std::forward<
decltype(properties)>(properties), std::forward<
decltype(discardableAttributes)>(discardableAttributes));
3365 unsigned index = 0; (void)index;
3368 for (
auto v : valueGroup0) {
3369 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops6(*
this, v.getType(),
"operand", index++)))
3370 return ::mlir::failure();
3374 unsigned index = 0; (void)index;
3377 for (
auto v : valueGroup0) {
3378 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops6(*
this, v.getType(),
"result", index++)))
3379 return ::mlir::failure();
3383 return emitOpError(
"failed to verify that all of {value, result} have same type");
3384 return ::mlir::success();
3391::llvm::LogicalResult
OldOp::inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location> location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::PropertyRef properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type>&inferredReturnTypes) {
3392 inferredReturnTypes.resize(1);
3393 ::mlir::Builder odsBuilder(context);
3394 if (operands.size() <= 0)
3395 return ::mlir::failure();
3396 ::mlir::Type odsInferredType0 = operands[0].getType();
3397 inferredReturnTypes[0] = odsInferredType0;
3398 return ::mlir::success();
3401::mlir::ParseResult
OldOp::parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result) {
3402 ::mlir::OpAsmParser::UnresolvedOperand valueRawOperand{};
3403 ::llvm::ArrayRef<::mlir::OpAsmParser::UnresolvedOperand> valueOperands(&valueRawOperand, 1); ::llvm::SMLoc valueOperandsLoc;
3404 (void)valueOperandsLoc;
3405 ::mlir::Type resultRawType{};
3406 ::llvm::ArrayRef<::mlir::Type> resultTypes(&resultRawType, 1);
3408 valueOperandsLoc = parser.getCurrentLocation();
3409 if (parser.parseOperand(valueRawOperand))
3410 return ::mlir::failure();
3411 if (parser.parseColon())
3412 return ::mlir::failure();
3416 if (parser.parseCustomTypeWithFallback(type))
3417 return ::mlir::failure();
3418 resultRawType = type;
3421 auto loc = parser.getCurrentLocation();(void)loc;
3422 if (parser.parseOptionalAttrDict(result.attributes))
3423 return ::mlir::failure();
3425 return parser.emitError(loc) <<
"'" << result.name.getStringRef() <<
"' op ";
3427 return ::mlir::failure();
3429 result.addTypes(resultTypes);
3430 if (parser.resolveOperands(valueOperands, resultTypes[0], valueOperandsLoc, result.operands))
3431 return ::mlir::failure();
3432 return ::mlir::success();
3438 _odsPrinter <<
' ' <<
":";
3442 if (
auto validType = ::llvm::dyn_cast<::mlir::Type>(type))
3443 _odsPrinter.printStrippedAttrOrType(validType);
3445 _odsPrinter << type;
3447 ::llvm::SmallVector<::llvm::StringRef, 2> elidedAttrs;
3448 _odsPrinter.printOptionalAttrDict((*this)->getAttrs(), elidedAttrs);
3451void OldOp::getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects) {
3474 return ::mlir::success();
3478 ::mlir::DictionaryAttr dict = ::llvm::dyn_cast<::mlir::DictionaryAttr>(attr);
3480 emitError() <<
"expected DictionaryAttr to set properties";
3481 return ::mlir::failure();
3483 return ::mlir::success();
3487 ::mlir::SmallVector<::mlir::NamedAttribute> attrs;
3488 ::mlir::Builder odsBuilder{ctx};
3491 return odsBuilder.getDictionaryAttr(attrs);
3496 using llvm::hash_value;
3497 return llvm::hash_combine();
3501 return std::nullopt;
3510::llvm::LogicalResult
ProveDetOp::verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError) {
3511 return ::mlir::success();
3514void ProveDetOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value condition) {
3515 odsState.addOperands(condition);
3516 odsState.addTypes(result);
3521 build(builder, __state__, std::forward<
decltype(result)>(result), std::forward<
decltype(condition)>(condition));
3522 auto __res__ = ::llvm::dyn_cast<ProveDetOp>(builder.create(__state__));
3523 assert(__res__ &&
"builder didn't return the right type");
3528 return create(builder, builder.getLoc(), std::forward<
decltype(result)>(result), std::forward<
decltype(condition)>(condition));
3531void ProveDetOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value condition) {
3532 odsState.addOperands(condition);
3534 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
3536 odsState.location, odsState.operands,
3537 odsState.attributes.getDictionary(odsState.getContext()),
3538 odsState.getRawProperties(),
3539 odsState.regions, inferredReturnTypes)))
3540 odsState.addTypes(inferredReturnTypes);
3542 ::mlir::detail::reportFatalInferReturnTypesError(odsState);
3548 build(builder, __state__, std::forward<
decltype(condition)>(condition));
3549 auto __res__ = ::llvm::dyn_cast<ProveDetOp>(builder.create(__state__));
3550 assert(__res__ &&
"builder didn't return the right type");
3555 return create(builder, builder.getLoc(), std::forward<
decltype(condition)>(condition));
3558void ProveDetOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value condition) {
3559 odsState.addOperands(condition);
3560 assert(resultTypes.size() == 1u &&
"mismatched number of results");
3561 odsState.addTypes(resultTypes);
3566 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(condition)>(condition));
3567 auto __res__ = ::llvm::dyn_cast<ProveDetOp>(builder.create(__state__));
3568 assert(__res__ &&
"builder didn't return the right type");
3573 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(condition)>(condition));
3576void ProveDetOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
3577 assert(operands.size() == 1u &&
"mismatched number of parameters");
3578 odsState.addOperands(operands);
3579 odsState.addAttributes(attributes);
3580 assert(resultTypes.size() == 1u &&
"mismatched number of return types");
3581 odsState.addTypes(resultTypes);
3584ProveDetOp ProveDetOp::create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
3586 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(attributes)>(attributes));
3587 auto __res__ = ::llvm::dyn_cast<ProveDetOp>(builder.create(__state__));
3588 assert(__res__ &&
"builder didn't return the right type");
3592ProveDetOp ProveDetOp::create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
3593 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(attributes)>(attributes));
3596void ProveDetOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
3597 assert(operands.size() == 1u &&
"mismatched number of parameters");
3598 odsState.addOperands(operands);
3599 odsState.addAttributes(attributes);
3601 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
3603 odsState.location, operands,
3604 odsState.attributes.getDictionary(odsState.getContext()),
3605 odsState.getRawProperties(),
3606 odsState.regions, inferredReturnTypes))) {
3607 assert(inferredReturnTypes.size() == 1u &&
"mismatched number of return types");
3608 odsState.addTypes(inferredReturnTypes);
3610 ::llvm::report_fatal_error(
"Failed to infer result type(s).");
3614ProveDetOp ProveDetOp::create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
3616 build(builder, __state__, std::forward<
decltype(operands)>(operands), std::forward<
decltype(attributes)>(attributes));
3617 auto __res__ = ::llvm::dyn_cast<ProveDetOp>(builder.create(__state__));
3618 assert(__res__ &&
"builder didn't return the right type");
3623 return create(builder, builder.getLoc(), std::forward<
decltype(operands)>(operands), std::forward<
decltype(attributes)>(attributes));
3626void ProveDetOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands,
const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes) {
3627 assert(operands.size() == 1u &&
"mismatched number of parameters");
3628 odsState.addOperands(operands);
3629 odsState.useProperties(
const_cast<Properties&
>(properties));
3630 odsState.addAttributes(discardableAttributes);
3631 assert(resultTypes.size() == 1u &&
"mismatched number of return types");
3632 odsState.addTypes(resultTypes);
3635ProveDetOp ProveDetOp::create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands,
const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes) {
3637 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(properties)>(properties), std::forward<
decltype(discardableAttributes)>(discardableAttributes));
3638 auto __res__ = ::llvm::dyn_cast<ProveDetOp>(builder.create(__state__));
3639 assert(__res__ &&
"builder didn't return the right type");
3643ProveDetOp ProveDetOp::create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands,
const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes) {
3644 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(properties)>(properties), std::forward<
decltype(discardableAttributes)>(discardableAttributes));
3647void ProveDetOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands,
const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes) {
3648 assert(operands.size() == 1u &&
"mismatched number of parameters");
3649 odsState.addOperands(operands);
3650 odsState.useProperties(
const_cast<Properties &
>(properties));
3651 odsState.addAttributes(discardableAttributes);
3653 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
3655 odsState.location, operands,
3656 odsState.attributes.getDictionary(odsState.getContext()),
3657 odsState.getRawProperties(),
3658 odsState.regions, inferredReturnTypes))) {
3659 assert(inferredReturnTypes.size() == 1u &&
"mismatched number of return types");
3660 odsState.addTypes(inferredReturnTypes);
3662 ::llvm::report_fatal_error(
"Failed to infer result type(s).");
3666ProveDetOp ProveDetOp::create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::ValueRange operands,
const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes) {
3668 build(builder, __state__, std::forward<
decltype(operands)>(operands), std::forward<
decltype(properties)>(properties), std::forward<
decltype(discardableAttributes)>(discardableAttributes));
3669 auto __res__ = ::llvm::dyn_cast<ProveDetOp>(builder.create(__state__));
3670 assert(__res__ &&
"builder didn't return the right type");
3675 return create(builder, builder.getLoc(), std::forward<
decltype(operands)>(operands), std::forward<
decltype(properties)>(properties), std::forward<
decltype(discardableAttributes)>(discardableAttributes));
3680 unsigned index = 0; (void)index;
3683 for (
auto v : valueGroup0) {
3684 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops1(*
this, v.getType(),
"operand", index++)))
3685 return ::mlir::failure();
3689 unsigned index = 0; (void)index;
3692 for (
auto v : valueGroup0) {
3693 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops3(*
this, v.getType(),
"result", index++)))
3694 return ::mlir::failure();
3697 return ::mlir::success();
3704::llvm::LogicalResult
ProveDetOp::inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location> location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::PropertyRef properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type>&inferredReturnTypes) {
3705 inferredReturnTypes.resize(1);
3706 ::mlir::Builder odsBuilder(context);
3707 ::mlir::Type odsInferredType0 = odsBuilder.getIntegerType(1);
3708 inferredReturnTypes[0] = odsInferredType0;
3709 return ::mlir::success();
3713 ::mlir::OpAsmParser::UnresolvedOperand conditionRawOperand{};
3714 ::llvm::ArrayRef<::mlir::OpAsmParser::UnresolvedOperand> conditionOperands(&conditionRawOperand, 1); ::llvm::SMLoc conditionOperandsLoc;
3715 (void)conditionOperandsLoc;
3716 ::mlir::Type conditionRawType{};
3717 ::llvm::ArrayRef<::mlir::Type> conditionTypes(&conditionRawType, 1);
3719 conditionOperandsLoc = parser.getCurrentLocation();
3720 if (parser.parseOperand(conditionRawOperand))
3721 return ::mlir::failure();
3723 auto loc = parser.getCurrentLocation();(void)loc;
3724 if (parser.parseOptionalAttrDict(result.attributes))
3725 return ::mlir::failure();
3727 return parser.emitError(loc) <<
"'" << result.name.getStringRef() <<
"' op ";
3729 return ::mlir::failure();
3731 if (parser.parseColon())
3732 return ::mlir::failure();
3736 if (parser.parseCustomTypeWithFallback(type))
3737 return ::mlir::failure();
3738 conditionRawType = type;
3740 ::mlir::Type odsBuildableType0 = parser.getBuilder().getIntegerType(1);
3741 result.addTypes(odsBuildableType0);
3742 if (parser.resolveOperands(conditionOperands, conditionTypes, conditionOperandsLoc, result.operands))
3743 return ::mlir::failure();
3744 return ::mlir::success();
3750 ::llvm::SmallVector<::llvm::StringRef, 2> elidedAttrs;
3751 _odsPrinter.printOptionalAttrDict((*this)->getAttrs(), elidedAttrs);
3752 _odsPrinter <<
' ' <<
":";
3756 if (
auto validType = ::llvm::dyn_cast<::mlir::Type>(type))
3757 _odsPrinter.printStrippedAttrOrType(validType);
3759 _odsPrinter << type;
3783 return ::mlir::success();
3787 ::mlir::DictionaryAttr dict = ::llvm::dyn_cast<::mlir::DictionaryAttr>(attr);
3789 emitError() <<
"expected DictionaryAttr to set properties";
3790 return ::mlir::failure();
3792 return ::mlir::success();
3796 ::mlir::SmallVector<::mlir::NamedAttribute> attrs;
3797 ::mlir::Builder odsBuilder{ctx};
3800 return odsBuilder.getDictionaryAttr(attrs);
3805 using llvm::hash_value;
3806 return llvm::hash_combine();
3810 return std::nullopt;
3820 return ::mlir::success();
3824 odsState.addOperands(condition);
3829 build(builder, __state__, std::forward<
decltype(condition)>(condition));
3830 auto __res__ = ::llvm::dyn_cast<RequireComputeOp>(builder.create(__state__));
3831 assert(__res__ &&
"builder didn't return the right type");
3836 return create(builder, builder.getLoc(), std::forward<
decltype(condition)>(condition));
3839void RequireComputeOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value condition) {
3840 odsState.addOperands(condition);
3841 assert(resultTypes.size() == 0u &&
"mismatched number of results");
3842 odsState.addTypes(resultTypes);
3847 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(condition)>(condition));
3848 auto __res__ = ::llvm::dyn_cast<RequireComputeOp>(builder.create(__state__));
3849 assert(__res__ &&
"builder didn't return the right type");
3854 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(condition)>(condition));
3857void RequireComputeOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
3858 assert(operands.size() == 1u &&
"mismatched number of parameters");
3859 odsState.addOperands(operands);
3860 odsState.addAttributes(attributes);
3861 assert(resultTypes.size() == 0u &&
"mismatched number of return types");
3862 odsState.addTypes(resultTypes);
3867 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(attributes)>(attributes));
3868 auto __res__ = ::llvm::dyn_cast<RequireComputeOp>(builder.create(__state__));
3869 assert(__res__ &&
"builder didn't return the right type");
3874 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(attributes)>(attributes));
3877void RequireComputeOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands,
const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes) {
3878 assert(operands.size() == 1u &&
"mismatched number of parameters");
3879 odsState.addOperands(operands);
3880 odsState.useProperties(
const_cast<Properties&
>(properties));
3881 odsState.addAttributes(discardableAttributes);
3882 assert(resultTypes.size() == 0u &&
"mismatched number of return types");
3883 odsState.addTypes(resultTypes);
3888 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(properties)>(properties), std::forward<
decltype(discardableAttributes)>(discardableAttributes));
3889 auto __res__ = ::llvm::dyn_cast<RequireComputeOp>(builder.create(__state__));
3890 assert(__res__ &&
"builder didn't return the right type");
3895 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(properties)>(properties), std::forward<
decltype(discardableAttributes)>(discardableAttributes));
3900 unsigned index = 0; (void)index;
3903 for (
auto v : valueGroup0) {
3904 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops3(*
this, v.getType(),
"operand", index++)))
3905 return ::mlir::failure();
3908 return ::mlir::success();
3916 ::mlir::OpAsmParser::UnresolvedOperand conditionRawOperand{};
3917 ::llvm::ArrayRef<::mlir::OpAsmParser::UnresolvedOperand> conditionOperands(&conditionRawOperand, 1); ::llvm::SMLoc conditionOperandsLoc;
3918 (void)conditionOperandsLoc;
3920 conditionOperandsLoc = parser.getCurrentLocation();
3921 if (parser.parseOperand(conditionRawOperand))
3922 return ::mlir::failure();
3924 auto loc = parser.getCurrentLocation();(void)loc;
3925 if (parser.parseOptionalAttrDict(result.attributes))
3926 return ::mlir::failure();
3928 return parser.emitError(loc) <<
"'" << result.name.getStringRef() <<
"' op ";
3930 return ::mlir::failure();
3932 ::mlir::Type odsBuildableType0 = parser.getBuilder().getIntegerType(1);
3933 if (parser.resolveOperands(conditionOperands, odsBuildableType0, conditionOperandsLoc, result.operands))
3934 return ::mlir::failure();
3935 return ::mlir::success();
3941 ::llvm::SmallVector<::llvm::StringRef, 2> elidedAttrs;
3942 _odsPrinter.printOptionalAttrDict((*this)->getAttrs(), elidedAttrs);
3948 ::mlir::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects
3950 effects.emplace_back(::mlir::MemoryEffects::Write::get());
3972 return ::mlir::success();
3976 ::mlir::DictionaryAttr dict = ::llvm::dyn_cast<::mlir::DictionaryAttr>(attr);
3978 emitError() <<
"expected DictionaryAttr to set properties";
3979 return ::mlir::failure();
3981 return ::mlir::success();
3985 ::mlir::SmallVector<::mlir::NamedAttribute> attrs;
3986 ::mlir::Builder odsBuilder{ctx};
3989 return odsBuilder.getDictionaryAttr(attrs);
3994 using llvm::hash_value;
3995 return llvm::hash_combine();
3999 return std::nullopt;
4009 return ::mlir::success();
4013 odsState.addOperands(condition);
4018 build(builder, __state__, std::forward<
decltype(condition)>(condition));
4019 auto __res__ = ::llvm::dyn_cast<RequireConstrainOp>(builder.create(__state__));
4020 assert(__res__ &&
"builder didn't return the right type");
4025 return create(builder, builder.getLoc(), std::forward<
decltype(condition)>(condition));
4028void RequireConstrainOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value condition) {
4029 odsState.addOperands(condition);
4030 assert(resultTypes.size() == 0u &&
"mismatched number of results");
4031 odsState.addTypes(resultTypes);
4036 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(condition)>(condition));
4037 auto __res__ = ::llvm::dyn_cast<RequireConstrainOp>(builder.create(__state__));
4038 assert(__res__ &&
"builder didn't return the right type");
4043 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(condition)>(condition));
4046void RequireConstrainOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
4047 assert(operands.size() == 1u &&
"mismatched number of parameters");
4048 odsState.addOperands(operands);
4049 odsState.addAttributes(attributes);
4050 assert(resultTypes.size() == 0u &&
"mismatched number of return types");
4051 odsState.addTypes(resultTypes);
4056 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(attributes)>(attributes));
4057 auto __res__ = ::llvm::dyn_cast<RequireConstrainOp>(builder.create(__state__));
4058 assert(__res__ &&
"builder didn't return the right type");
4063 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(attributes)>(attributes));
4066void RequireConstrainOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands,
const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes) {
4067 assert(operands.size() == 1u &&
"mismatched number of parameters");
4068 odsState.addOperands(operands);
4069 odsState.useProperties(
const_cast<Properties&
>(properties));
4070 odsState.addAttributes(discardableAttributes);
4071 assert(resultTypes.size() == 0u &&
"mismatched number of return types");
4072 odsState.addTypes(resultTypes);
4077 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(properties)>(properties), std::forward<
decltype(discardableAttributes)>(discardableAttributes));
4078 auto __res__ = ::llvm::dyn_cast<RequireConstrainOp>(builder.create(__state__));
4079 assert(__res__ &&
"builder didn't return the right type");
4084 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(properties)>(properties), std::forward<
decltype(discardableAttributes)>(discardableAttributes));
4089 unsigned index = 0; (void)index;
4092 for (
auto v : valueGroup0) {
4093 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops3(*
this, v.getType(),
"operand", index++)))
4094 return ::mlir::failure();
4097 return ::mlir::success();
4105 ::mlir::OpAsmParser::UnresolvedOperand conditionRawOperand{};
4106 ::llvm::ArrayRef<::mlir::OpAsmParser::UnresolvedOperand> conditionOperands(&conditionRawOperand, 1); ::llvm::SMLoc conditionOperandsLoc;
4107 (void)conditionOperandsLoc;
4109 conditionOperandsLoc = parser.getCurrentLocation();
4110 if (parser.parseOperand(conditionRawOperand))
4111 return ::mlir::failure();
4113 auto loc = parser.getCurrentLocation();(void)loc;
4114 if (parser.parseOptionalAttrDict(result.attributes))
4115 return ::mlir::failure();
4117 return parser.emitError(loc) <<
"'" << result.name.getStringRef() <<
"' op ";
4119 return ::mlir::failure();
4121 ::mlir::Type odsBuildableType0 = parser.getBuilder().getIntegerType(1);
4122 if (parser.resolveOperands(conditionOperands, odsBuildableType0, conditionOperandsLoc, result.operands))
4123 return ::mlir::failure();
4124 return ::mlir::success();
4130 ::llvm::SmallVector<::llvm::StringRef, 2> elidedAttrs;
4131 _odsPrinter.printOptionalAttrDict((*this)->getAttrs(), elidedAttrs);
4137 ::mlir::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects
4139 effects.emplace_back(::mlir::MemoryEffects::Write::get());
4161 return ::mlir::success();
4165 ::mlir::DictionaryAttr dict = ::llvm::dyn_cast<::mlir::DictionaryAttr>(attr);
4167 emitError() <<
"expected DictionaryAttr to set properties";
4168 return ::mlir::failure();
4170 return ::mlir::success();
4174 ::mlir::SmallVector<::mlir::NamedAttribute> attrs;
4175 ::mlir::Builder odsBuilder{ctx};
4178 return odsBuilder.getDictionaryAttr(attrs);
4183 using llvm::hash_value;
4184 return llvm::hash_combine();
4188 return std::nullopt;
4197::llvm::LogicalResult
StepOp::verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError) {
4198 return ::mlir::success();
4201void StepOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState) {
4202 (void)odsState.addRegion();
4207 build(builder, __state__);
4208 auto __res__ = ::llvm::dyn_cast<StepOp>(builder.create(__state__));
4209 assert(__res__ &&
"builder didn't return the right type");
4214 return create(builder, builder.getLoc());
4217void StepOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes) {
4218 (void)odsState.addRegion();
4219 assert(resultTypes.size() == 0u &&
"mismatched number of results");
4220 odsState.addTypes(resultTypes);
4225 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes));
4226 auto __res__ = ::llvm::dyn_cast<StepOp>(builder.create(__state__));
4227 assert(__res__ &&
"builder didn't return the right type");
4232 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes));
4235void StepOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
4236 assert(operands.size() == 0u &&
"mismatched number of parameters");
4237 odsState.addOperands(operands);
4238 odsState.addAttributes(attributes);
4239 for (
unsigned i = 0; i != 1; ++i)
4240 (
void)odsState.addRegion();
4241 assert(resultTypes.size() == 0u &&
"mismatched number of return types");
4242 odsState.addTypes(resultTypes);
4245StepOp StepOp::create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
4247 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(attributes)>(attributes));
4248 auto __res__ = ::llvm::dyn_cast<StepOp>(builder.create(__state__));
4249 assert(__res__ &&
"builder didn't return the right type");
4253StepOp StepOp::create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
4254 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(attributes)>(attributes));
4257void StepOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands,
const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes) {
4258 assert(operands.size() == 0u &&
"mismatched number of parameters");
4259 odsState.addOperands(operands);
4260 odsState.useProperties(
const_cast<Properties&
>(properties));
4261 odsState.addAttributes(discardableAttributes);
4262 for (
unsigned i = 0; i != 1; ++i)
4263 (
void)odsState.addRegion();
4264 assert(resultTypes.size() == 0u &&
"mismatched number of return types");
4265 odsState.addTypes(resultTypes);
4268StepOp StepOp::create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands,
const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes) {
4270 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(properties)>(properties), std::forward<
decltype(discardableAttributes)>(discardableAttributes));
4271 auto __res__ = ::llvm::dyn_cast<StepOp>(builder.create(__state__));
4272 assert(__res__ &&
"builder didn't return the right type");
4276StepOp StepOp::create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands,
const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes) {
4277 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(properties)>(properties), std::forward<
decltype(discardableAttributes)>(discardableAttributes));
4282 unsigned index = 0; (void)index;
4284 for (
auto ®ion : ::llvm::MutableArrayRef((*this)->getRegion(0)))
4285 if (::mlir::failed(__mlir_ods_local_region_constraint_Ops2(*
this, region,
"region", index++)))
4286 return ::mlir::failure();
4288 return ::mlir::success();
4295::mlir::ParseResult
StepOp::parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result) {
4296 std::unique_ptr<::mlir::Region> regionRegion = std::make_unique<::mlir::Region>();
4298 if (parser.parseRegion(*regionRegion))
4299 return ::mlir::failure();
4301 if (regionRegion->empty()) regionRegion->emplaceBlock();
4303 auto loc = parser.getCurrentLocation();(void)loc;
4304 if (parser.parseOptionalAttrDict(result.attributes))
4305 return ::mlir::failure();
4307 return parser.emitError(loc) <<
"'" << result.name.getStringRef() <<
"' op ";
4309 return ::mlir::failure();
4311 result.addRegion(std::move(regionRegion));
4312 return ::mlir::success();
4318 ::llvm::SmallVector<::llvm::StringRef, 2> elidedAttrs;
4319 _odsPrinter.printOptionalAttrDict((*this)->getAttrs(), elidedAttrs);
4325 ::mlir::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects
4327 effects.emplace_back(::mlir::MemoryEffects::Write::get());
4349 return ::mlir::success();
4353 ::mlir::DictionaryAttr dict = ::llvm::dyn_cast<::mlir::DictionaryAttr>(attr);
4355 emitError() <<
"expected DictionaryAttr to set properties";
4356 return ::mlir::failure();
4358 return ::mlir::success();
4362 ::mlir::SmallVector<::mlir::NamedAttribute> attrs;
4363 ::mlir::Builder odsBuilder{ctx};
4366 return odsBuilder.getDictionaryAttr(attrs);
4371 using llvm::hash_value;
4372 return llvm::hash_combine();
4376 return std::nullopt;
4385::llvm::LogicalResult
StepYieldOp::verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError) {
4386 return ::mlir::success();
4389void StepYieldOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value value) {
4390 odsState.addOperands(value);
4395 build(builder, __state__, std::forward<
decltype(value)>(value));
4396 auto __res__ = ::llvm::dyn_cast<StepYieldOp>(builder.create(__state__));
4397 assert(__res__ &&
"builder didn't return the right type");
4402 return create(builder, builder.getLoc(), std::forward<
decltype(value)>(value));
4405void StepYieldOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value value) {
4406 odsState.addOperands(value);
4407 assert(resultTypes.size() == 0u &&
"mismatched number of results");
4408 odsState.addTypes(resultTypes);
4413 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(value)>(value));
4414 auto __res__ = ::llvm::dyn_cast<StepYieldOp>(builder.create(__state__));
4415 assert(__res__ &&
"builder didn't return the right type");
4420 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(value)>(value));
4423void StepYieldOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
4424 assert(operands.size() == 1u &&
"mismatched number of parameters");
4425 odsState.addOperands(operands);
4426 odsState.addAttributes(attributes);
4427 assert(resultTypes.size() == 0u &&
"mismatched number of return types");
4428 odsState.addTypes(resultTypes);
4431StepYieldOp StepYieldOp::create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
4433 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(attributes)>(attributes));
4434 auto __res__ = ::llvm::dyn_cast<StepYieldOp>(builder.create(__state__));
4435 assert(__res__ &&
"builder didn't return the right type");
4439StepYieldOp StepYieldOp::create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
4440 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(attributes)>(attributes));
4443void StepYieldOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands,
const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes) {
4444 assert(operands.size() == 1u &&
"mismatched number of parameters");
4445 odsState.addOperands(operands);
4446 odsState.useProperties(
const_cast<Properties&
>(properties));
4447 odsState.addAttributes(discardableAttributes);
4448 assert(resultTypes.size() == 0u &&
"mismatched number of return types");
4449 odsState.addTypes(resultTypes);
4452StepYieldOp StepYieldOp::create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands,
const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes) {
4454 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(properties)>(properties), std::forward<
decltype(discardableAttributes)>(discardableAttributes));
4455 auto __res__ = ::llvm::dyn_cast<StepYieldOp>(builder.create(__state__));
4456 assert(__res__ &&
"builder didn't return the right type");
4460StepYieldOp StepYieldOp::create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands,
const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes) {
4461 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(properties)>(properties), std::forward<
decltype(discardableAttributes)>(discardableAttributes));
4466 unsigned index = 0; (void)index;
4469 for (
auto v : valueGroup0) {
4470 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops3(*
this, v.getType(),
"operand", index++)))
4471 return ::mlir::failure();
4474 return ::mlir::success();
4482 ::mlir::OpAsmParser::UnresolvedOperand valueRawOperand{};
4483 ::llvm::ArrayRef<::mlir::OpAsmParser::UnresolvedOperand> valueOperands(&valueRawOperand, 1); ::llvm::SMLoc valueOperandsLoc;
4484 (void)valueOperandsLoc;
4486 valueOperandsLoc = parser.getCurrentLocation();
4487 if (parser.parseOperand(valueRawOperand))
4488 return ::mlir::failure();
4490 auto loc = parser.getCurrentLocation();(void)loc;
4491 if (parser.parseOptionalAttrDict(result.attributes))
4492 return ::mlir::failure();
4494 return parser.emitError(loc) <<
"'" << result.name.getStringRef() <<
"' op ";
4496 return ::mlir::failure();
4498 ::mlir::Type odsBuildableType0 = parser.getBuilder().getIntegerType(1);
4499 if (parser.resolveOperands(valueOperands, odsBuildableType0, valueOperandsLoc, result.operands))
4500 return ::mlir::failure();
4501 return ::mlir::success();
4507 ::llvm::SmallVector<::llvm::StringRef, 2> elidedAttrs;
4508 _odsPrinter.printOptionalAttrDict((*this)->getAttrs(), elidedAttrs);
4531 return ::mlir::success();
4535 ::mlir::DictionaryAttr dict = ::llvm::dyn_cast<::mlir::DictionaryAttr>(attr);
4537 emitError() <<
"expected DictionaryAttr to set properties";
4538 return ::mlir::failure();
4540 return ::mlir::success();
4544 ::mlir::SmallVector<::mlir::NamedAttribute> attrs;
4545 ::mlir::Builder odsBuilder{ctx};
4548 return odsBuilder.getDictionaryAttr(attrs);
4553 using llvm::hash_value;
4554 return llvm::hash_combine();
4558 return std::nullopt;
4568 return ::mlir::success();
4571void VerifAssertOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value condition) {
4572 odsState.addOperands(condition);
4577 build(builder, __state__, std::forward<
decltype(condition)>(condition));
4578 auto __res__ = ::llvm::dyn_cast<VerifAssertOp>(builder.create(__state__));
4579 assert(__res__ &&
"builder didn't return the right type");
4584 return create(builder, builder.getLoc(), std::forward<
decltype(condition)>(condition));
4587void VerifAssertOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value condition) {
4588 odsState.addOperands(condition);
4589 assert(resultTypes.size() == 0u &&
"mismatched number of results");
4590 odsState.addTypes(resultTypes);
4595 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(condition)>(condition));
4596 auto __res__ = ::llvm::dyn_cast<VerifAssertOp>(builder.create(__state__));
4597 assert(__res__ &&
"builder didn't return the right type");
4602 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(condition)>(condition));
4605void VerifAssertOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
4606 assert(operands.size() == 1u &&
"mismatched number of parameters");
4607 odsState.addOperands(operands);
4608 odsState.addAttributes(attributes);
4609 assert(resultTypes.size() == 0u &&
"mismatched number of return types");
4610 odsState.addTypes(resultTypes);
4613VerifAssertOp VerifAssertOp::create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
4615 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(attributes)>(attributes));
4616 auto __res__ = ::llvm::dyn_cast<VerifAssertOp>(builder.create(__state__));
4617 assert(__res__ &&
"builder didn't return the right type");
4621VerifAssertOp VerifAssertOp::create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
4622 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(attributes)>(attributes));
4625void VerifAssertOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands,
const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes) {
4626 assert(operands.size() == 1u &&
"mismatched number of parameters");
4627 odsState.addOperands(operands);
4628 odsState.useProperties(
const_cast<Properties&
>(properties));
4629 odsState.addAttributes(discardableAttributes);
4630 assert(resultTypes.size() == 0u &&
"mismatched number of return types");
4631 odsState.addTypes(resultTypes);
4634VerifAssertOp VerifAssertOp::create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands,
const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes) {
4636 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(properties)>(properties), std::forward<
decltype(discardableAttributes)>(discardableAttributes));
4637 auto __res__ = ::llvm::dyn_cast<VerifAssertOp>(builder.create(__state__));
4638 assert(__res__ &&
"builder didn't return the right type");
4643 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(properties)>(properties), std::forward<
decltype(discardableAttributes)>(discardableAttributes));
4648 unsigned index = 0; (void)index;
4651 for (
auto v : valueGroup0) {
4652 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops3(*
this, v.getType(),
"operand", index++)))
4653 return ::mlir::failure();
4656 return ::mlir::success();
4664 ::mlir::OpAsmParser::UnresolvedOperand conditionRawOperand{};
4665 ::llvm::ArrayRef<::mlir::OpAsmParser::UnresolvedOperand> conditionOperands(&conditionRawOperand, 1); ::llvm::SMLoc conditionOperandsLoc;
4666 (void)conditionOperandsLoc;
4668 conditionOperandsLoc = parser.getCurrentLocation();
4669 if (parser.parseOperand(conditionRawOperand))
4670 return ::mlir::failure();
4672 auto loc = parser.getCurrentLocation();(void)loc;
4673 if (parser.parseOptionalAttrDict(result.attributes))
4674 return ::mlir::failure();
4676 return parser.emitError(loc) <<
"'" << result.name.getStringRef() <<
"' op ";
4678 return ::mlir::failure();
4680 ::mlir::Type odsBuildableType0 = parser.getBuilder().getIntegerType(1);
4681 if (parser.resolveOperands(conditionOperands, odsBuildableType0, conditionOperandsLoc, result.operands))
4682 return ::mlir::failure();
4683 return ::mlir::success();
4689 ::llvm::SmallVector<::llvm::StringRef, 2> elidedAttrs;
4690 _odsPrinter.printOptionalAttrDict((*this)->getAttrs(), elidedAttrs);
4696 ::mlir::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects
4698 effects.emplace_back(::mlir::MemoryEffects::Write::get());
4720 return ::mlir::success();
4724 ::mlir::DictionaryAttr dict = ::llvm::dyn_cast<::mlir::DictionaryAttr>(attr);
4726 emitError() <<
"expected DictionaryAttr to set properties";
4727 return ::mlir::failure();
4729 return ::mlir::success();
4733 ::mlir::SmallVector<::mlir::NamedAttribute> attrs;
4734 ::mlir::Builder odsBuilder{ctx};
4737 return odsBuilder.getDictionaryAttr(attrs);
4742 using llvm::hash_value;
4743 return llvm::hash_combine();
4747 return std::nullopt;
4757 return ::mlir::success();
4760void VerifProveOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value condition) {
4761 odsState.addOperands(condition);
4766 build(builder, __state__, std::forward<
decltype(condition)>(condition));
4767 auto __res__ = ::llvm::dyn_cast<VerifProveOp>(builder.create(__state__));
4768 assert(__res__ &&
"builder didn't return the right type");
4773 return create(builder, builder.getLoc(), std::forward<
decltype(condition)>(condition));
4776void VerifProveOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value condition) {
4777 odsState.addOperands(condition);
4778 assert(resultTypes.size() == 0u &&
"mismatched number of results");
4779 odsState.addTypes(resultTypes);
4784 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(condition)>(condition));
4785 auto __res__ = ::llvm::dyn_cast<VerifProveOp>(builder.create(__state__));
4786 assert(__res__ &&
"builder didn't return the right type");
4791 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(condition)>(condition));
4794void VerifProveOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
4795 assert(operands.size() == 1u &&
"mismatched number of parameters");
4796 odsState.addOperands(operands);
4797 odsState.addAttributes(attributes);
4798 assert(resultTypes.size() == 0u &&
"mismatched number of return types");
4799 odsState.addTypes(resultTypes);
4802VerifProveOp VerifProveOp::create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
4804 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(attributes)>(attributes));
4805 auto __res__ = ::llvm::dyn_cast<VerifProveOp>(builder.create(__state__));
4806 assert(__res__ &&
"builder didn't return the right type");
4810VerifProveOp VerifProveOp::create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
4811 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(attributes)>(attributes));
4814void VerifProveOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands,
const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes) {
4815 assert(operands.size() == 1u &&
"mismatched number of parameters");
4816 odsState.addOperands(operands);
4817 odsState.useProperties(
const_cast<Properties&
>(properties));
4818 odsState.addAttributes(discardableAttributes);
4819 assert(resultTypes.size() == 0u &&
"mismatched number of return types");
4820 odsState.addTypes(resultTypes);
4823VerifProveOp VerifProveOp::create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands,
const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes) {
4825 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(properties)>(properties), std::forward<
decltype(discardableAttributes)>(discardableAttributes));
4826 auto __res__ = ::llvm::dyn_cast<VerifProveOp>(builder.create(__state__));
4827 assert(__res__ &&
"builder didn't return the right type");
4831VerifProveOp VerifProveOp::create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands,
const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes) {
4832 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(properties)>(properties), std::forward<
decltype(discardableAttributes)>(discardableAttributes));
4837 unsigned index = 0; (void)index;
4840 for (
auto v : valueGroup0) {
4841 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops3(*
this, v.getType(),
"operand", index++)))
4842 return ::mlir::failure();
4845 return ::mlir::success();
4853 ::mlir::OpAsmParser::UnresolvedOperand conditionRawOperand{};
4854 ::llvm::ArrayRef<::mlir::OpAsmParser::UnresolvedOperand> conditionOperands(&conditionRawOperand, 1); ::llvm::SMLoc conditionOperandsLoc;
4855 (void)conditionOperandsLoc;
4857 conditionOperandsLoc = parser.getCurrentLocation();
4858 if (parser.parseOperand(conditionRawOperand))
4859 return ::mlir::failure();
4861 auto loc = parser.getCurrentLocation();(void)loc;
4862 if (parser.parseOptionalAttrDict(result.attributes))
4863 return ::mlir::failure();
4865 return parser.emitError(loc) <<
"'" << result.name.getStringRef() <<
"' op ";
4867 return ::mlir::failure();
4869 ::mlir::Type odsBuildableType0 = parser.getBuilder().getIntegerType(1);
4870 if (parser.resolveOperands(conditionOperands, odsBuildableType0, conditionOperandsLoc, result.operands))
4871 return ::mlir::failure();
4872 return ::mlir::success();
4878 ::llvm::SmallVector<::llvm::StringRef, 2> elidedAttrs;
4879 _odsPrinter.printOptionalAttrDict((*this)->getAttrs(), elidedAttrs);
4885 ::mlir::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects
4887 effects.emplace_back(::mlir::MemoryEffects::Write::get());
4909 return ::mlir::success();
4913 ::mlir::DictionaryAttr dict = ::llvm::dyn_cast<::mlir::DictionaryAttr>(attr);
4915 emitError() <<
"expected DictionaryAttr to set properties";
4916 return ::mlir::failure();
4918 return ::mlir::success();
4922 ::mlir::SmallVector<::mlir::NamedAttribute> attrs;
4923 ::mlir::Builder odsBuilder{ctx};
4926 return odsBuilder.getDictionaryAttr(attrs);
4931 using llvm::hash_value;
4932 return llvm::hash_combine();
4936 return std::nullopt;
4946 return ::mlir::success();
4950 odsState.addOperands(condition);
4955 build(builder, __state__, std::forward<
decltype(condition)>(condition));
4956 auto __res__ = ::llvm::dyn_cast<VerifSMTProveOp>(builder.create(__state__));
4957 assert(__res__ &&
"builder didn't return the right type");
4962 return create(builder, builder.getLoc(), std::forward<
decltype(condition)>(condition));
4965void VerifSMTProveOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value condition) {
4966 odsState.addOperands(condition);
4967 assert(resultTypes.size() == 0u &&
"mismatched number of results");
4968 odsState.addTypes(resultTypes);
4973 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(condition)>(condition));
4974 auto __res__ = ::llvm::dyn_cast<VerifSMTProveOp>(builder.create(__state__));
4975 assert(__res__ &&
"builder didn't return the right type");
4980 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(condition)>(condition));
4983void VerifSMTProveOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
4984 assert(operands.size() == 1u &&
"mismatched number of parameters");
4985 odsState.addOperands(operands);
4986 odsState.addAttributes(attributes);
4987 assert(resultTypes.size() == 0u &&
"mismatched number of return types");
4988 odsState.addTypes(resultTypes);
4991VerifSMTProveOp VerifSMTProveOp::create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
4993 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(attributes)>(attributes));
4994 auto __res__ = ::llvm::dyn_cast<VerifSMTProveOp>(builder.create(__state__));
4995 assert(__res__ &&
"builder didn't return the right type");
5000 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(attributes)>(attributes));
5003void VerifSMTProveOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands,
const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes) {
5004 assert(operands.size() == 1u &&
"mismatched number of parameters");
5005 odsState.addOperands(operands);
5006 odsState.useProperties(
const_cast<Properties&
>(properties));
5007 odsState.addAttributes(discardableAttributes);
5008 assert(resultTypes.size() == 0u &&
"mismatched number of return types");
5009 odsState.addTypes(resultTypes);
5014 build(builder, __state__, std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(properties)>(properties), std::forward<
decltype(discardableAttributes)>(discardableAttributes));
5015 auto __res__ = ::llvm::dyn_cast<VerifSMTProveOp>(builder.create(__state__));
5016 assert(__res__ &&
"builder didn't return the right type");
5021 return create(builder, builder.getLoc(), std::forward<
decltype(resultTypes)>(resultTypes), std::forward<
decltype(operands)>(operands), std::forward<
decltype(properties)>(properties), std::forward<
decltype(discardableAttributes)>(discardableAttributes));
5026 unsigned index = 0; (void)index;
5029 for (
auto v : valueGroup0) {
5030 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops7(*
this, v.getType(),
"operand", index++)))
5031 return ::mlir::failure();
5034 return ::mlir::success();
5042 ::mlir::OpAsmParser::UnresolvedOperand conditionRawOperand{};
5043 ::llvm::ArrayRef<::mlir::OpAsmParser::UnresolvedOperand> conditionOperands(&conditionRawOperand, 1); ::llvm::SMLoc conditionOperandsLoc;
5044 (void)conditionOperandsLoc;
5046 conditionOperandsLoc = parser.getCurrentLocation();
5047 if (parser.parseOperand(conditionRawOperand))
5048 return ::mlir::failure();
5050 auto loc = parser.getCurrentLocation();(void)loc;
5051 if (parser.parseOptionalAttrDict(result.attributes))
5052 return ::mlir::failure();
5054 return parser.emitError(loc) <<
"'" << result.name.getStringRef() <<
"' op ";
5056 return ::mlir::failure();
5058 ::mlir::Type odsBuildableType0 = parser.getBuilder().getType<mlir::smt::BoolType>();
5059 if (parser.resolveOperands(conditionOperands, odsBuildableType0, conditionOperandsLoc, result.operands))
5060 return ::mlir::failure();
5061 return ::mlir::success();
5067 ::llvm::SmallVector<::llvm::StringRef, 2> elidedAttrs;
5068 _odsPrinter.printOptionalAttrDict((*this)->getAttrs(), elidedAttrs);
static FeltType get(::mlir::MLIRContext *context, ::mlir::StringAttr fieldName)
AssumeDetOpAdaptor(AssumeDetOp op)
AssumeDetOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::llvm::LogicalResult verify(::mlir::Location loc)
::mlir::ValueRange getOperands()
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
::mlir::Operation::operand_range getODSOperands(unsigned index)
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
::mlir::TypedValue<::mlir::Type > getHint()
void print(::mlir::OpAsmPrinter &_odsPrinter)
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
static constexpr ::llvm::StringLiteral getOperationName()
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
FoldAdaptor::Properties Properties
static AssumeDetOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Value hint)
::llvm::LogicalResult verifyInvariants()
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
::llvm::LogicalResult verifyInvariantsImpl()
static llvm::hash_code computePropertiesHash(const Properties &prop)
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value hint)
ContractEndOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::llvm::LogicalResult verify(::mlir::Location loc)
ContractEndOpAdaptor(ContractEndOp op)
::mlir::ValueRange getOperands()
static constexpr ::llvm::StringLiteral getOperationName()
FoldAdaptor::Properties Properties
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
static ContractEndOp create(::mlir::OpBuilder &builder, ::mlir::Location location)
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
::llvm::LogicalResult verifyInvariantsImpl()
::llvm::LogicalResult verifyInvariants()
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState)
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
void print(::mlir::OpAsmPrinter &_odsPrinter)
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
static llvm::hash_code computePropertiesHash(const Properties &prop)
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
ContractOpAdaptor(ContractOp op)
::llvm::LogicalResult verify(::mlir::Location loc)
ContractOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::mlir::ValueRange getOperands()
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
::mlir::StringAttr getFunctionTypeAttrName()
::mlir::StringAttr getResAttrsAttrName()
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
static llvm::hash_code computePropertiesHash(const Properties &prop)
::std::optional< ::mlir::ArrayAttr > getResAttrs()
static constexpr ::llvm::StringLiteral getOperationName()
::mlir::StringAttr getTargetAttrName()
void setFunctionType(::mlir::FunctionType attrValue)
::mlir::StringAttr getSymNameAttr()
::llvm::LogicalResult verifyInvariants()
::llvm::LogicalResult verify()
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::StringAttr sym_name, ::mlir::SymbolRefAttr target, ::mlir::TypeAttr function_type, ::mlir::ArrayAttr arg_attrs={}, ::mlir::ArrayAttr res_attrs={})
::llvm::LogicalResult setPropertiesFromParsedAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
::std::optional< ::mlir::ArrayAttr > getArgAttrs()
::mlir::FunctionType getFunctionType()
::mlir::StringAttr getSymNameAttrName()
::mlir::StringAttr getArgAttrsAttrName()
::mlir::TypeAttr getFunctionTypeAttr()
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
::mlir::SymbolRefAttr getTargetAttr()
::mlir::SymbolRefAttr getFullyQualifiedName(bool requireParent=true)
Return the full name for this contract from the root module, including all surrounding symbol table n...
::llvm::LogicalResult verifyInvariantsImpl()
::mlir::ArrayAttr getArgAttrsAttr()
void writeProperties(::mlir::DialectBytecodeWriter &writer)
void setSymName(::llvm::StringRef attrValue)
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
::mlir::SymbolRefAttr getTarget()
FoldAdaptor::Properties Properties
static ContractOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::StringAttr sym_name, ::mlir::SymbolRefAttr target, ::mlir::TypeAttr function_type, ::mlir::ArrayAttr arg_attrs={}, ::mlir::ArrayAttr res_attrs={})
::mlir::ArrayAttr getResAttrsAttr()
::llvm::StringRef getSymName()
DecreasesOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
DecreasesOpAdaptor(DecreasesOp op)
::llvm::LogicalResult verify(::mlir::Location loc)
::mlir::ValueRange getOperands()
FoldAdaptor::Properties Properties
::mlir::TypedValue<::llzk::felt::FeltType > getValue()
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
static constexpr ::llvm::StringLiteral getOperationName()
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value value)
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
::llvm::LogicalResult verifyInvariantsImpl()
::mlir::Operation::operand_range getODSOperands(unsigned index)
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
static llvm::hash_code computePropertiesHash(const Properties &prop)
static DecreasesOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Value value)
::llvm::LogicalResult verifyInvariants()
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
void print(::mlir::OpAsmPrinter &_odsPrinter)
EnsureComputeOpAdaptor(EnsureComputeOp op)
::llvm::LogicalResult verify(::mlir::Location loc)
EnsureComputeOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::mlir::ValueRange getOperands()
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
::llvm::LogicalResult verifyInvariants()
static EnsureComputeOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Value condition)
static constexpr ::llvm::StringLiteral getOperationName()
void print(::mlir::OpAsmPrinter &_odsPrinter)
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
::mlir::Operation::operand_range getODSOperands(unsigned index)
FoldAdaptor::Properties Properties
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
static llvm::hash_code computePropertiesHash(const Properties &prop)
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value condition)
::llvm::LogicalResult verifyInvariantsImpl()
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
::mlir::TypedValue<::mlir::IntegerType > getCondition()
::llvm::LogicalResult verify(::mlir::Location loc)
EnsureConstrainOpAdaptor(EnsureConstrainOp op)
EnsureConstrainOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::mlir::ValueRange getOperands()
::mlir::Operation::operand_range getODSOperands(unsigned index)
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
static constexpr ::llvm::StringLiteral getOperationName()
::llvm::LogicalResult verifyInvariants()
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
static EnsureConstrainOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Value condition)
void print(::mlir::OpAsmPrinter &_odsPrinter)
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
::llvm::LogicalResult verifyInvariantsImpl()
FoldAdaptor::Properties Properties
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value condition)
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
static llvm::hash_code computePropertiesHash(const Properties &prop)
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
::mlir::TypedValue<::mlir::IntegerType > getCondition()
::llvm::LogicalResult verify(::mlir::Location loc)
IncludeOpAdaptor(IncludeOp op)
IncludeOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::mlir::ValueRange getOperands()
void setNumDimsPerMap(::llvm::ArrayRef< int32_t > attrValue)
::mlir::MutableOperandRange getArgOperandsMutable()
::mlir::ArrayAttr getTemplateParamsAttr()
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
::llvm::LogicalResult verifyInvariantsImpl()
static llvm::hash_code computePropertiesHash(const Properties &prop)
::mlir::Operation::operand_range getODSOperands(unsigned index)
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
void setMapOpGroupSizes(::llvm::ArrayRef< int32_t > attrValue)
::mlir::OperandRangeRange getMapOperands()
::llvm::LogicalResult setPropertiesFromParsedAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
::llvm::ArrayRef< int32_t > getMapOpGroupSizes()
::std::optional< ::mlir::ArrayAttr > getResAttrs()
void writeProperties(::mlir::DialectBytecodeWriter &writer)
::mlir::SymbolRefAttr getCalleeAttr()
FoldAdaptor::Properties Properties
::mlir::StringAttr getResAttrsAttrName()
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
::mlir::Operation::operand_range getArgOperands()
::mlir::StringAttr getArgAttrsAttrName()
::mlir::ArrayAttr getResAttrsAttr()
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
::mlir::SymbolRefAttr getCallee()
::mlir::StringAttr getCalleeAttrName()
::mlir::StringAttr getMapOpGroupSizesAttrName()
::std::optional< ::mlir::ArrayAttr > getArgAttrs()
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
::mlir::MutableOperandRangeRange getMapOperandsMutable()
::std::optional< ::mlir::ArrayAttr > getTemplateParams()
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::SymbolRefAttr callee, ::mlir::ValueRange argOperands={}, ::llvm::ArrayRef<::mlir::Attribute > templateParams={})
void print(::mlir::OpAsmPrinter &_odsPrinter)
static void populateDefaultProperties(::mlir::OperationName opName, Properties &properties)
::llvm::ArrayRef< int32_t > getNumDimsPerMap()
static IncludeOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::SymbolRefAttr callee, ::mlir::ValueRange argOperands={}, ::llvm::ArrayRef<::mlir::Attribute > templateParams={})
::mlir::StringAttr getNumDimsPerMapAttrName()
::mlir::DenseI32ArrayAttr getNumDimsPerMapAttr()
::llvm::LogicalResult verifyInvariants()
::mlir::ArrayAttr getArgAttrsAttr()
static constexpr ::llvm::StringLiteral getOperationName()
::mlir::DenseI32ArrayAttr getMapOpGroupSizesAttr()
::mlir::StringAttr getTemplateParamsAttrName()
IncreasesOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
IncreasesOpAdaptor(IncreasesOp op)
::llvm::LogicalResult verify(::mlir::Location loc)
::mlir::ValueRange getOperands()
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
static llvm::hash_code computePropertiesHash(const Properties &prop)
static constexpr ::llvm::StringLiteral getOperationName()
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
::llvm::LogicalResult verifyInvariants()
void print(::mlir::OpAsmPrinter &_odsPrinter)
::llvm::LogicalResult verifyInvariantsImpl()
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value value)
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
::mlir::Operation::operand_range getODSOperands(unsigned index)
static IncreasesOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Value value)
::mlir::TypedValue<::llzk::felt::FeltType > getValue()
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
FoldAdaptor::Properties Properties
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
::llvm::LogicalResult verify(::mlir::Location loc)
InvariantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
InvariantOpAdaptor(InvariantOp op)
::mlir::ValueRange getOperands()
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
::mlir::StringAttr getLoopArgTypesAttrName()
static constexpr ::llvm::StringLiteral getOperationName()
void writeProperties(::mlir::DialectBytecodeWriter &writer)
void setLoopName(::llvm::StringRef attrValue)
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
::llvm::LogicalResult setPropertiesFromParsedAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
::mlir::ArrayAttr getLoopArgTypesAttr()
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
::mlir::ArrayAttr getLoopArgTypes()
static llvm::hash_code computePropertiesHash(const Properties &prop)
static InvariantOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::StringRef loop_name, ::llvm::ArrayRef<::mlir::Type > loop_arg_types={}, ::llvm::ArrayRef<::mlir::Location > loop_arg_locs={})
::mlir::StringAttr getLoopNameAttr()
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
::llvm::StringRef getLoopName()
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::StringRef loop_name, ::llvm::ArrayRef<::mlir::Type > loop_arg_types={}, ::llvm::ArrayRef<::mlir::Location > loop_arg_locs={})
FoldAdaptor::Properties Properties
::llvm::LogicalResult verify()
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
::llvm::LogicalResult verifyInvariantsImpl()
::llvm::LogicalResult verifyInvariants()
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
::mlir::StringAttr getLoopNameAttrName()
::llvm::LogicalResult verify(::mlir::Location loc)
OldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::mlir::ValueRange getOperands()
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
::llvm::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::PropertyRef properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
void print(::mlir::OpAsmPrinter &_odsPrinter)
static constexpr ::llvm::StringLiteral getOperationName()
static OldOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Type result, ::mlir::Value value)
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
::llvm::LogicalResult verifyInvariantsImpl()
static llvm::hash_code computePropertiesHash(const Properties &prop)
FoldAdaptor::Properties Properties
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
::mlir::Operation::operand_range getODSOperands(unsigned index)
::mlir::TypedValue<::mlir::Type > getResult()
::llvm::LogicalResult verifyInvariants()
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
::mlir::TypedValue<::mlir::Type > getValue()
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
::mlir::Operation::result_range getODSResults(unsigned index)
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value value)
ProveDetOpAdaptor(ProveDetOp op)
ProveDetOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::llvm::LogicalResult verify(::mlir::Location loc)
::mlir::ValueRange getOperands()
::llvm::LogicalResult verifyInvariantsImpl()
::llvm::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::PropertyRef properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
static constexpr ::llvm::StringLiteral getOperationName()
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value condition)
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
static llvm::hash_code computePropertiesHash(const Properties &prop)
void print(::mlir::OpAsmPrinter &_odsPrinter)
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
static ProveDetOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Type result, ::mlir::Value condition)
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
FoldAdaptor::Properties Properties
::mlir::TypedValue<::mlir::Type > getCondition()
::mlir::Operation::result_range getODSResults(unsigned index)
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
::mlir::Operation::operand_range getODSOperands(unsigned index)
::llvm::LogicalResult verifyInvariants()
RequireComputeOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
RequireComputeOpAdaptor(RequireComputeOp op)
::llvm::LogicalResult verify(::mlir::Location loc)
::mlir::ValueRange getOperands()
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
static llvm::hash_code computePropertiesHash(const Properties &prop)
static constexpr ::llvm::StringLiteral getOperationName()
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
::llvm::LogicalResult verifyInvariantsImpl()
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
::llvm::LogicalResult verifyInvariants()
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
::mlir::TypedValue<::mlir::IntegerType > getCondition()
::mlir::Operation::operand_range getODSOperands(unsigned index)
static RequireComputeOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Value condition)
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value condition)
void print(::mlir::OpAsmPrinter &_odsPrinter)
FoldAdaptor::Properties Properties
RequireConstrainOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
RequireConstrainOpAdaptor(RequireConstrainOp op)
::llvm::LogicalResult verify(::mlir::Location loc)
::mlir::ValueRange getOperands()
FoldAdaptor::Properties Properties
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
::llvm::LogicalResult verifyInvariants()
::mlir::TypedValue<::mlir::IntegerType > getCondition()
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
::llvm::LogicalResult verifyInvariantsImpl()
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value condition)
static llvm::hash_code computePropertiesHash(const Properties &prop)
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
static constexpr ::llvm::StringLiteral getOperationName()
::mlir::Operation::operand_range getODSOperands(unsigned index)
void print(::mlir::OpAsmPrinter &_odsPrinter)
static RequireConstrainOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Value condition)
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
::llvm::LogicalResult verify(::mlir::Location loc)
StepOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::mlir::ValueRange getOperands()
static llvm::hash_code computePropertiesHash(const Properties &prop)
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
::llvm::LogicalResult verifyInvariantsImpl()
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
::llvm::LogicalResult verifyInvariants()
static StepOp create(::mlir::OpBuilder &builder, ::mlir::Location location)
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
static constexpr ::llvm::StringLiteral getOperationName()
::mlir::Region & getRegion()
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
FoldAdaptor::Properties Properties
void print(::mlir::OpAsmPrinter &_odsPrinter)
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState)
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
::llvm::LogicalResult verify(::mlir::Location loc)
StepYieldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
StepYieldOpAdaptor(StepYieldOp op)
::mlir::ValueRange getOperands()
static constexpr ::llvm::StringLiteral getOperationName()
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
static llvm::hash_code computePropertiesHash(const Properties &prop)
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value value)
::mlir::TypedValue<::mlir::IntegerType > getValue()
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
static StepYieldOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Value value)
::llvm::LogicalResult verifyInvariantsImpl()
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
FoldAdaptor::Properties Properties
::mlir::Operation::operand_range getODSOperands(unsigned index)
::llvm::LogicalResult verifyInvariants()
void print(::mlir::OpAsmPrinter &_odsPrinter)
VerifAssertOpAdaptor(VerifAssertOp op)
VerifAssertOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::llvm::LogicalResult verify(::mlir::Location loc)
::mlir::ValueRange getOperands()
::mlir::TypedValue<::mlir::IntegerType > getCondition()
::llvm::LogicalResult verifyInvariantsImpl()
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
static llvm::hash_code computePropertiesHash(const Properties &prop)
static constexpr ::llvm::StringLiteral getOperationName()
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
::mlir::Operation::operand_range getODSOperands(unsigned index)
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
void print(::mlir::OpAsmPrinter &_odsPrinter)
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
static VerifAssertOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Value condition)
::llvm::LogicalResult verifyInvariants()
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value condition)
FoldAdaptor::Properties Properties
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
VerifProveOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
VerifProveOpAdaptor(VerifProveOp op)
::llvm::LogicalResult verify(::mlir::Location loc)
::mlir::ValueRange getOperands()
::mlir::TypedValue<::mlir::IntegerType > getCondition()
static VerifProveOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Value condition)
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
::llvm::LogicalResult verifyInvariantsImpl()
::llvm::LogicalResult verifyInvariants()
FoldAdaptor::Properties Properties
static constexpr ::llvm::StringLiteral getOperationName()
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
::mlir::Operation::operand_range getODSOperands(unsigned index)
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
static llvm::hash_code computePropertiesHash(const Properties &prop)
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value condition)
void print(::mlir::OpAsmPrinter &_odsPrinter)
VerifSMTProveOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
VerifSMTProveOpAdaptor(VerifSMTProveOp op)
::llvm::LogicalResult verify(::mlir::Location loc)
::mlir::ValueRange getOperands()
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value condition)
::mlir::Operation::operand_range getODSOperands(unsigned index)
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
::llvm::LogicalResult verifyInvariants()
FoldAdaptor::Properties Properties
::llvm::LogicalResult verifyInvariantsImpl()
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
static llvm::hash_code computePropertiesHash(const Properties &prop)
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
::mlir::TypedValue< mlir::smt::BoolType > getCondition()
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
static constexpr ::llvm::StringLiteral getOperationName()
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
static VerifSMTProveOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Value condition)
void print(::mlir::OpAsmPrinter &_odsPrinter)
AssumeDetOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::mlir::DictionaryAttr odsAttrs
::std::optional<::mlir::OperationName > odsOpName
const Properties & getProperties()
::mlir::RegionRange odsRegions
const Properties & getProperties()
ContractEndOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::std::optional<::mlir::OperationName > odsOpName
::mlir::RegionRange odsRegions
::mlir::DictionaryAttr odsAttrs
::mlir::ArrayAttr getResAttrsAttr()
::mlir::FunctionType getFunctionType()
::mlir::TypeAttr getFunctionTypeAttr()
::llvm::StringRef getSymName()
::std::optional<::mlir::OperationName > odsOpName
const Properties & getProperties()
ContractOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::mlir::ArrayAttr getArgAttrsAttr()
::mlir::DictionaryAttr odsAttrs
::mlir::SymbolRefAttr getTargetAttr()
::std::optional< ::mlir::ArrayAttr > getArgAttrs()
::mlir::StringAttr getSymNameAttr()
::std::optional< ::mlir::ArrayAttr > getResAttrs()
::mlir::SymbolRefAttr getTarget()
::mlir::RegionRange getRegions()
::mlir::RegionRange odsRegions
DecreasesOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::mlir::DictionaryAttr odsAttrs
::std::optional<::mlir::OperationName > odsOpName
const Properties & getProperties()
::mlir::RegionRange odsRegions
EnsureComputeOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
const Properties & getProperties()
::mlir::DictionaryAttr odsAttrs
::std::optional<::mlir::OperationName > odsOpName
::mlir::RegionRange odsRegions
::std::optional<::mlir::OperationName > odsOpName
EnsureConstrainOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::mlir::RegionRange odsRegions
const Properties & getProperties()
::mlir::DictionaryAttr odsAttrs
::llvm::ArrayRef< int32_t > getNumDimsPerMap()
::mlir::DenseI32ArrayAttr getNumDimsPerMapAttr()
::mlir::RegionRange odsRegions
::mlir::ArrayAttr getArgAttrsAttr()
::mlir::SymbolRefAttr getCalleeAttr()
::std::optional<::mlir::OperationName > odsOpName
::mlir::ArrayAttr getTemplateParamsAttr()
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
::mlir::SymbolRefAttr getCallee()
::std::optional< ::mlir::ArrayAttr > getResAttrs()
::std::optional< ::mlir::ArrayAttr > getArgAttrs()
::llvm::ArrayRef< int32_t > getMapOpGroupSizes()
::mlir::ArrayAttr getResAttrsAttr()
const Properties & getProperties()
::std::optional< ::mlir::ArrayAttr > getTemplateParams()
IncludeOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::mlir::DenseI32ArrayAttr getMapOpGroupSizesAttr()
::mlir::DictionaryAttr odsAttrs
::mlir::DictionaryAttr odsAttrs
::std::optional<::mlir::OperationName > odsOpName
IncreasesOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::mlir::RegionRange odsRegions
const Properties & getProperties()
const Properties & getProperties()
::mlir::RegionRange getRegions()
::mlir::DictionaryAttr odsAttrs
::std::optional<::mlir::OperationName > odsOpName
::mlir::StringAttr getLoopNameAttr()
::mlir::RegionRange odsRegions
::mlir::ArrayAttr getLoopArgTypesAttr()
InvariantOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::mlir::ArrayAttr getLoopArgTypes()
::llvm::StringRef getLoopName()
const Properties & getProperties()
OldOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::std::optional<::mlir::OperationName > odsOpName
::mlir::RegionRange odsRegions
::mlir::DictionaryAttr odsAttrs
::mlir::RegionRange odsRegions
::std::optional<::mlir::OperationName > odsOpName
ProveDetOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
const Properties & getProperties()
::mlir::DictionaryAttr odsAttrs
::std::optional<::mlir::OperationName > odsOpName
::mlir::DictionaryAttr odsAttrs
::mlir::RegionRange odsRegions
RequireComputeOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
const Properties & getProperties()
const Properties & getProperties()
::mlir::RegionRange odsRegions
::mlir::DictionaryAttr odsAttrs
::std::optional<::mlir::OperationName > odsOpName
RequireConstrainOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::mlir::RegionRange getRegions()
StepOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
const Properties & getProperties()
::mlir::DictionaryAttr odsAttrs
::std::optional<::mlir::OperationName > odsOpName
::mlir::RegionRange odsRegions
::mlir::RegionRange odsRegions
const Properties & getProperties()
StepYieldOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::mlir::DictionaryAttr odsAttrs
::std::optional<::mlir::OperationName > odsOpName
::mlir::DictionaryAttr odsAttrs
VerifAssertOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::std::optional<::mlir::OperationName > odsOpName
::mlir::RegionRange odsRegions
const Properties & getProperties()
const Properties & getProperties()
::mlir::DictionaryAttr odsAttrs
::std::optional<::mlir::OperationName > odsOpName
VerifProveOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::mlir::RegionRange odsRegions
::std::optional<::mlir::OperationName > odsOpName
::mlir::RegionRange odsRegions
const Properties & getProperties()
::mlir::DictionaryAttr odsAttrs
VerifSMTProveOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Common interface for constant parameter-like symbol operations that can be defined within a TemplateO...
Common interface for precondition and postcondition operations.
void printTemplateParams(mlir::AsmPrinter &printer, mlir::ArrayAttr value)
mlir::ParseResult parseAttrDictWithWarnings(mlir::OpAsmParser &parser, mlir::NamedAttrList &extraAttrs, mlir::OperationState &state)
bool isValidEmitEqType(Type type)
bool isValidType(Type type)
void printMultiDimAndSymbolList(mlir::OpAsmPrinter &printer, mlir::Operation *op, mlir::OperandRangeRange multiMapOperands, mlir::DenseI32ArrayAttr numDimsPerMap)
void printAttrDictWithWarnings(mlir::OpAsmPrinter &printer, ConcreteOp op, mlir::DictionaryAttr extraAttrs, typename mlir::PropertiesSelector< ConcreteOp >::type state)
mlir::ParseResult parseTemplateParams(mlir::AsmParser &parser, mlir::ArrayAttr &value)
mlir::ParseResult parseMultiDimAndSymbolList(mlir::OpAsmParser &parser, mlir::SmallVector< mlir::SmallVector< mlir::OpAsmParser::UnresolvedOperand > > &multiMapOperands, mlir::DenseI32ArrayAttr &numDimsPerMap)
function_typeTy function_type
operandSegmentSizesTy operandSegmentSizes
templateParamsTy templateParams
numDimsPerMapTy numDimsPerMap
mapOpGroupSizesTy mapOpGroupSizes
loop_arg_typesTy loop_arg_types