LLZK 3.0.0
An open-source IR for Zero Knowledge (ZK) circuits
Loading...
Searching...
No Matches
Ops.h.inc
Go to the documentation of this file.
1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2|* *|
3|* Op Declarations *|
4|* *|
5|* Automatically generated file, do not edit! *|
6|* From: Ops.td *|
7|* *|
8\*===----------------------------------------------------------------------===*/
9
10namespace llzk::verif {
11
18class AssumeDetOp;
19
20} // namespace llzk::verif
21namespace llzk::verif {
22
30class ContractEndOp;
31
32} // namespace llzk::verif
33namespace llzk::verif {
34
78class ContractOp;
79
80} // namespace llzk::verif
81namespace llzk::verif {
82
88class DecreasesOp;
89
90} // namespace llzk::verif
91namespace llzk::verif {
92
95class EnsureComputeOp;
96
97} // namespace llzk::verif
98namespace llzk::verif {
99
107
108} // namespace llzk::verif
109namespace llzk::verif {
110
114class IncludeOp;
115
116} // namespace llzk::verif
117namespace llzk::verif {
118
124class IncreasesOp;
125
126} // namespace llzk::verif
127namespace llzk::verif {
128
169class InvariantOp;
170
171} // namespace llzk::verif
172namespace llzk::verif {
173
178class OldOp;
179
180} // namespace llzk::verif
181namespace llzk::verif {
182
191class ProveDetOp;
192
193} // namespace llzk::verif
194namespace llzk::verif {
195
203class RequireComputeOp;
204
205} // namespace llzk::verif
206namespace llzk::verif {
207
216
217} // namespace llzk::verif
218namespace llzk::verif {
219
227class StepOp;
228
229} // namespace llzk::verif
230namespace llzk::verif {
231
234class StepYieldOp;
235
236} // namespace llzk::verif
237namespace llzk::verif {
238
241class VerifAssertOp;
242
243} // namespace llzk::verif
244namespace llzk::verif {
245
248class VerifProveOp;
249
250} // namespace llzk::verif
251namespace llzk::verif {
252
254class VerifSMTProveOp;
255
256} // namespace llzk::verif
257#ifdef GET_OP_CLASSES
258#undef GET_OP_CLASSES
259
260namespace llzk::verif {
261
262
263//===----------------------------------------------------------------------===//
264// ::llzk::verif::AssumeDetOp declarations
265//===----------------------------------------------------------------------===//
266
267namespace detail {
268
270public:
271 using Properties = ::mlir::EmptyProperties;
272protected:
273 ::mlir::DictionaryAttr odsAttrs;
274 ::std::optional<::mlir::OperationName> odsOpName;
276 ::mlir::RegionRange odsRegions;
277public:
278 AssumeDetOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
279 odsOpName.emplace("verif.det.assume", odsAttrs.getContext());
280 }
281
283
284 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
285 return {index, 1};
286 }
287
289 return properties;
290 }
291
292 ::mlir::DictionaryAttr getAttributes() {
293 return odsAttrs;
294 }
295
296};
297
298} // namespace detail
299template <typename RangeT>
301 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
303 static constexpr int odsIndex_hint = 0;
304public:
305 AssumeDetOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
306
307 AssumeDetOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions = {}) : AssumeDetOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
308
309 AssumeDetOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : AssumeDetOpGenericAdaptor(values, attrs, Properties{}, {}) {}
310
311 AssumeDetOpGenericAdaptor(RangeT values, const AssumeDetOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
312
313 template <typename LateInst = AssumeDetOp, typename = std::enable_if_t<std::is_same_v<LateInst, AssumeDetOp>>>
314 AssumeDetOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
315
316 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
317 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
318 }
319
320 RangeT getODSOperands(unsigned index) {
321 auto valueRange = getODSOperandIndexAndLength(index);
322 return {std::next(odsOperands.begin(), valueRange.first),
323 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
324 }
325
326 ValueT getHint() {
327 return (*getODSOperands(0).begin());
328 }
329
330 RangeT getOperands() {
331 return odsOperands;
332 }
333
334private:
335 RangeT odsOperands;
336};
337class AssumeDetOpAdaptor : public AssumeDetOpGenericAdaptor<::mlir::ValueRange> {
338public:
341
342 ::llvm::LogicalResult verify(::mlir::Location loc);
343};
344class AssumeDetOp : public ::mlir::Op<AssumeDetOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::OneOperand, ::llzk::function::Verification<>::Impl, ::mlir::OpTrait::OpInvariants> {
345public:
346 using Op::Op;
347 using Op::print;
349 template <typename RangeT>
352 static constexpr int odsIndex_hint = 0;
354 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
355 return {};
356 }
357
358 static constexpr ::llvm::StringLiteral getOperationName() {
359 return ::llvm::StringLiteral("verif.det.assume");
360 }
361
362 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
363 return {index, 1};
364 }
365
366 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
367 auto valueRange = getODSOperandIndexAndLength(index);
368 return {std::next(getOperation()->operand_begin(), valueRange.first),
369 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
370 }
371
372 ::mlir::TypedValue<::mlir::Type> getHint() {
373 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(0).begin());
374 }
375
376 ::mlir::OpOperand &getHintMutable() {
377 auto range = getODSOperandIndexAndLength(0);
378 return getOperation()->getOpOperand(range.first);
379 }
380
381 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
382 return {index, 1};
383 }
384
385 ::mlir::Operation::result_range getODSResults(unsigned index) {
386 auto valueRange = getODSResultIndexAndLength(index);
387 return {std::next(getOperation()->result_begin(), valueRange.first),
388 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
389 }
390
391 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
392 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
393 static llvm::hash_code computePropertiesHash(const Properties &prop);
394 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
395 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
396 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
397 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
398 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value hint);
399 static AssumeDetOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Value hint);
400 static AssumeDetOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::Value hint);
401 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value hint);
402 static AssumeDetOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::Value hint);
403 static AssumeDetOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::Value hint);
404 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
405 static AssumeDetOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
406 static AssumeDetOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
407 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
408 static AssumeDetOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
409 static AssumeDetOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
410 ::llvm::LogicalResult verifyInvariantsImpl();
411 ::llvm::LogicalResult verifyInvariants();
412 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
413 void print(::mlir::OpAsmPrinter &_odsPrinter);
414public:
415};
416
417} // namespace llzk::verif
418MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::verif::AssumeDetOp)
419
420namespace llzk::verif {
421
422
423//===----------------------------------------------------------------------===//
424// ::llzk::verif::ContractEndOp declarations
425//===----------------------------------------------------------------------===//
426
427namespace detail {
428
430public:
431 using Properties = ::mlir::EmptyProperties;
432protected:
433 ::mlir::DictionaryAttr odsAttrs;
434 ::std::optional<::mlir::OperationName> odsOpName;
436 ::mlir::RegionRange odsRegions;
437public:
438 ContractEndOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
439 odsOpName.emplace("verif.contract_end", odsAttrs.getContext());
440 }
441
443
444 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
445 return {index, 1};
446 }
447
449 return properties;
450 }
451
452 ::mlir::DictionaryAttr getAttributes() {
453 return odsAttrs;
454 }
455
456};
457
458} // namespace detail
459template <typename RangeT>
461 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
463public:
464 ContractEndOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
465
466 ContractEndOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions = {}) : ContractEndOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
467
468 ContractEndOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : ContractEndOpGenericAdaptor(values, attrs, Properties{}, {}) {}
469
470 ContractEndOpGenericAdaptor(RangeT values, const ContractEndOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
471
472 template <typename LateInst = ContractEndOp, typename = std::enable_if_t<std::is_same_v<LateInst, ContractEndOp>>>
473 ContractEndOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
474
475 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
476 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
477 }
478
479 RangeT getODSOperands(unsigned index) {
480 auto valueRange = getODSOperandIndexAndLength(index);
481 return {std::next(odsOperands.begin(), valueRange.first),
482 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
483 }
484
485 RangeT getOperands() {
486 return odsOperands;
487 }
488
489private:
490 RangeT odsOperands;
491};
492class ContractEndOpAdaptor : public ContractEndOpGenericAdaptor<::mlir::ValueRange> {
493public:
496
497 ::llvm::LogicalResult verify(::mlir::Location loc);
498};
499class ContractEndOp : public ::mlir::Op<ContractEndOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::ZeroOperands, ::mlir::OpTrait::HasParent<::llzk::verif::ContractOp>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::OpTrait::IsTerminator> {
500public:
501 using Op::Op;
502 using Op::print;
504 template <typename RangeT>
508 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
509 return {};
510 }
511
512 static constexpr ::llvm::StringLiteral getOperationName() {
513 return ::llvm::StringLiteral("verif.contract_end");
514 }
515
516 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
517 return {index, 1};
518 }
519
520 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
521 auto valueRange = getODSOperandIndexAndLength(index);
522 return {std::next(getOperation()->operand_begin(), valueRange.first),
523 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
524 }
525
526 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
527 return {index, 1};
528 }
529
530 ::mlir::Operation::result_range getODSResults(unsigned index) {
531 auto valueRange = getODSResultIndexAndLength(index);
532 return {std::next(getOperation()->result_begin(), valueRange.first),
533 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
534 }
535
536 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
537 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
538 static llvm::hash_code computePropertiesHash(const Properties &prop);
539 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
540 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
541 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
542 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
543 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState);
544 static ContractEndOp create(::mlir::OpBuilder &builder, ::mlir::Location location);
545 static ContractEndOp create(::mlir::ImplicitLocOpBuilder &builder);
546 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes);
547 static ContractEndOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes);
548 static ContractEndOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes);
549 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
550 static ContractEndOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
551 static ContractEndOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
552 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
553 static ContractEndOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
554 static ContractEndOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
555 ::llvm::LogicalResult verifyInvariantsImpl();
556 ::llvm::LogicalResult verifyInvariants();
557 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
558 void print(::mlir::OpAsmPrinter &_odsPrinter);
559 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
560public:
561};
562
563} // namespace llzk::verif
564MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::verif::ContractEndOp)
565
566namespace llzk::verif {
567
568
569//===----------------------------------------------------------------------===//
570// ::llzk::verif::ContractOp declarations
571//===----------------------------------------------------------------------===//
572
573namespace detail {
574
576public:
577 struct Properties {
578 using arg_attrsTy = ::mlir::ArrayAttr;
580
581 auto getArgAttrs() const {
582 auto &propStorage = this->arg_attrs;
583 return ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(propStorage);
584 }
585 void setArgAttrs(const ::mlir::ArrayAttr &propValue) {
586 this->arg_attrs = propValue;
587 }
588 using function_typeTy = ::mlir::TypeAttr;
590
591 auto getFunctionType() const {
592 auto &propStorage = this->function_type;
593 return ::llvm::cast<::mlir::TypeAttr>(propStorage);
594 }
595 void setFunctionType(const ::mlir::TypeAttr &propValue) {
596 this->function_type = propValue;
597 }
598 using res_attrsTy = ::mlir::ArrayAttr;
600
601 auto getResAttrs() const {
602 auto &propStorage = this->res_attrs;
603 return ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(propStorage);
604 }
605 void setResAttrs(const ::mlir::ArrayAttr &propValue) {
606 this->res_attrs = propValue;
607 }
608 using sym_nameTy = ::mlir::StringAttr;
610
611 auto getSymName() const {
612 auto &propStorage = this->sym_name;
613 return ::llvm::cast<::mlir::StringAttr>(propStorage);
614 }
615 void setSymName(const ::mlir::StringAttr &propValue) {
616 this->sym_name = propValue;
617 }
618 using targetTy = ::mlir::SymbolRefAttr;
620
621 auto getTarget() const {
622 auto &propStorage = this->target;
623 return ::llvm::cast<::mlir::SymbolRefAttr>(propStorage);
624 }
625 void setTarget(const ::mlir::SymbolRefAttr &propValue) {
626 this->target = propValue;
627 }
628 bool operator==(const Properties &rhs) const {
629 return
630 rhs.arg_attrs == this->arg_attrs &&
631 rhs.function_type == this->function_type &&
632 rhs.res_attrs == this->res_attrs &&
633 rhs.sym_name == this->sym_name &&
634 rhs.target == this->target &&
635 true;
636 }
637 bool operator!=(const Properties &rhs) const {
638 return !(*this == rhs);
639 }
640 };
641protected:
642 ::mlir::DictionaryAttr odsAttrs;
643 ::std::optional<::mlir::OperationName> odsOpName;
645 ::mlir::RegionRange odsRegions;
646public:
647 ContractOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
648 odsOpName.emplace("verif.contract", odsAttrs.getContext());
649 }
650
652
653 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
654 return {index, 1};
655 }
656
658 return properties;
659 }
660
661 ::mlir::DictionaryAttr getAttributes() {
662 return odsAttrs;
663 }
664
665 ::mlir::StringAttr getSymNameAttr() {
666 auto attr = ::llvm::cast<::mlir::StringAttr>(getProperties().sym_name);
667 return attr;
668 }
669
670 ::llvm::StringRef getSymName();
671 ::mlir::SymbolRefAttr getTargetAttr() {
672 auto attr = ::llvm::cast<::mlir::SymbolRefAttr>(getProperties().target);
673 return attr;
674 }
675
676 ::mlir::SymbolRefAttr getTarget();
677 ::mlir::TypeAttr getFunctionTypeAttr() {
678 auto attr = ::llvm::cast<::mlir::TypeAttr>(getProperties().function_type);
679 return attr;
680 }
681
682 ::mlir::FunctionType getFunctionType();
683 ::mlir::ArrayAttr getArgAttrsAttr() {
684 auto attr = ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(getProperties().arg_attrs);
685 return attr;
686 }
687
688 ::std::optional< ::mlir::ArrayAttr > getArgAttrs();
689 ::mlir::ArrayAttr getResAttrsAttr() {
690 auto attr = ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(getProperties().res_attrs);
691 return attr;
692 }
693
694 ::std::optional< ::mlir::ArrayAttr > getResAttrs();
695 ::mlir::Region &getBody() {
696 return *odsRegions[0];
697 }
698
699 ::mlir::RegionRange getRegions() {
700 return odsRegions;
701 }
702
703};
704
705} // namespace detail
706template <typename RangeT>
708 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
710public:
711 ContractOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
712
713 ContractOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions = {}) : ContractOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
714
715 ContractOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : ContractOpGenericAdaptor(values, attrs, Properties{}, {}) {}
716
717 ContractOpGenericAdaptor(RangeT values, const ContractOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
718
719 template <typename LateInst = ContractOp, typename = std::enable_if_t<std::is_same_v<LateInst, ContractOp>>>
720 ContractOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
721
722 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
723 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
724 }
725
726 RangeT getODSOperands(unsigned index) {
727 auto valueRange = getODSOperandIndexAndLength(index);
728 return {std::next(odsOperands.begin(), valueRange.first),
729 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
730 }
731
732 RangeT getOperands() {
733 return odsOperands;
734 }
735
736private:
737 RangeT odsOperands;
738};
739class ContractOpAdaptor : public ContractOpGenericAdaptor<::mlir::ValueRange> {
740public:
743
744 ::llvm::LogicalResult verify(::mlir::Location loc);
745};
746class ContractOp : public ::mlir::Op<ContractOp, ::mlir::OpTrait::OneRegion, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::ZeroOperands, ::mlir::OpTrait::HasParent<::mlir::ModuleOp, ::llzk::polymorphic::TemplateOp>::Impl, ::mlir::OpTrait::SingleBlock, ::mlir::OpTrait::SingleBlockImplicitTerminator<::llzk::verif::ContractEndOp>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::BytecodeOpInterface::Trait, ::mlir::SymbolUserOpInterface::Trait, ::mlir::OpTrait::AffineScope, ::mlir::OpTrait::AutomaticAllocationScope, ::mlir::SymbolOpInterface::Trait, ::mlir::ArgAndResultAttrsOpInterface::Trait, ::mlir::CallableOpInterface::Trait, ::mlir::FunctionOpInterface::Trait, ::mlir::OpTrait::IsIsolatedFromAbove> {
747public:
748 using Op::Op;
749 using Op::print;
751 template <typename RangeT>
755 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
756 static ::llvm::StringRef attrNames[] = {::llvm::StringRef("arg_attrs"), ::llvm::StringRef("function_type"), ::llvm::StringRef("res_attrs"), ::llvm::StringRef("sym_name"), ::llvm::StringRef("target")};
757 return ::llvm::ArrayRef(attrNames);
758 }
759
760 ::mlir::StringAttr getArgAttrsAttrName() {
761 return getAttributeNameForIndex(0);
762 }
763
764 static ::mlir::StringAttr getArgAttrsAttrName(::mlir::OperationName name) {
765 return getAttributeNameForIndex(name, 0);
766 }
767
768 ::mlir::StringAttr getFunctionTypeAttrName() {
769 return getAttributeNameForIndex(1);
770 }
771
772 static ::mlir::StringAttr getFunctionTypeAttrName(::mlir::OperationName name) {
773 return getAttributeNameForIndex(name, 1);
774 }
775
776 ::mlir::StringAttr getResAttrsAttrName() {
777 return getAttributeNameForIndex(2);
778 }
779
780 static ::mlir::StringAttr getResAttrsAttrName(::mlir::OperationName name) {
781 return getAttributeNameForIndex(name, 2);
782 }
783
784 ::mlir::StringAttr getSymNameAttrName() {
785 return getAttributeNameForIndex(3);
786 }
787
788 static ::mlir::StringAttr getSymNameAttrName(::mlir::OperationName name) {
789 return getAttributeNameForIndex(name, 3);
790 }
791
792 ::mlir::StringAttr getTargetAttrName() {
793 return getAttributeNameForIndex(4);
794 }
795
796 static ::mlir::StringAttr getTargetAttrName(::mlir::OperationName name) {
797 return getAttributeNameForIndex(name, 4);
798 }
799
800 static constexpr ::llvm::StringLiteral getOperationName() {
801 return ::llvm::StringLiteral("verif.contract");
802 }
803
804 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
805 return {index, 1};
806 }
807
808 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
809 auto valueRange = getODSOperandIndexAndLength(index);
810 return {std::next(getOperation()->operand_begin(), valueRange.first),
811 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
812 }
813
814 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
815 return {index, 1};
816 }
817
818 ::mlir::Operation::result_range getODSResults(unsigned index) {
819 auto valueRange = getODSResultIndexAndLength(index);
820 return {std::next(getOperation()->result_begin(), valueRange.first),
821 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
822 }
823
824 ::mlir::Region &getBody() {
825 return (*this)->getRegion(0);
826 }
827
828 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
829 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
830 static llvm::hash_code computePropertiesHash(const Properties &prop);
831 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
832 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
833 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
834 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
835 static ::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
836 void writeProperties(::mlir::DialectBytecodeWriter &writer);
837 ::mlir::StringAttr getSymNameAttr() {
838 return ::llvm::cast<::mlir::StringAttr>(getProperties().sym_name);
839 }
840
841 ::llvm::StringRef getSymName();
842 ::mlir::SymbolRefAttr getTargetAttr() {
843 return ::llvm::cast<::mlir::SymbolRefAttr>(getProperties().target);
844 }
845
846 ::mlir::SymbolRefAttr getTarget();
847 ::mlir::TypeAttr getFunctionTypeAttr() {
848 return ::llvm::cast<::mlir::TypeAttr>(getProperties().function_type);
849 }
850
851 ::mlir::FunctionType getFunctionType();
852 ::mlir::ArrayAttr getArgAttrsAttr() {
853 return ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(getProperties().arg_attrs);
854 }
855
856 ::std::optional< ::mlir::ArrayAttr > getArgAttrs();
857 ::mlir::ArrayAttr getResAttrsAttr() {
858 return ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(getProperties().res_attrs);
859 }
860
861 ::std::optional< ::mlir::ArrayAttr > getResAttrs();
862 void setSymNameAttr(::mlir::StringAttr attr) {
863 getProperties().sym_name = attr;
864 }
865
866 void setSymName(::llvm::StringRef attrValue);
867 void setTargetAttr(::mlir::SymbolRefAttr attr) {
868 getProperties().target = attr;
869 }
870
871 void setFunctionTypeAttr(::mlir::TypeAttr attr) {
872 getProperties().function_type = attr;
873 }
874
875 void setFunctionType(::mlir::FunctionType attrValue);
876 void setArgAttrsAttr(::mlir::ArrayAttr attr) {
877 getProperties().arg_attrs = attr;
878 }
879
880 void setResAttrsAttr(::mlir::ArrayAttr attr) {
881 getProperties().res_attrs = attr;
882 }
883
884 ::mlir::Attribute removeArgAttrsAttr() {
885 auto attr = getProperties().arg_attrs;
886 getProperties().arg_attrs = {};
887 return attr;
888 }
889
890 ::mlir::Attribute removeResAttrsAttr() {
891 auto attr = getProperties().res_attrs;
892 getProperties().res_attrs = {};
893 return attr;
894 }
895
896 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 = {});
897 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 = {});
898 static ContractOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::StringAttr sym_name, ::mlir::SymbolRefAttr target, ::mlir::TypeAttr function_type, ::mlir::ArrayAttr arg_attrs = {}, ::mlir::ArrayAttr res_attrs = {});
899 static void 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 = {});
900 static 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 = {});
901 static 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 = {});
902 static void 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 = {});
903 static 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 = {});
904 static ContractOp create(::mlir::ImplicitLocOpBuilder &builder, ::llvm::StringRef sym_name, ::mlir::SymbolRefAttr target, ::mlir::FunctionType function_type, ::mlir::ArrayAttr arg_attrs = {}, ::mlir::ArrayAttr res_attrs = {});
905 static void 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 = {});
906 static 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 = {});
907 static 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 = {});
908 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llvm::StringRef name, llvm::StringRef target);
909 static ContractOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::llvm::StringRef name, llvm::StringRef target);
910 static ContractOp create(::mlir::ImplicitLocOpBuilder &builder, ::llvm::StringRef name, llvm::StringRef target);
911 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llvm::StringRef name, ::mlir::SymbolRefAttr target);
912 static ContractOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::llvm::StringRef name, ::mlir::SymbolRefAttr target);
913 static ContractOp create(::mlir::ImplicitLocOpBuilder &builder, ::llvm::StringRef name, ::mlir::SymbolRefAttr target);
914 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
915 void print(::mlir::OpAsmPrinter &p);
916 ::llvm::LogicalResult verifyInvariantsImpl();
917 ::llvm::LogicalResult verifyInvariants();
918 ::llvm::LogicalResult verify();
919 ::llvm::LogicalResult verifyRegions();
920 ::llvm::LogicalResult verifySymbolUses(::mlir::SymbolTableCollection &symbolTable);
921 static ::llvm::LogicalResult setPropertiesFromParsedAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
922private:
923 ::mlir::StringAttr getAttributeNameForIndex(unsigned index) {
924 return getAttributeNameForIndex((*this)->getName(), index);
925 }
926
927 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name, unsigned index) {
928 assert(index < 5 && "invalid attribute index");
929 assert(name.getStringRef() == getOperationName() && "invalid operation name");
930 assert(name.isRegistered() && "Operation isn't registered, missing a "
931 "dependent dialect loading?");
932 return name.getAttributeNames()[index];
933 }
934
935public:
943 ContractOp clone(::mlir::IRMapping &mapper);
945
950 void cloneInto(ContractOp dest, ::mlir::IRMapping &mapper);
951
953 bool hasArgPublicAttr(unsigned index);
954
956 bool hasArgName(unsigned index);
957
959 ::std::optional<::mlir::StringAttr> getArgNameAttr(unsigned index);
960
962 void setArgNameAttr(unsigned index, const ::mlir::StringAttr &attr);
963
965 void setArgName(unsigned index, ::llvm::StringRef name);
966
969 ::mlir::Region *getCallableRegion() { return &getBody(); }
970
973 ::llvm::ArrayRef<::mlir::Type> getArgumentTypes() { return getFunctionType().getInputs(); }
974
978 ::llvm::ArrayRef<::mlir::Type> getResultTypes() { return getFunctionType().getResults(); }
979
981 bool isDeclaration() { return false; }
982
985 ::mlir::SymbolRefAttr getFullyQualifiedName(bool requireParent = true);
986
988 bool hasStructTarget() { return succeeded(getStructTarget()); }
989
992 ::mlir::FailureOr<SymbolLookupResult<component::StructDefOp>> getStructTarget(::mlir::SymbolTableCollection &tables);
993
994 ::mlir::FailureOr<SymbolLookupResult<component::StructDefOp>> getStructTarget() {
995 ::mlir::SymbolTableCollection tables;
996 return getStructTarget(tables);
997 }
998
1001 ::mlir::FailureOr<::mlir::Value> getSelfValue();
1002
1004 bool hasFuncTarget() { return succeeded(getFuncTarget()); }
1005
1008 ::mlir::FailureOr<SymbolLookupResult<function::FuncDefOp>> getFuncTarget(::mlir::SymbolTableCollection &tables);
1009
1010 ::mlir::FailureOr<SymbolLookupResult<function::FuncDefOp>> getFuncTarget() {
1011 ::mlir::SymbolTableCollection tables;
1012 return getFuncTarget(tables);
1013 }
1014
1017 ::mlir::FailureOr<SymbolLookupResult<::llzk::verif::ContractTargetOpInterface>> getTargetOp(::mlir::SymbolTableCollection &tables);
1018
1019 ::mlir::FailureOr<SymbolLookupResult<::llzk::verif::ContractTargetOpInterface>> getTargetOp() {
1020 ::mlir::SymbolTableCollection tables;
1021 return getTargetOp(tables);
1022 }
1023
1024 private:
1027 static void initializeEmptyBody(
1028 ::mlir::OpBuilder &builder, ::mlir::OperationState &state,
1029 ::mlir::FunctionType functionType
1030 );
1031};
1032
1033} // namespace llzk::verif
1034MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::verif::ContractOp)
1036
1037namespace llzk::verif {
1038
1039
1040//===----------------------------------------------------------------------===//
1041// ::llzk::verif::DecreasesOp declarations
1042//===----------------------------------------------------------------------===//
1043
1044namespace detail {
1045
1047public:
1048 using Properties = ::mlir::EmptyProperties;
1049protected:
1050 ::mlir::DictionaryAttr odsAttrs;
1051 ::std::optional<::mlir::OperationName> odsOpName;
1053 ::mlir::RegionRange odsRegions;
1054public:
1055 DecreasesOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
1056 odsOpName.emplace("verif.decreases", odsAttrs.getContext());
1057 }
1058
1060
1061 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
1062 return {index, 1};
1063 }
1064
1066 return properties;
1067 }
1068
1069 ::mlir::DictionaryAttr getAttributes() {
1070 return odsAttrs;
1071 }
1072
1073};
1074
1075} // namespace detail
1076template <typename RangeT>
1078 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1080 static constexpr int odsIndex_value = 0;
1081public:
1082 DecreasesOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
1083
1084 DecreasesOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions = {}) : DecreasesOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
1085
1086 DecreasesOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : DecreasesOpGenericAdaptor(values, attrs, Properties{}, {}) {}
1087
1088 DecreasesOpGenericAdaptor(RangeT values, const DecreasesOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
1089
1090 template <typename LateInst = DecreasesOp, typename = std::enable_if_t<std::is_same_v<LateInst, DecreasesOp>>>
1091 DecreasesOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
1092
1093 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1094 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
1095 }
1096
1097 RangeT getODSOperands(unsigned index) {
1098 auto valueRange = getODSOperandIndexAndLength(index);
1099 return {std::next(odsOperands.begin(), valueRange.first),
1100 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1101 }
1102
1103 ValueT getValue() {
1104 return (*getODSOperands(0).begin());
1105 }
1106
1107 RangeT getOperands() {
1108 return odsOperands;
1109 }
1110
1111private:
1112 RangeT odsOperands;
1113};
1114class DecreasesOpAdaptor : public DecreasesOpGenericAdaptor<::mlir::ValueRange> {
1115public:
1118
1119 ::llvm::LogicalResult verify(::mlir::Location loc);
1120};
1121class DecreasesOp : public ::mlir::Op<DecreasesOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::OneOperand, ::mlir::OpTrait::HasAncestor<::llzk::verif::InvariantOp>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::MemoryEffectOpInterface::Trait> {
1122public:
1123 using Op::Op;
1124 using Op::print;
1126 template <typename RangeT>
1129 static constexpr int odsIndex_value = 0;
1131 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
1132 return {};
1133 }
1134
1135 static constexpr ::llvm::StringLiteral getOperationName() {
1136 return ::llvm::StringLiteral("verif.decreases");
1137 }
1138
1139 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1140 return {index, 1};
1141 }
1142
1143 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
1144 auto valueRange = getODSOperandIndexAndLength(index);
1145 return {std::next(getOperation()->operand_begin(), valueRange.first),
1146 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
1147 }
1148
1149 ::mlir::TypedValue<::llzk::felt::FeltType> getValue() {
1150 return ::llvm::cast<::mlir::TypedValue<::llzk::felt::FeltType>>(*getODSOperands(0).begin());
1151 }
1152
1153 ::mlir::OpOperand &getValueMutable() {
1154 auto range = getODSOperandIndexAndLength(0);
1155 return getOperation()->getOpOperand(range.first);
1156 }
1157
1158 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
1159 return {index, 1};
1160 }
1161
1162 ::mlir::Operation::result_range getODSResults(unsigned index) {
1163 auto valueRange = getODSResultIndexAndLength(index);
1164 return {std::next(getOperation()->result_begin(), valueRange.first),
1165 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
1166 }
1167
1168 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
1169 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
1170 static llvm::hash_code computePropertiesHash(const Properties &prop);
1171 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
1172 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
1173 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
1174 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
1175 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value value);
1176 static DecreasesOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Value value);
1177 static DecreasesOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::Value value);
1178 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value value);
1179 static DecreasesOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::Value value);
1180 static DecreasesOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::Value value);
1181 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1182 static DecreasesOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1183 static DecreasesOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1184 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
1185 static DecreasesOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
1186 static DecreasesOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
1187 ::llvm::LogicalResult verifyInvariantsImpl();
1188 ::llvm::LogicalResult verifyInvariants();
1189 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
1190 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1191 void print(::mlir::OpAsmPrinter &_odsPrinter);
1192public:
1193};
1194
1195} // namespace llzk::verif
1196MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::verif::DecreasesOp)
1197
1198namespace llzk::verif {
1199
1200
1201//===----------------------------------------------------------------------===//
1202// ::llzk::verif::EnsureComputeOp declarations
1203//===----------------------------------------------------------------------===//
1204
1205namespace detail {
1206
1208public:
1209 using Properties = ::mlir::EmptyProperties;
1210protected:
1211 ::mlir::DictionaryAttr odsAttrs;
1212 ::std::optional<::mlir::OperationName> odsOpName;
1214 ::mlir::RegionRange odsRegions;
1215public:
1216 EnsureComputeOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
1217 odsOpName.emplace("verif.ensure_compute", odsAttrs.getContext());
1218 }
1219
1221
1222 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
1223 return {index, 1};
1224 }
1225
1227 return properties;
1228 }
1229
1230 ::mlir::DictionaryAttr getAttributes() {
1231 return odsAttrs;
1232 }
1233
1234};
1235
1236} // namespace detail
1237template <typename RangeT>
1239 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1241 static constexpr int odsIndex_condition = 0;
1242public:
1243 EnsureComputeOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
1244
1245 EnsureComputeOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions = {}) : EnsureComputeOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
1246
1247 EnsureComputeOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : EnsureComputeOpGenericAdaptor(values, attrs, Properties{}, {}) {}
1248
1249 EnsureComputeOpGenericAdaptor(RangeT values, const EnsureComputeOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
1250
1251 template <typename LateInst = EnsureComputeOp, typename = std::enable_if_t<std::is_same_v<LateInst, EnsureComputeOp>>>
1252 EnsureComputeOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
1253
1254 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1255 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
1256 }
1257
1258 RangeT getODSOperands(unsigned index) {
1259 auto valueRange = getODSOperandIndexAndLength(index);
1260 return {std::next(odsOperands.begin(), valueRange.first),
1261 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1262 }
1263
1264 ValueT getCondition() {
1265 return (*getODSOperands(0).begin());
1266 }
1267
1268 RangeT getOperands() {
1269 return odsOperands;
1270 }
1271
1272private:
1273 RangeT odsOperands;
1274};
1275class EnsureComputeOpAdaptor : public EnsureComputeOpGenericAdaptor<::mlir::ValueRange> {
1276public:
1279
1280 ::llvm::LogicalResult verify(::mlir::Location loc);
1281};
1282class EnsureComputeOp : public ::mlir::Op<EnsureComputeOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::OneOperand, ::mlir::OpTrait::HasAncestor<::llzk::verif::ContractOp>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::MemoryEffectOpInterface::Trait, ::llzk::verif::ConditionOpInterface::Trait, ::llzk::verif::PostconditionOpInterface::Trait> {
1283public:
1284 using Op::Op;
1285 using Op::print;
1287 template <typename RangeT>
1290 static constexpr int odsIndex_condition = 0;
1292 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
1293 return {};
1294 }
1295
1296 static constexpr ::llvm::StringLiteral getOperationName() {
1297 return ::llvm::StringLiteral("verif.ensure_compute");
1298 }
1299
1300 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1301 return {index, 1};
1302 }
1303
1304 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
1305 auto valueRange = getODSOperandIndexAndLength(index);
1306 return {std::next(getOperation()->operand_begin(), valueRange.first),
1307 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
1308 }
1309
1310 ::mlir::TypedValue<::mlir::IntegerType> getCondition() {
1311 return ::llvm::cast<::mlir::TypedValue<::mlir::IntegerType>>(*getODSOperands(0).begin());
1312 }
1313
1314 ::mlir::OpOperand &getConditionMutable() {
1315 auto range = getODSOperandIndexAndLength(0);
1316 return getOperation()->getOpOperand(range.first);
1317 }
1318
1319 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
1320 return {index, 1};
1321 }
1322
1323 ::mlir::Operation::result_range getODSResults(unsigned index) {
1324 auto valueRange = getODSResultIndexAndLength(index);
1325 return {std::next(getOperation()->result_begin(), valueRange.first),
1326 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
1327 }
1328
1329 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
1330 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
1331 static llvm::hash_code computePropertiesHash(const Properties &prop);
1332 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
1333 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
1334 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
1335 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
1336 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value condition);
1337 static EnsureComputeOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Value condition);
1338 static EnsureComputeOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::Value condition);
1339 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value condition);
1340 static EnsureComputeOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::Value condition);
1341 static EnsureComputeOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::Value condition);
1342 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1343 static EnsureComputeOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1344 static EnsureComputeOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1345 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
1346 static EnsureComputeOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
1347 static EnsureComputeOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
1348 ::llvm::LogicalResult verifyInvariantsImpl();
1349 ::llvm::LogicalResult verifyInvariants();
1350 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
1351 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1352 void print(::mlir::OpAsmPrinter &_odsPrinter);
1353public:
1354};
1355
1356} // namespace llzk::verif
1357MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::verif::EnsureComputeOp)
1358
1359namespace llzk::verif {
1360
1361
1362//===----------------------------------------------------------------------===//
1363// ::llzk::verif::EnsureConstrainOp declarations
1364//===----------------------------------------------------------------------===//
1365
1366namespace detail {
1367
1369public:
1370 using Properties = ::mlir::EmptyProperties;
1371protected:
1372 ::mlir::DictionaryAttr odsAttrs;
1373 ::std::optional<::mlir::OperationName> odsOpName;
1375 ::mlir::RegionRange odsRegions;
1376public:
1377 EnsureConstrainOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
1378 odsOpName.emplace("verif.ensure_constrain", odsAttrs.getContext());
1379 }
1380
1382
1383 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
1384 return {index, 1};
1385 }
1386
1388 return properties;
1389 }
1390
1391 ::mlir::DictionaryAttr getAttributes() {
1392 return odsAttrs;
1393 }
1394
1395};
1396
1397} // namespace detail
1398template <typename RangeT>
1400 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1402 static constexpr int odsIndex_condition = 0;
1403public:
1404 EnsureConstrainOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
1405
1406 EnsureConstrainOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions = {}) : EnsureConstrainOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
1407
1408 EnsureConstrainOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : EnsureConstrainOpGenericAdaptor(values, attrs, Properties{}, {}) {}
1409
1410 EnsureConstrainOpGenericAdaptor(RangeT values, const EnsureConstrainOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
1411
1412 template <typename LateInst = EnsureConstrainOp, typename = std::enable_if_t<std::is_same_v<LateInst, EnsureConstrainOp>>>
1413 EnsureConstrainOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
1414
1415 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1416 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
1417 }
1418
1419 RangeT getODSOperands(unsigned index) {
1420 auto valueRange = getODSOperandIndexAndLength(index);
1421 return {std::next(odsOperands.begin(), valueRange.first),
1422 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1423 }
1424
1425 ValueT getCondition() {
1426 return (*getODSOperands(0).begin());
1427 }
1428
1429 RangeT getOperands() {
1430 return odsOperands;
1431 }
1432
1433private:
1434 RangeT odsOperands;
1435};
1437public:
1440
1441 ::llvm::LogicalResult verify(::mlir::Location loc);
1442};
1443class EnsureConstrainOp : public ::mlir::Op<EnsureConstrainOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::OneOperand, ::llzk::function::Verification<::llzk::function::ConstraintGen>::Impl, ::mlir::OpTrait::HasAncestor<::llzk::verif::ContractOp, ::llzk::function::FuncDefOp>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::MemoryEffectOpInterface::Trait, ::llzk::verif::ConditionOpInterface::Trait, ::llzk::verif::PostconditionOpInterface::Trait> {
1444public:
1445 using Op::Op;
1446 using Op::print;
1448 template <typename RangeT>
1451 static constexpr int odsIndex_condition = 0;
1453 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
1454 return {};
1455 }
1456
1457 static constexpr ::llvm::StringLiteral getOperationName() {
1458 return ::llvm::StringLiteral("verif.ensure_constrain");
1459 }
1460
1461 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1462 return {index, 1};
1463 }
1464
1465 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
1466 auto valueRange = getODSOperandIndexAndLength(index);
1467 return {std::next(getOperation()->operand_begin(), valueRange.first),
1468 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
1469 }
1470
1471 ::mlir::TypedValue<::mlir::IntegerType> getCondition() {
1472 return ::llvm::cast<::mlir::TypedValue<::mlir::IntegerType>>(*getODSOperands(0).begin());
1473 }
1474
1475 ::mlir::OpOperand &getConditionMutable() {
1476 auto range = getODSOperandIndexAndLength(0);
1477 return getOperation()->getOpOperand(range.first);
1478 }
1479
1480 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
1481 return {index, 1};
1482 }
1483
1484 ::mlir::Operation::result_range getODSResults(unsigned index) {
1485 auto valueRange = getODSResultIndexAndLength(index);
1486 return {std::next(getOperation()->result_begin(), valueRange.first),
1487 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
1488 }
1489
1490 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
1491 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
1492 static llvm::hash_code computePropertiesHash(const Properties &prop);
1493 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
1494 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
1495 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
1496 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
1497 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value condition);
1498 static EnsureConstrainOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Value condition);
1499 static EnsureConstrainOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::Value condition);
1500 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value condition);
1501 static EnsureConstrainOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::Value condition);
1502 static EnsureConstrainOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::Value condition);
1503 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1504 static EnsureConstrainOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1505 static EnsureConstrainOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1506 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
1507 static EnsureConstrainOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
1508 static EnsureConstrainOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
1509 ::llvm::LogicalResult verifyInvariantsImpl();
1510 ::llvm::LogicalResult verifyInvariants();
1511 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
1512 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1513 void print(::mlir::OpAsmPrinter &_odsPrinter);
1514public:
1515};
1516
1517} // namespace llzk::verif
1518MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::verif::EnsureConstrainOp)
1519
1520namespace llzk::verif {
1521
1522
1523//===----------------------------------------------------------------------===//
1524// ::llzk::verif::IncludeOp declarations
1525//===----------------------------------------------------------------------===//
1526
1527namespace detail {
1528
1530public:
1531 struct Properties {
1532 using arg_attrsTy = ::mlir::ArrayAttr;
1534
1535 auto getArgAttrs() const {
1536 auto &propStorage = this->arg_attrs;
1537 return ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(propStorage);
1538 }
1539 void setArgAttrs(const ::mlir::ArrayAttr &propValue) {
1540 this->arg_attrs = propValue;
1541 }
1542 using calleeTy = ::mlir::SymbolRefAttr;
1544
1545 auto getCallee() const {
1546 auto &propStorage = this->callee;
1547 return ::llvm::cast<::mlir::SymbolRefAttr>(propStorage);
1548 }
1549 void setCallee(const ::mlir::SymbolRefAttr &propValue) {
1550 this->callee = propValue;
1551 }
1552 using mapOpGroupSizesTy = ::mlir::DenseI32ArrayAttr;
1554
1555 auto getMapOpGroupSizes() const {
1556 auto &propStorage = this->mapOpGroupSizes;
1557 return ::llvm::cast<::mlir::DenseI32ArrayAttr>(propStorage);
1558 }
1559 void setMapOpGroupSizes(const ::mlir::DenseI32ArrayAttr &propValue) {
1560 this->mapOpGroupSizes = propValue;
1561 }
1562 using numDimsPerMapTy = ::mlir::DenseI32ArrayAttr;
1564
1565 auto getNumDimsPerMap() const {
1566 auto &propStorage = this->numDimsPerMap;
1567 return ::llvm::dyn_cast_or_null<::mlir::DenseI32ArrayAttr>(propStorage);
1568 }
1569 void setNumDimsPerMap(const ::mlir::DenseI32ArrayAttr &propValue) {
1570 this->numDimsPerMap = propValue;
1571 }
1572 using res_attrsTy = ::mlir::ArrayAttr;
1574
1575 auto getResAttrs() const {
1576 auto &propStorage = this->res_attrs;
1577 return ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(propStorage);
1578 }
1579 void setResAttrs(const ::mlir::ArrayAttr &propValue) {
1580 this->res_attrs = propValue;
1581 }
1582 using templateParamsTy = ::mlir::ArrayAttr;
1584
1585 auto getTemplateParams() const {
1586 auto &propStorage = this->templateParams;
1587 return ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(propStorage);
1588 }
1589 void setTemplateParams(const ::mlir::ArrayAttr &propValue) {
1590 this->templateParams = propValue;
1591 }
1592 using operandSegmentSizesTy = std::array<int32_t, 2>;
1594 ::llvm::ArrayRef<int32_t> getOperandSegmentSizes() const {
1595 auto &propStorage = this->operandSegmentSizes;
1596 return propStorage;
1597 }
1598 void setOperandSegmentSizes(::llvm::ArrayRef<int32_t> propValue) {
1599 auto &propStorage = this->operandSegmentSizes;
1600 ::llvm::copy(propValue, propStorage.begin());
1601 }
1602 bool operator==(const Properties &rhs) const {
1603 return
1604 rhs.arg_attrs == this->arg_attrs &&
1605 rhs.callee == this->callee &&
1606 rhs.mapOpGroupSizes == this->mapOpGroupSizes &&
1607 rhs.numDimsPerMap == this->numDimsPerMap &&
1608 rhs.res_attrs == this->res_attrs &&
1609 rhs.templateParams == this->templateParams &&
1610 rhs.operandSegmentSizes == this->operandSegmentSizes &&
1611 true;
1612 }
1613 bool operator!=(const Properties &rhs) const {
1614 return !(*this == rhs);
1615 }
1616 };
1617protected:
1618 ::mlir::DictionaryAttr odsAttrs;
1619 ::std::optional<::mlir::OperationName> odsOpName;
1621 ::mlir::RegionRange odsRegions;
1622public:
1623 IncludeOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
1624 odsOpName.emplace("verif.include", odsAttrs.getContext());
1625 }
1626
1628
1629 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize);
1631 return properties;
1632 }
1633
1634 ::mlir::DictionaryAttr getAttributes() {
1635 return odsAttrs;
1636 }
1637
1638 ::mlir::SymbolRefAttr getCalleeAttr() {
1639 auto attr = ::llvm::cast<::mlir::SymbolRefAttr>(getProperties().callee);
1640 return attr;
1641 }
1642
1643 ::mlir::SymbolRefAttr getCallee();
1644 ::mlir::ArrayAttr getTemplateParamsAttr() {
1645 auto attr = ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(getProperties().templateParams);
1646 return attr;
1647 }
1648
1649 ::std::optional< ::mlir::ArrayAttr > getTemplateParams();
1650 ::mlir::DenseI32ArrayAttr getNumDimsPerMapAttr();
1651 ::llvm::ArrayRef<int32_t> getNumDimsPerMap();
1652 ::mlir::DenseI32ArrayAttr getMapOpGroupSizesAttr() {
1653 auto attr = ::llvm::cast<::mlir::DenseI32ArrayAttr>(getProperties().mapOpGroupSizes);
1654 return attr;
1655 }
1656
1657 ::llvm::ArrayRef<int32_t> getMapOpGroupSizes();
1658 ::mlir::ArrayAttr getArgAttrsAttr() {
1659 auto attr = ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(getProperties().arg_attrs);
1660 return attr;
1661 }
1662
1663 ::std::optional< ::mlir::ArrayAttr > getArgAttrs();
1664 ::mlir::ArrayAttr getResAttrsAttr() {
1665 auto attr = ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(getProperties().res_attrs);
1666 return attr;
1667 }
1668
1669 ::std::optional< ::mlir::ArrayAttr > getResAttrs();
1670};
1671
1672} // namespace detail
1673template <typename RangeT>
1675 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1677 static constexpr int odsIndex_argOperands = 0;
1678 static constexpr int odsIndex_mapOperands = 1;
1679public:
1680 IncludeOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
1681
1682 IncludeOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions = {}) : IncludeOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
1683
1684 IncludeOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs) : IncludeOpGenericAdaptor(values, attrs, Properties{}, {}) {}
1685
1686 IncludeOpGenericAdaptor(RangeT values, const IncludeOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
1687
1688 template <typename LateInst = IncludeOp, typename = std::enable_if_t<std::is_same_v<LateInst, IncludeOp>>>
1689 IncludeOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
1690
1691 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1692 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
1693 }
1694
1695 RangeT getODSOperands(unsigned index) {
1696 auto valueRange = getODSOperandIndexAndLength(index);
1697 return {std::next(odsOperands.begin(), valueRange.first),
1698 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1699 }
1700
1702 return getODSOperands(0);
1703 }
1704
1705 ::llvm::SmallVector<RangeT> getMapOperands() {
1706 auto tblgenTmpOperands = getODSOperands(1);
1707 auto sizes = getMapOpGroupSizes();
1708
1709 ::llvm::SmallVector<RangeT> tblgenTmpOperandGroups;
1710 for (int i = 0, e = sizes.size(); i < e; ++i) {
1711 tblgenTmpOperandGroups.push_back(tblgenTmpOperands.take_front(sizes[i]));
1712 tblgenTmpOperands = tblgenTmpOperands.drop_front(sizes[i]);
1713 }
1714 return tblgenTmpOperandGroups;
1715 }
1716
1717 RangeT getOperands() {
1718 return odsOperands;
1719 }
1720
1721private:
1722 RangeT odsOperands;
1723};
1724class IncludeOpAdaptor : public IncludeOpGenericAdaptor<::mlir::ValueRange> {
1725public:
1728
1729 ::llvm::LogicalResult verify(::mlir::Location loc);
1730};
1731class IncludeOp : public ::mlir::Op<IncludeOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::VariadicOperands, ::mlir::OpTrait::AttrSizedOperandSegments, ::llzk::VerifySizesForMultiAffineOps<1>::Impl, ::mlir::OpTrait::HasAncestor<::llzk::verif::ContractOp>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::BytecodeOpInterface::Trait, ::mlir::OpTrait::MemRefsNormalizable, ::mlir::ArgAndResultAttrsOpInterface::Trait, ::mlir::CallOpInterface::Trait, ::mlir::SymbolUserOpInterface::Trait, ::llzk::LLZKCallLikeOpInterface::Trait> {
1732public:
1733 using Op::Op;
1734 using Op::print;
1736 template <typename RangeT>
1739 static constexpr int odsIndex_argOperands = 0;
1740 static constexpr int odsIndex_mapOperands = 1;
1742 using ::llzk::LLZKCallLikeOpInterface::Trait<IncludeOp>::getTypeSignature;
1743 using ::llzk::LLZKCallLikeOpInterface::Trait<IncludeOp>::unifyTypeSignatureWithNamespace;
1744 using ::llzk::LLZKCallLikeOpInterface::Trait<IncludeOp>::unifyTypeSignature;
1745 using ::llzk::LLZKCallLikeOpInterface::Trait<IncludeOp>::toVectorOfValueRange;
1746 using ::llzk::LLZKCallLikeOpInterface::Trait<IncludeOp>::verifyTemplateParamValueCompatibility;
1747 using ::llzk::LLZKCallLikeOpInterface::Trait<IncludeOp>::verifyTemplateParamValuesCompatibility;
1748 using ::llzk::LLZKCallLikeOpInterface::Trait<IncludeOp>::verifyTemplateParamsMatchInferred;
1749 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
1750 static ::llvm::StringRef attrNames[] = {::llvm::StringRef("arg_attrs"), ::llvm::StringRef("callee"), ::llvm::StringRef("mapOpGroupSizes"), ::llvm::StringRef("numDimsPerMap"), ::llvm::StringRef("res_attrs"), ::llvm::StringRef("templateParams"), ::llvm::StringRef("operandSegmentSizes")};
1751 return ::llvm::ArrayRef(attrNames);
1752 }
1753
1754 ::mlir::StringAttr getArgAttrsAttrName() {
1755 return getAttributeNameForIndex(0);
1756 }
1757
1758 static ::mlir::StringAttr getArgAttrsAttrName(::mlir::OperationName name) {
1759 return getAttributeNameForIndex(name, 0);
1760 }
1761
1762 ::mlir::StringAttr getCalleeAttrName() {
1763 return getAttributeNameForIndex(1);
1764 }
1765
1766 static ::mlir::StringAttr getCalleeAttrName(::mlir::OperationName name) {
1767 return getAttributeNameForIndex(name, 1);
1768 }
1769
1770 ::mlir::StringAttr getMapOpGroupSizesAttrName() {
1771 return getAttributeNameForIndex(2);
1772 }
1773
1774 static ::mlir::StringAttr getMapOpGroupSizesAttrName(::mlir::OperationName name) {
1775 return getAttributeNameForIndex(name, 2);
1776 }
1777
1778 ::mlir::StringAttr getNumDimsPerMapAttrName() {
1779 return getAttributeNameForIndex(3);
1780 }
1781
1782 static ::mlir::StringAttr getNumDimsPerMapAttrName(::mlir::OperationName name) {
1783 return getAttributeNameForIndex(name, 3);
1784 }
1785
1786 ::mlir::StringAttr getResAttrsAttrName() {
1787 return getAttributeNameForIndex(4);
1788 }
1789
1790 static ::mlir::StringAttr getResAttrsAttrName(::mlir::OperationName name) {
1791 return getAttributeNameForIndex(name, 4);
1792 }
1793
1794 ::mlir::StringAttr getTemplateParamsAttrName() {
1795 return getAttributeNameForIndex(5);
1796 }
1797
1798 static ::mlir::StringAttr getTemplateParamsAttrName(::mlir::OperationName name) {
1799 return getAttributeNameForIndex(name, 5);
1800 }
1801
1802 ::mlir::StringAttr getOperandSegmentSizesAttrName() {
1803 return (*this)->getName().getAttributeNames().back();
1804 }
1805
1806 static ::mlir::StringAttr getOperandSegmentSizesAttrName(::mlir::OperationName name) {
1807 return name.getAttributeNames().back();
1808 }
1809
1810 static constexpr ::llvm::StringLiteral getOperationName() {
1811 return ::llvm::StringLiteral("verif.include");
1812 }
1813
1814 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index);
1815 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
1816 auto valueRange = getODSOperandIndexAndLength(index);
1817 return {std::next(getOperation()->operand_begin(), valueRange.first),
1818 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
1819 }
1820
1821 ::mlir::Operation::operand_range getArgOperands() {
1822 return getODSOperands(0);
1823 }
1824
1825 ::mlir::OperandRangeRange getMapOperands() {
1826 return getODSOperands(1).split(getMapOpGroupSizesAttr());
1827 }
1828
1829 ::mlir::MutableOperandRange getArgOperandsMutable();
1830 ::mlir::MutableOperandRangeRange getMapOperandsMutable();
1831 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
1832 return {index, 1};
1833 }
1834
1835 ::mlir::Operation::result_range getODSResults(unsigned index) {
1836 auto valueRange = getODSResultIndexAndLength(index);
1837 return {std::next(getOperation()->result_begin(), valueRange.first),
1838 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
1839 }
1840
1841 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
1842 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
1843 static llvm::hash_code computePropertiesHash(const Properties &prop);
1844 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
1845 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
1846 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
1847 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
1848 static ::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
1849 void writeProperties(::mlir::DialectBytecodeWriter &writer);
1850 ::mlir::SymbolRefAttr getCalleeAttr() {
1851 return ::llvm::cast<::mlir::SymbolRefAttr>(getProperties().callee);
1852 }
1853
1854 ::mlir::SymbolRefAttr getCallee();
1855 ::mlir::ArrayAttr getTemplateParamsAttr() {
1856 return ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(getProperties().templateParams);
1857 }
1858
1859 ::std::optional< ::mlir::ArrayAttr > getTemplateParams();
1860 ::mlir::DenseI32ArrayAttr getNumDimsPerMapAttr() {
1861 return ::llvm::dyn_cast_or_null<::mlir::DenseI32ArrayAttr>(getProperties().numDimsPerMap);
1862 }
1863
1864 ::llvm::ArrayRef<int32_t> getNumDimsPerMap();
1865 ::mlir::DenseI32ArrayAttr getMapOpGroupSizesAttr() {
1866 return ::llvm::cast<::mlir::DenseI32ArrayAttr>(getProperties().mapOpGroupSizes);
1867 }
1868
1869 ::llvm::ArrayRef<int32_t> getMapOpGroupSizes();
1870 ::mlir::ArrayAttr getArgAttrsAttr() {
1871 return ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(getProperties().arg_attrs);
1872 }
1873
1874 ::std::optional< ::mlir::ArrayAttr > getArgAttrs();
1875 ::mlir::ArrayAttr getResAttrsAttr() {
1876 return ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(getProperties().res_attrs);
1877 }
1878
1879 ::std::optional< ::mlir::ArrayAttr > getResAttrs();
1880 void setCalleeAttr(::mlir::SymbolRefAttr attr) {
1881 getProperties().callee = attr;
1882 }
1883
1884 void setTemplateParamsAttr(::mlir::ArrayAttr attr) {
1885 getProperties().templateParams = attr;
1886 }
1887
1888 void setNumDimsPerMapAttr(::mlir::DenseI32ArrayAttr attr) {
1889 getProperties().numDimsPerMap = attr;
1890 }
1891
1892 void setNumDimsPerMap(::llvm::ArrayRef<int32_t> attrValue);
1893 void setMapOpGroupSizesAttr(::mlir::DenseI32ArrayAttr attr) {
1894 getProperties().mapOpGroupSizes = attr;
1895 }
1896
1897 void setMapOpGroupSizes(::llvm::ArrayRef<int32_t> attrValue);
1898 void setArgAttrsAttr(::mlir::ArrayAttr attr) {
1899 getProperties().arg_attrs = attr;
1900 }
1901
1902 void setResAttrsAttr(::mlir::ArrayAttr attr) {
1903 getProperties().res_attrs = attr;
1904 }
1905
1906 ::mlir::Attribute removeTemplateParamsAttr() {
1907 auto attr = getProperties().templateParams;
1908 getProperties().templateParams = {};
1909 return attr;
1910 }
1911
1912 ::mlir::Attribute removeArgAttrsAttr() {
1913 auto attr = getProperties().arg_attrs;
1914 getProperties().arg_attrs = {};
1915 return attr;
1916 }
1917
1918 ::mlir::Attribute removeResAttrsAttr() {
1919 auto attr = getProperties().res_attrs;
1920 getProperties().res_attrs = {};
1921 return attr;
1922 }
1923
1924 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::SymbolRefAttr callee, ::mlir::ValueRange argOperands = {}, ::llvm::ArrayRef<::mlir::Attribute> templateParams = {});
1925 static IncludeOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::SymbolRefAttr callee, ::mlir::ValueRange argOperands = {}, ::llvm::ArrayRef<::mlir::Attribute> templateParams = {});
1926 static IncludeOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::SymbolRefAttr callee, ::mlir::ValueRange argOperands = {}, ::llvm::ArrayRef<::mlir::Attribute> templateParams = {});
1927 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::SymbolRefAttr callee, ::llvm::ArrayRef<::mlir::ValueRange> mapOperands, ::mlir::DenseI32ArrayAttr numDimsPerMap, ::mlir::ValueRange argOperands = {}, ::llvm::ArrayRef<::mlir::Attribute> templateParams = {});
1928 static 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 = {});
1929 static IncludeOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::SymbolRefAttr callee, ::llvm::ArrayRef<::mlir::ValueRange> mapOperands, ::mlir::DenseI32ArrayAttr numDimsPerMap, ::mlir::ValueRange argOperands = {}, ::llvm::ArrayRef<::mlir::Attribute> templateParams = {});
1930 static void 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 = {});
1931 static 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 = {});
1932 static 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 = {});
1933 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llzk::verif::ContractOp callee, ::mlir::ValueRange argOperands = {}, ::llvm::ArrayRef<::mlir::Attribute> templateParams = {});
1934 static IncludeOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::llzk::verif::ContractOp callee, ::mlir::ValueRange argOperands = {}, ::llvm::ArrayRef<::mlir::Attribute> templateParams = {});
1935 static IncludeOp create(::mlir::ImplicitLocOpBuilder &builder, ::llzk::verif::ContractOp callee, ::mlir::ValueRange argOperands = {}, ::llvm::ArrayRef<::mlir::Attribute> templateParams = {});
1936 static void 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 = {});
1937 static 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 = {});
1938 static 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 = {});
1939 static void 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 = {});
1940 static 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 = {});
1941 static 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 = {});
1942 static void populateDefaultProperties(::mlir::OperationName opName, Properties &properties);
1943 ::llvm::LogicalResult verifyInvariantsImpl();
1944 ::llvm::LogicalResult verifyInvariants();
1945 ::mlir::CallInterfaceCallable getCallableForCallee();
1946 void setCalleeFromCallable(::mlir::CallInterfaceCallable callee);
1947 ::mlir::Operation *resolveCallableInTable(::mlir::SymbolTableCollection *symbolTable);
1948 ::mlir::Operation *resolveCallable();
1949 ::llvm::LogicalResult verifySymbolUses(::mlir::SymbolTableCollection &symbolTable);
1950 ::mlir::Value getSelfValue();
1951 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1952 static ::llvm::LogicalResult setPropertiesFromParsedAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
1953 void print(::mlir::OpAsmPrinter &_odsPrinter);
1954private:
1955 ::mlir::StringAttr getAttributeNameForIndex(unsigned index) {
1956 return getAttributeNameForIndex((*this)->getName(), index);
1957 }
1958
1959 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name, unsigned index) {
1960 assert(index < 6 && "invalid attribute index");
1961 assert(name.getStringRef() == getOperationName() && "invalid operation name");
1962 assert(name.isRegistered() && "Operation isn't registered, missing a "
1963 "dependent dialect loading?");
1964 return name.getAttributeNames()[index];
1965 }
1966
1967public:
1969 bool contractTargetsStruct();
1970
1972 ::mlir::FailureOr<::llzk::SymbolLookupResult<::llzk::verif::ContractOp>>
1973 getCalleeTarget(::mlir::SymbolTableCollection &tables);
1974};
1975
1976} // namespace llzk::verif
1977MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::verif::IncludeOp)
1979
1980namespace llzk::verif {
1981
1982
1983//===----------------------------------------------------------------------===//
1984// ::llzk::verif::IncreasesOp declarations
1985//===----------------------------------------------------------------------===//
1986
1987namespace detail {
1988
1990public:
1991 using Properties = ::mlir::EmptyProperties;
1992protected:
1993 ::mlir::DictionaryAttr odsAttrs;
1994 ::std::optional<::mlir::OperationName> odsOpName;
1996 ::mlir::RegionRange odsRegions;
1997public:
1998 IncreasesOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
1999 odsOpName.emplace("verif.increases", odsAttrs.getContext());
2000 }
2001
2003
2004 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
2005 return {index, 1};
2006 }
2007
2009 return properties;
2010 }
2011
2012 ::mlir::DictionaryAttr getAttributes() {
2013 return odsAttrs;
2014 }
2015
2016};
2017
2018} // namespace detail
2019template <typename RangeT>
2021 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
2023 static constexpr int odsIndex_value = 0;
2024public:
2025 IncreasesOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
2026
2027 IncreasesOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions = {}) : IncreasesOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
2028
2029 IncreasesOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : IncreasesOpGenericAdaptor(values, attrs, Properties{}, {}) {}
2030
2031 IncreasesOpGenericAdaptor(RangeT values, const IncreasesOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
2032
2033 template <typename LateInst = IncreasesOp, typename = std::enable_if_t<std::is_same_v<LateInst, IncreasesOp>>>
2034 IncreasesOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
2035
2036 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
2037 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
2038 }
2039
2040 RangeT getODSOperands(unsigned index) {
2041 auto valueRange = getODSOperandIndexAndLength(index);
2042 return {std::next(odsOperands.begin(), valueRange.first),
2043 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
2044 }
2045
2046 ValueT getValue() {
2047 return (*getODSOperands(0).begin());
2048 }
2049
2050 RangeT getOperands() {
2051 return odsOperands;
2052 }
2053
2054private:
2055 RangeT odsOperands;
2056};
2057class IncreasesOpAdaptor : public IncreasesOpGenericAdaptor<::mlir::ValueRange> {
2058public:
2061
2062 ::llvm::LogicalResult verify(::mlir::Location loc);
2063};
2064class IncreasesOp : public ::mlir::Op<IncreasesOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::OneOperand, ::mlir::OpTrait::HasAncestor<::llzk::verif::InvariantOp>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::MemoryEffectOpInterface::Trait> {
2065public:
2066 using Op::Op;
2067 using Op::print;
2069 template <typename RangeT>
2072 static constexpr int odsIndex_value = 0;
2074 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
2075 return {};
2076 }
2077
2078 static constexpr ::llvm::StringLiteral getOperationName() {
2079 return ::llvm::StringLiteral("verif.increases");
2080 }
2081
2082 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
2083 return {index, 1};
2084 }
2085
2086 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
2087 auto valueRange = getODSOperandIndexAndLength(index);
2088 return {std::next(getOperation()->operand_begin(), valueRange.first),
2089 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
2090 }
2091
2092 ::mlir::TypedValue<::llzk::felt::FeltType> getValue() {
2093 return ::llvm::cast<::mlir::TypedValue<::llzk::felt::FeltType>>(*getODSOperands(0).begin());
2094 }
2095
2096 ::mlir::OpOperand &getValueMutable() {
2097 auto range = getODSOperandIndexAndLength(0);
2098 return getOperation()->getOpOperand(range.first);
2099 }
2100
2101 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
2102 return {index, 1};
2103 }
2104
2105 ::mlir::Operation::result_range getODSResults(unsigned index) {
2106 auto valueRange = getODSResultIndexAndLength(index);
2107 return {std::next(getOperation()->result_begin(), valueRange.first),
2108 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
2109 }
2110
2111 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
2112 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
2113 static llvm::hash_code computePropertiesHash(const Properties &prop);
2114 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
2115 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
2116 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
2117 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
2118 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value value);
2119 static IncreasesOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Value value);
2120 static IncreasesOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::Value value);
2121 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value value);
2122 static IncreasesOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::Value value);
2123 static IncreasesOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::Value value);
2124 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2125 static IncreasesOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2126 static IncreasesOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2127 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
2128 static IncreasesOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
2129 static IncreasesOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
2130 ::llvm::LogicalResult verifyInvariantsImpl();
2131 ::llvm::LogicalResult verifyInvariants();
2132 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
2133 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
2134 void print(::mlir::OpAsmPrinter &_odsPrinter);
2135public:
2136};
2137
2138} // namespace llzk::verif
2139MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::verif::IncreasesOp)
2140
2141namespace llzk::verif {
2142
2143
2144//===----------------------------------------------------------------------===//
2145// ::llzk::verif::InvariantOp declarations
2146//===----------------------------------------------------------------------===//
2147
2148namespace detail {
2149
2151public:
2152 struct Properties {
2153 using loop_arg_typesTy = ::mlir::ArrayAttr;
2155
2156 auto getLoopArgTypes() const {
2157 auto &propStorage = this->loop_arg_types;
2158 return ::llvm::cast<::mlir::ArrayAttr>(propStorage);
2159 }
2160 void setLoopArgTypes(const ::mlir::ArrayAttr &propValue) {
2161 this->loop_arg_types = propValue;
2162 }
2163 using loop_nameTy = ::mlir::StringAttr;
2165
2166 auto getLoopName() const {
2167 auto &propStorage = this->loop_name;
2168 return ::llvm::cast<::mlir::StringAttr>(propStorage);
2169 }
2170 void setLoopName(const ::mlir::StringAttr &propValue) {
2171 this->loop_name = propValue;
2172 }
2173 bool operator==(const Properties &rhs) const {
2174 return
2175 rhs.loop_arg_types == this->loop_arg_types &&
2176 rhs.loop_name == this->loop_name &&
2177 true;
2178 }
2179 bool operator!=(const Properties &rhs) const {
2180 return !(*this == rhs);
2181 }
2182 };
2183protected:
2184 ::mlir::DictionaryAttr odsAttrs;
2185 ::std::optional<::mlir::OperationName> odsOpName;
2187 ::mlir::RegionRange odsRegions;
2188public:
2189 InvariantOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
2190 odsOpName.emplace("verif.invariant", odsAttrs.getContext());
2191 }
2192
2194
2195 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
2196 return {index, 1};
2197 }
2198
2200 return properties;
2201 }
2202
2203 ::mlir::DictionaryAttr getAttributes() {
2204 return odsAttrs;
2205 }
2206
2207 ::mlir::StringAttr getLoopNameAttr() {
2208 auto attr = ::llvm::cast<::mlir::StringAttr>(getProperties().loop_name);
2209 return attr;
2210 }
2211
2212 ::llvm::StringRef getLoopName();
2213 ::mlir::ArrayAttr getLoopArgTypesAttr() {
2214 auto attr = ::llvm::cast<::mlir::ArrayAttr>(getProperties().loop_arg_types);
2215 return attr;
2216 }
2217
2218 ::mlir::ArrayAttr getLoopArgTypes();
2219 ::mlir::Region &getRegion() {
2220 return *odsRegions[0];
2221 }
2222
2223 ::mlir::RegionRange getRegions() {
2224 return odsRegions;
2225 }
2226
2227};
2228
2229} // namespace detail
2230template <typename RangeT>
2232 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
2234public:
2235 InvariantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
2236
2237 InvariantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions = {}) : InvariantOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
2238
2239 InvariantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : InvariantOpGenericAdaptor(values, attrs, Properties{}, {}) {}
2240
2241 InvariantOpGenericAdaptor(RangeT values, const InvariantOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
2242
2243 template <typename LateInst = InvariantOp, typename = std::enable_if_t<std::is_same_v<LateInst, InvariantOp>>>
2244 InvariantOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
2245
2246 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
2247 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
2248 }
2249
2250 RangeT getODSOperands(unsigned index) {
2251 auto valueRange = getODSOperandIndexAndLength(index);
2252 return {std::next(odsOperands.begin(), valueRange.first),
2253 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
2254 }
2255
2256 RangeT getOperands() {
2257 return odsOperands;
2258 }
2259
2260private:
2261 RangeT odsOperands;
2262};
2263class InvariantOpAdaptor : public InvariantOpGenericAdaptor<::mlir::ValueRange> {
2264public:
2267
2268 ::llvm::LogicalResult verify(::mlir::Location loc);
2269};
2270class InvariantOp : public ::mlir::Op<InvariantOp, ::mlir::OpTrait::OneRegion, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::ZeroOperands, ::mlir::OpTrait::HasAncestor<::llzk::verif::ContractOp>::Impl, ::mlir::OpTrait::NoTerminator, ::mlir::OpTrait::SingleBlock, ::mlir::OpTrait::OpInvariants, ::mlir::BytecodeOpInterface::Trait> {
2271public:
2272 using Op::Op;
2273 using Op::print;
2275 template <typename RangeT>
2279 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
2280 static ::llvm::StringRef attrNames[] = {::llvm::StringRef("loop_arg_types"), ::llvm::StringRef("loop_name")};
2281 return ::llvm::ArrayRef(attrNames);
2282 }
2283
2284 ::mlir::StringAttr getLoopArgTypesAttrName() {
2285 return getAttributeNameForIndex(0);
2286 }
2287
2288 static ::mlir::StringAttr getLoopArgTypesAttrName(::mlir::OperationName name) {
2289 return getAttributeNameForIndex(name, 0);
2290 }
2291
2292 ::mlir::StringAttr getLoopNameAttrName() {
2293 return getAttributeNameForIndex(1);
2294 }
2295
2296 static ::mlir::StringAttr getLoopNameAttrName(::mlir::OperationName name) {
2297 return getAttributeNameForIndex(name, 1);
2298 }
2299
2300 static constexpr ::llvm::StringLiteral getOperationName() {
2301 return ::llvm::StringLiteral("verif.invariant");
2302 }
2303
2304 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
2305 return {index, 1};
2306 }
2307
2308 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
2309 auto valueRange = getODSOperandIndexAndLength(index);
2310 return {std::next(getOperation()->operand_begin(), valueRange.first),
2311 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
2312 }
2313
2314 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
2315 return {index, 1};
2316 }
2317
2318 ::mlir::Operation::result_range getODSResults(unsigned index) {
2319 auto valueRange = getODSResultIndexAndLength(index);
2320 return {std::next(getOperation()->result_begin(), valueRange.first),
2321 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
2322 }
2323
2324 ::mlir::Region &getRegion() {
2325 return (*this)->getRegion(0);
2326 }
2327
2328 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
2329 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
2330 static llvm::hash_code computePropertiesHash(const Properties &prop);
2331 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
2332 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
2333 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
2334 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
2335 static ::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
2336 void writeProperties(::mlir::DialectBytecodeWriter &writer);
2337 ::mlir::StringAttr getLoopNameAttr() {
2338 return ::llvm::cast<::mlir::StringAttr>(getProperties().loop_name);
2339 }
2340
2341 ::llvm::StringRef getLoopName();
2342 ::mlir::ArrayAttr getLoopArgTypesAttr() {
2343 return ::llvm::cast<::mlir::ArrayAttr>(getProperties().loop_arg_types);
2344 }
2345
2346 ::mlir::ArrayAttr getLoopArgTypes();
2347 void setLoopNameAttr(::mlir::StringAttr attr) {
2348 getProperties().loop_name = attr;
2349 }
2350
2351 void setLoopName(::llvm::StringRef attrValue);
2352 void setLoopArgTypesAttr(::mlir::ArrayAttr attr) {
2353 getProperties().loop_arg_types = attr;
2354 }
2355
2356 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 = {});
2357 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 = {});
2358 static InvariantOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::StringRef loop_name, ::llvm::ArrayRef<::mlir::Type> loop_arg_types = {}, ::llvm::ArrayRef<::mlir::Location> loop_arg_locs = {});
2359 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
2360 void print(::mlir::OpAsmPrinter &p);
2361 ::llvm::LogicalResult verifyInvariantsImpl();
2362 ::llvm::LogicalResult verifyInvariants();
2363 ::llvm::LogicalResult verify();
2364 static ::llvm::LogicalResult setPropertiesFromParsedAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
2365private:
2366 ::mlir::StringAttr getAttributeNameForIndex(unsigned index) {
2367 return getAttributeNameForIndex((*this)->getName(), index);
2368 }
2369
2370 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name, unsigned index) {
2371 assert(index < 2 && "invalid attribute index");
2372 assert(name.getStringRef() == getOperationName() && "invalid operation name");
2373 assert(name.isRegistered() && "Operation isn't registered, missing a "
2374 "dependent dialect loading?");
2375 return name.getAttributeNames()[index];
2376 }
2377
2378public:
2380 ::llzk::verif::ContractOp getParentContract();
2382 ::mlir::FailureOr<::llzk::verif::InvariantTargetOpInterface> getTarget();
2383};
2384
2385} // namespace llzk::verif
2386MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::verif::InvariantOp)
2388
2389namespace llzk::verif {
2390
2391
2392//===----------------------------------------------------------------------===//
2393// ::llzk::verif::OldOp declarations
2394//===----------------------------------------------------------------------===//
2395
2396namespace detail {
2397
2399public:
2400 using Properties = ::mlir::EmptyProperties;
2401protected:
2402 ::mlir::DictionaryAttr odsAttrs;
2403 ::std::optional<::mlir::OperationName> odsOpName;
2405 ::mlir::RegionRange odsRegions;
2406public:
2407 OldOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
2408 odsOpName.emplace("verif.old", odsAttrs.getContext());
2409 }
2410
2412
2413 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
2414 return {index, 1};
2415 }
2416
2418 return properties;
2419 }
2420
2421 ::mlir::DictionaryAttr getAttributes() {
2422 return odsAttrs;
2423 }
2424
2425};
2426
2427} // namespace detail
2428template <typename RangeT>
2430 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
2432 static constexpr int odsIndex_value = 0;
2433public:
2434 OldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
2435
2436 OldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions = {}) : OldOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
2437
2438 OldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : OldOpGenericAdaptor(values, attrs, Properties{}, {}) {}
2439
2440 OldOpGenericAdaptor(RangeT values, const OldOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
2441
2442 template <typename LateInst = OldOp, typename = std::enable_if_t<std::is_same_v<LateInst, OldOp>>>
2443 OldOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
2444
2445 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
2446 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
2447 }
2448
2449 RangeT getODSOperands(unsigned index) {
2450 auto valueRange = getODSOperandIndexAndLength(index);
2451 return {std::next(odsOperands.begin(), valueRange.first),
2452 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
2453 }
2454
2455 ValueT getValue() {
2456 return (*getODSOperands(0).begin());
2457 }
2458
2459 RangeT getOperands() {
2460 return odsOperands;
2461 }
2462
2463private:
2464 RangeT odsOperands;
2465};
2466class OldOpAdaptor : public OldOpGenericAdaptor<::mlir::ValueRange> {
2467public:
2469 OldOpAdaptor(OldOp op);
2470
2471 ::llvm::LogicalResult verify(::mlir::Location loc);
2472};
2473class OldOp : public ::mlir::Op<OldOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::mlir::Type>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::OneOperand, ::mlir::OpTrait::HasAncestor<::llzk::verif::StepOp>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::InferTypeOpInterface::Trait> {
2474public:
2475 using Op::Op;
2476 using Op::print;
2478 template <typename RangeT>
2481 static constexpr int odsIndex_value = 0;
2483 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
2484 return {};
2485 }
2486
2487 static constexpr ::llvm::StringLiteral getOperationName() {
2488 return ::llvm::StringLiteral("verif.old");
2489 }
2490
2491 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
2492 return {index, 1};
2493 }
2494
2495 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
2496 auto valueRange = getODSOperandIndexAndLength(index);
2497 return {std::next(getOperation()->operand_begin(), valueRange.first),
2498 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
2499 }
2500
2501 ::mlir::TypedValue<::mlir::Type> getValue() {
2502 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(0).begin());
2503 }
2504
2505 ::mlir::OpOperand &getValueMutable() {
2506 auto range = getODSOperandIndexAndLength(0);
2507 return getOperation()->getOpOperand(range.first);
2508 }
2509
2510 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
2511 return {index, 1};
2512 }
2513
2514 ::mlir::Operation::result_range getODSResults(unsigned index) {
2515 auto valueRange = getODSResultIndexAndLength(index);
2516 return {std::next(getOperation()->result_begin(), valueRange.first),
2517 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
2518 }
2519
2520 ::mlir::TypedValue<::mlir::Type> getResult() {
2521 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSResults(0).begin());
2522 }
2523
2524 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
2525 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
2526 static llvm::hash_code computePropertiesHash(const Properties &prop);
2527 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
2528 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
2529 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
2530 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
2531 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value value);
2532 static OldOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Type result, ::mlir::Value value);
2533 static OldOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::Type result, ::mlir::Value value);
2534 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value value);
2535 static OldOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Value value);
2536 static OldOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::Value value);
2537 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value value);
2538 static OldOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::Value value);
2539 static OldOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::Value value);
2540 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2541 static OldOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2542 static OldOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2543 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2544 static OldOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2545 static OldOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2546 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
2547 static OldOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
2548 static OldOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
2549 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
2550 static OldOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
2551 static OldOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
2552 ::llvm::LogicalResult verifyInvariantsImpl();
2553 ::llvm::LogicalResult verifyInvariants();
2554 static ::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);
2555 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
2556 void print(::mlir::OpAsmPrinter &_odsPrinter);
2557 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
2558public:
2559};
2560
2561} // namespace llzk::verif
2562MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::verif::OldOp)
2563
2564namespace llzk::verif {
2565
2566
2567//===----------------------------------------------------------------------===//
2568// ::llzk::verif::ProveDetOp declarations
2569//===----------------------------------------------------------------------===//
2570
2571namespace detail {
2572
2574public:
2575 using Properties = ::mlir::EmptyProperties;
2576protected:
2577 ::mlir::DictionaryAttr odsAttrs;
2578 ::std::optional<::mlir::OperationName> odsOpName;
2580 ::mlir::RegionRange odsRegions;
2581public:
2582 ProveDetOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
2583 odsOpName.emplace("verif.det.prove", odsAttrs.getContext());
2584 }
2585
2587
2588 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
2589 return {index, 1};
2590 }
2591
2593 return properties;
2594 }
2595
2596 ::mlir::DictionaryAttr getAttributes() {
2597 return odsAttrs;
2598 }
2599
2600};
2601
2602} // namespace detail
2603template <typename RangeT>
2605 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
2607 static constexpr int odsIndex_condition = 0;
2608public:
2609 ProveDetOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
2610
2611 ProveDetOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions = {}) : ProveDetOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
2612
2613 ProveDetOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : ProveDetOpGenericAdaptor(values, attrs, Properties{}, {}) {}
2614
2615 ProveDetOpGenericAdaptor(RangeT values, const ProveDetOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
2616
2617 template <typename LateInst = ProveDetOp, typename = std::enable_if_t<std::is_same_v<LateInst, ProveDetOp>>>
2618 ProveDetOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
2619
2620 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
2621 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
2622 }
2623
2624 RangeT getODSOperands(unsigned index) {
2625 auto valueRange = getODSOperandIndexAndLength(index);
2626 return {std::next(odsOperands.begin(), valueRange.first),
2627 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
2628 }
2629
2630 ValueT getCondition() {
2631 return (*getODSOperands(0).begin());
2632 }
2633
2634 RangeT getOperands() {
2635 return odsOperands;
2636 }
2637
2638private:
2639 RangeT odsOperands;
2640};
2641class ProveDetOpAdaptor : public ProveDetOpGenericAdaptor<::mlir::ValueRange> {
2642public:
2645
2646 ::llvm::LogicalResult verify(::mlir::Location loc);
2647};
2648class ProveDetOp : public ::mlir::Op<ProveDetOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::mlir::IntegerType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::OneOperand, ::llzk::function::Verification<>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::InferTypeOpInterface::Trait> {
2649public:
2650 using Op::Op;
2651 using Op::print;
2653 template <typename RangeT>
2656 static constexpr int odsIndex_condition = 0;
2658 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
2659 return {};
2660 }
2661
2662 static constexpr ::llvm::StringLiteral getOperationName() {
2663 return ::llvm::StringLiteral("verif.det.prove");
2664 }
2665
2666 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
2667 return {index, 1};
2668 }
2669
2670 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
2671 auto valueRange = getODSOperandIndexAndLength(index);
2672 return {std::next(getOperation()->operand_begin(), valueRange.first),
2673 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
2674 }
2675
2676 ::mlir::TypedValue<::mlir::Type> getCondition() {
2677 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(0).begin());
2678 }
2679
2680 ::mlir::OpOperand &getConditionMutable() {
2681 auto range = getODSOperandIndexAndLength(0);
2682 return getOperation()->getOpOperand(range.first);
2683 }
2684
2685 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
2686 return {index, 1};
2687 }
2688
2689 ::mlir::Operation::result_range getODSResults(unsigned index) {
2690 auto valueRange = getODSResultIndexAndLength(index);
2691 return {std::next(getOperation()->result_begin(), valueRange.first),
2692 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
2693 }
2694
2695 ::mlir::TypedValue<::mlir::IntegerType> getResult() {
2696 return ::llvm::cast<::mlir::TypedValue<::mlir::IntegerType>>(*getODSResults(0).begin());
2697 }
2698
2699 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
2700 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
2701 static llvm::hash_code computePropertiesHash(const Properties &prop);
2702 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
2703 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
2704 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
2705 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
2706 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value condition);
2707 static ProveDetOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Type result, ::mlir::Value condition);
2708 static ProveDetOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::Type result, ::mlir::Value condition);
2709 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value condition);
2710 static ProveDetOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Value condition);
2711 static ProveDetOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::Value condition);
2712 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value condition);
2713 static ProveDetOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::Value condition);
2714 static ProveDetOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::Value condition);
2715 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2716 static ProveDetOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2717 static ProveDetOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2718 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2719 static ProveDetOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2720 static ProveDetOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2721 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
2722 static ProveDetOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
2723 static ProveDetOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
2724 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
2725 static ProveDetOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
2726 static ProveDetOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
2727 ::llvm::LogicalResult verifyInvariantsImpl();
2728 ::llvm::LogicalResult verifyInvariants();
2729 static ::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);
2730 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
2731 void print(::mlir::OpAsmPrinter &_odsPrinter);
2732public:
2733};
2734
2735} // namespace llzk::verif
2736MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::verif::ProveDetOp)
2737
2738namespace llzk::verif {
2739
2740
2741//===----------------------------------------------------------------------===//
2742// ::llzk::verif::RequireComputeOp declarations
2743//===----------------------------------------------------------------------===//
2744
2745namespace detail {
2746
2748public:
2749 using Properties = ::mlir::EmptyProperties;
2750protected:
2751 ::mlir::DictionaryAttr odsAttrs;
2752 ::std::optional<::mlir::OperationName> odsOpName;
2754 ::mlir::RegionRange odsRegions;
2755public:
2756 RequireComputeOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
2757 odsOpName.emplace("verif.require_compute", odsAttrs.getContext());
2758 }
2759
2761
2762 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
2763 return {index, 1};
2764 }
2765
2767 return properties;
2768 }
2769
2770 ::mlir::DictionaryAttr getAttributes() {
2771 return odsAttrs;
2772 }
2773
2774};
2775
2776} // namespace detail
2777template <typename RangeT>
2779 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
2781 static constexpr int odsIndex_condition = 0;
2782public:
2783 RequireComputeOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
2784
2785 RequireComputeOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions = {}) : RequireComputeOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
2786
2787 RequireComputeOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : RequireComputeOpGenericAdaptor(values, attrs, Properties{}, {}) {}
2788
2789 RequireComputeOpGenericAdaptor(RangeT values, const RequireComputeOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
2790
2791 template <typename LateInst = RequireComputeOp, typename = std::enable_if_t<std::is_same_v<LateInst, RequireComputeOp>>>
2792 RequireComputeOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
2793
2794 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
2795 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
2796 }
2797
2798 RangeT getODSOperands(unsigned index) {
2799 auto valueRange = getODSOperandIndexAndLength(index);
2800 return {std::next(odsOperands.begin(), valueRange.first),
2801 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
2802 }
2803
2804 ValueT getCondition() {
2805 return (*getODSOperands(0).begin());
2806 }
2807
2808 RangeT getOperands() {
2809 return odsOperands;
2810 }
2811
2812private:
2813 RangeT odsOperands;
2814};
2816public:
2819
2820 ::llvm::LogicalResult verify(::mlir::Location loc);
2821};
2822class RequireComputeOp : public ::mlir::Op<RequireComputeOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::OneOperand, ::mlir::OpTrait::HasAncestor<::llzk::verif::ContractOp>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::MemoryEffectOpInterface::Trait, ::llzk::verif::ConditionOpInterface::Trait, ::llzk::verif::PreconditionOpInterface::Trait> {
2823public:
2824 using Op::Op;
2825 using Op::print;
2827 template <typename RangeT>
2830 static constexpr int odsIndex_condition = 0;
2832 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
2833 return {};
2834 }
2835
2836 static constexpr ::llvm::StringLiteral getOperationName() {
2837 return ::llvm::StringLiteral("verif.require_compute");
2838 }
2839
2840 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
2841 return {index, 1};
2842 }
2843
2844 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
2845 auto valueRange = getODSOperandIndexAndLength(index);
2846 return {std::next(getOperation()->operand_begin(), valueRange.first),
2847 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
2848 }
2849
2850 ::mlir::TypedValue<::mlir::IntegerType> getCondition() {
2851 return ::llvm::cast<::mlir::TypedValue<::mlir::IntegerType>>(*getODSOperands(0).begin());
2852 }
2853
2854 ::mlir::OpOperand &getConditionMutable() {
2855 auto range = getODSOperandIndexAndLength(0);
2856 return getOperation()->getOpOperand(range.first);
2857 }
2858
2859 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
2860 return {index, 1};
2861 }
2862
2863 ::mlir::Operation::result_range getODSResults(unsigned index) {
2864 auto valueRange = getODSResultIndexAndLength(index);
2865 return {std::next(getOperation()->result_begin(), valueRange.first),
2866 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
2867 }
2868
2869 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
2870 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
2871 static llvm::hash_code computePropertiesHash(const Properties &prop);
2872 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
2873 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
2874 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
2875 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
2876 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value condition);
2877 static RequireComputeOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Value condition);
2878 static RequireComputeOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::Value condition);
2879 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value condition);
2880 static RequireComputeOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::Value condition);
2881 static RequireComputeOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::Value condition);
2882 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2883 static RequireComputeOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2884 static RequireComputeOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2885 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
2886 static RequireComputeOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
2887 static RequireComputeOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
2888 ::llvm::LogicalResult verifyInvariantsImpl();
2889 ::llvm::LogicalResult verifyInvariants();
2890 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
2891 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
2892 void print(::mlir::OpAsmPrinter &_odsPrinter);
2893public:
2894};
2895
2896} // namespace llzk::verif
2897MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::verif::RequireComputeOp)
2898
2899namespace llzk::verif {
2900
2901
2902//===----------------------------------------------------------------------===//
2903// ::llzk::verif::RequireConstrainOp declarations
2904//===----------------------------------------------------------------------===//
2905
2906namespace detail {
2907
2909public:
2910 using Properties = ::mlir::EmptyProperties;
2911protected:
2912 ::mlir::DictionaryAttr odsAttrs;
2913 ::std::optional<::mlir::OperationName> odsOpName;
2915 ::mlir::RegionRange odsRegions;
2916public:
2917 RequireConstrainOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
2918 odsOpName.emplace("verif.require_constrain", odsAttrs.getContext());
2919 }
2920
2922
2923 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
2924 return {index, 1};
2925 }
2926
2928 return properties;
2929 }
2930
2931 ::mlir::DictionaryAttr getAttributes() {
2932 return odsAttrs;
2933 }
2934
2935};
2936
2937} // namespace detail
2938template <typename RangeT>
2940 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
2942 static constexpr int odsIndex_condition = 0;
2943public:
2944 RequireConstrainOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
2945
2946 RequireConstrainOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions = {}) : RequireConstrainOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
2947
2948 RequireConstrainOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : RequireConstrainOpGenericAdaptor(values, attrs, Properties{}, {}) {}
2949
2950 RequireConstrainOpGenericAdaptor(RangeT values, const RequireConstrainOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
2951
2952 template <typename LateInst = RequireConstrainOp, typename = std::enable_if_t<std::is_same_v<LateInst, RequireConstrainOp>>>
2953 RequireConstrainOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
2954
2955 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
2956 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
2957 }
2958
2959 RangeT getODSOperands(unsigned index) {
2960 auto valueRange = getODSOperandIndexAndLength(index);
2961 return {std::next(odsOperands.begin(), valueRange.first),
2962 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
2963 }
2964
2965 ValueT getCondition() {
2966 return (*getODSOperands(0).begin());
2967 }
2968
2969 RangeT getOperands() {
2970 return odsOperands;
2971 }
2972
2973private:
2974 RangeT odsOperands;
2975};
2977public:
2980
2981 ::llvm::LogicalResult verify(::mlir::Location loc);
2982};
2983class RequireConstrainOp : public ::mlir::Op<RequireConstrainOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::OneOperand, ::mlir::OpTrait::HasAncestor<::llzk::verif::ContractOp>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::MemoryEffectOpInterface::Trait, ::llzk::verif::ConditionOpInterface::Trait, ::llzk::verif::PreconditionOpInterface::Trait> {
2984public:
2985 using Op::Op;
2986 using Op::print;
2988 template <typename RangeT>
2991 static constexpr int odsIndex_condition = 0;
2993 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
2994 return {};
2995 }
2996
2997 static constexpr ::llvm::StringLiteral getOperationName() {
2998 return ::llvm::StringLiteral("verif.require_constrain");
2999 }
3000
3001 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
3002 return {index, 1};
3003 }
3004
3005 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
3006 auto valueRange = getODSOperandIndexAndLength(index);
3007 return {std::next(getOperation()->operand_begin(), valueRange.first),
3008 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
3009 }
3010
3011 ::mlir::TypedValue<::mlir::IntegerType> getCondition() {
3012 return ::llvm::cast<::mlir::TypedValue<::mlir::IntegerType>>(*getODSOperands(0).begin());
3013 }
3014
3015 ::mlir::OpOperand &getConditionMutable() {
3016 auto range = getODSOperandIndexAndLength(0);
3017 return getOperation()->getOpOperand(range.first);
3018 }
3019
3020 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
3021 return {index, 1};
3022 }
3023
3024 ::mlir::Operation::result_range getODSResults(unsigned index) {
3025 auto valueRange = getODSResultIndexAndLength(index);
3026 return {std::next(getOperation()->result_begin(), valueRange.first),
3027 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
3028 }
3029
3030 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
3031 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
3032 static llvm::hash_code computePropertiesHash(const Properties &prop);
3033 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
3034 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
3035 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
3036 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
3037 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value condition);
3038 static RequireConstrainOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Value condition);
3039 static RequireConstrainOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::Value condition);
3040 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value condition);
3041 static RequireConstrainOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::Value condition);
3042 static RequireConstrainOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::Value condition);
3043 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3044 static RequireConstrainOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3045 static RequireConstrainOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3046 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
3047 static RequireConstrainOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
3048 static RequireConstrainOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
3049 ::llvm::LogicalResult verifyInvariantsImpl();
3050 ::llvm::LogicalResult verifyInvariants();
3051 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
3052 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
3053 void print(::mlir::OpAsmPrinter &_odsPrinter);
3054public:
3055};
3056
3057} // namespace llzk::verif
3058MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::verif::RequireConstrainOp)
3059
3060namespace llzk::verif {
3061
3062
3063//===----------------------------------------------------------------------===//
3064// ::llzk::verif::StepOp declarations
3065//===----------------------------------------------------------------------===//
3066
3067namespace detail {
3068
3070public:
3071 using Properties = ::mlir::EmptyProperties;
3072protected:
3073 ::mlir::DictionaryAttr odsAttrs;
3074 ::std::optional<::mlir::OperationName> odsOpName;
3076 ::mlir::RegionRange odsRegions;
3077public:
3078 StepOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
3079 odsOpName.emplace("verif.step", odsAttrs.getContext());
3080 }
3081
3083
3084 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
3085 return {index, 1};
3086 }
3087
3089 return properties;
3090 }
3091
3092 ::mlir::DictionaryAttr getAttributes() {
3093 return odsAttrs;
3094 }
3095
3096 ::mlir::Region &getRegion() {
3097 return *odsRegions[0];
3098 }
3099
3100 ::mlir::RegionRange getRegions() {
3101 return odsRegions;
3102 }
3103
3104};
3105
3106} // namespace detail
3107template <typename RangeT>
3109 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
3111public:
3112 StepOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
3113
3114 StepOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions = {}) : StepOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
3115
3116 StepOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : StepOpGenericAdaptor(values, attrs, Properties{}, {}) {}
3117
3118 StepOpGenericAdaptor(RangeT values, const StepOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
3119
3120 template <typename LateInst = StepOp, typename = std::enable_if_t<std::is_same_v<LateInst, StepOp>>>
3121 StepOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
3122
3123 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
3124 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
3125 }
3126
3127 RangeT getODSOperands(unsigned index) {
3128 auto valueRange = getODSOperandIndexAndLength(index);
3129 return {std::next(odsOperands.begin(), valueRange.first),
3130 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
3131 }
3132
3133 RangeT getOperands() {
3134 return odsOperands;
3135 }
3136
3137private:
3138 RangeT odsOperands;
3139};
3140class StepOpAdaptor : public StepOpGenericAdaptor<::mlir::ValueRange> {
3141public:
3144
3145 ::llvm::LogicalResult verify(::mlir::Location loc);
3146};
3147class StepOp : public ::mlir::Op<StepOp, ::mlir::OpTrait::OneRegion, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::ZeroOperands, ::mlir::OpTrait::HasAncestor<::llzk::verif::InvariantOp>::Impl, ::mlir::OpTrait::NoRegionArguments, ::mlir::OpTrait::SingleBlock, ::mlir::OpTrait::OpInvariants, ::mlir::MemoryEffectOpInterface::Trait> {
3148public:
3149 using Op::Op;
3150 using Op::print;
3152 template <typename RangeT>
3156 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
3157 return {};
3158 }
3159
3160 static constexpr ::llvm::StringLiteral getOperationName() {
3161 return ::llvm::StringLiteral("verif.step");
3162 }
3163
3164 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
3165 return {index, 1};
3166 }
3167
3168 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
3169 auto valueRange = getODSOperandIndexAndLength(index);
3170 return {std::next(getOperation()->operand_begin(), valueRange.first),
3171 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
3172 }
3173
3174 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
3175 return {index, 1};
3176 }
3177
3178 ::mlir::Operation::result_range getODSResults(unsigned index) {
3179 auto valueRange = getODSResultIndexAndLength(index);
3180 return {std::next(getOperation()->result_begin(), valueRange.first),
3181 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
3182 }
3183
3184 ::mlir::Region &getRegion() {
3185 return (*this)->getRegion(0);
3186 }
3187
3188 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
3189 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
3190 static llvm::hash_code computePropertiesHash(const Properties &prop);
3191 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
3192 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
3193 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
3194 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
3195 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState);
3196 static StepOp create(::mlir::OpBuilder &builder, ::mlir::Location location);
3197 static StepOp create(::mlir::ImplicitLocOpBuilder &builder);
3198 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes);
3199 static StepOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes);
3200 static StepOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes);
3201 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3202 static StepOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3203 static StepOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3204 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
3205 static StepOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
3206 static StepOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
3207 ::llvm::LogicalResult verifyInvariantsImpl();
3208 ::llvm::LogicalResult verifyInvariants();
3209 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
3210 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
3211 void print(::mlir::OpAsmPrinter &_odsPrinter);
3212public:
3213};
3214
3215} // namespace llzk::verif
3216MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::verif::StepOp)
3217
3218namespace llzk::verif {
3219
3220
3221//===----------------------------------------------------------------------===//
3222// ::llzk::verif::StepYieldOp declarations
3223//===----------------------------------------------------------------------===//
3224
3225namespace detail {
3226
3228public:
3229 using Properties = ::mlir::EmptyProperties;
3230protected:
3231 ::mlir::DictionaryAttr odsAttrs;
3232 ::std::optional<::mlir::OperationName> odsOpName;
3234 ::mlir::RegionRange odsRegions;
3235public:
3236 StepYieldOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
3237 odsOpName.emplace("verif.step.yield", odsAttrs.getContext());
3238 }
3239
3241
3242 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
3243 return {index, 1};
3244 }
3245
3247 return properties;
3248 }
3249
3250 ::mlir::DictionaryAttr getAttributes() {
3251 return odsAttrs;
3252 }
3253
3254};
3255
3256} // namespace detail
3257template <typename RangeT>
3259 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
3261 static constexpr int odsIndex_value = 0;
3262public:
3263 StepYieldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
3264
3265 StepYieldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions = {}) : StepYieldOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
3266
3267 StepYieldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : StepYieldOpGenericAdaptor(values, attrs, Properties{}, {}) {}
3268
3269 StepYieldOpGenericAdaptor(RangeT values, const StepYieldOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
3270
3271 template <typename LateInst = StepYieldOp, typename = std::enable_if_t<std::is_same_v<LateInst, StepYieldOp>>>
3272 StepYieldOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
3273
3274 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
3275 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
3276 }
3277
3278 RangeT getODSOperands(unsigned index) {
3279 auto valueRange = getODSOperandIndexAndLength(index);
3280 return {std::next(odsOperands.begin(), valueRange.first),
3281 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
3282 }
3283
3284 ValueT getValue() {
3285 return (*getODSOperands(0).begin());
3286 }
3287
3288 RangeT getOperands() {
3289 return odsOperands;
3290 }
3291
3292private:
3293 RangeT odsOperands;
3294};
3295class StepYieldOpAdaptor : public StepYieldOpGenericAdaptor<::mlir::ValueRange> {
3296public:
3299
3300 ::llvm::LogicalResult verify(::mlir::Location loc);
3301};
3302class StepYieldOp : public ::mlir::Op<StepYieldOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::OneOperand, ::mlir::OpTrait::HasParent<StepOp>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::OpTrait::IsTerminator> {
3303public:
3304 using Op::Op;
3305 using Op::print;
3307 template <typename RangeT>
3310 static constexpr int odsIndex_value = 0;
3312 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
3313 return {};
3314 }
3315
3316 static constexpr ::llvm::StringLiteral getOperationName() {
3317 return ::llvm::StringLiteral("verif.step.yield");
3318 }
3319
3320 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
3321 return {index, 1};
3322 }
3323
3324 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
3325 auto valueRange = getODSOperandIndexAndLength(index);
3326 return {std::next(getOperation()->operand_begin(), valueRange.first),
3327 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
3328 }
3329
3330 ::mlir::TypedValue<::mlir::IntegerType> getValue() {
3331 return ::llvm::cast<::mlir::TypedValue<::mlir::IntegerType>>(*getODSOperands(0).begin());
3332 }
3333
3334 ::mlir::OpOperand &getValueMutable() {
3335 auto range = getODSOperandIndexAndLength(0);
3336 return getOperation()->getOpOperand(range.first);
3337 }
3338
3339 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
3340 return {index, 1};
3341 }
3342
3343 ::mlir::Operation::result_range getODSResults(unsigned index) {
3344 auto valueRange = getODSResultIndexAndLength(index);
3345 return {std::next(getOperation()->result_begin(), valueRange.first),
3346 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
3347 }
3348
3349 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
3350 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
3351 static llvm::hash_code computePropertiesHash(const Properties &prop);
3352 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
3353 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
3354 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
3355 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
3356 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value value);
3357 static StepYieldOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Value value);
3358 static StepYieldOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::Value value);
3359 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value value);
3360 static StepYieldOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::Value value);
3361 static StepYieldOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::Value value);
3362 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3363 static StepYieldOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3364 static StepYieldOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3365 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
3366 static StepYieldOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
3367 static StepYieldOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
3368 ::llvm::LogicalResult verifyInvariantsImpl();
3369 ::llvm::LogicalResult verifyInvariants();
3370 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
3371 void print(::mlir::OpAsmPrinter &_odsPrinter);
3372public:
3373};
3374
3375} // namespace llzk::verif
3376MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::verif::StepYieldOp)
3377
3378namespace llzk::verif {
3379
3380
3381//===----------------------------------------------------------------------===//
3382// ::llzk::verif::VerifAssertOp declarations
3383//===----------------------------------------------------------------------===//
3384
3385namespace detail {
3386
3388public:
3389 using Properties = ::mlir::EmptyProperties;
3390protected:
3391 ::mlir::DictionaryAttr odsAttrs;
3392 ::std::optional<::mlir::OperationName> odsOpName;
3394 ::mlir::RegionRange odsRegions;
3395public:
3396 VerifAssertOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
3397 odsOpName.emplace("verif.assert", odsAttrs.getContext());
3398 }
3399
3401
3402 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
3403 return {index, 1};
3404 }
3405
3407 return properties;
3408 }
3409
3410 ::mlir::DictionaryAttr getAttributes() {
3411 return odsAttrs;
3412 }
3413
3414};
3415
3416} // namespace detail
3417template <typename RangeT>
3419 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
3421 static constexpr int odsIndex_condition = 0;
3422public:
3423 VerifAssertOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
3424
3425 VerifAssertOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions = {}) : VerifAssertOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
3426
3427 VerifAssertOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : VerifAssertOpGenericAdaptor(values, attrs, Properties{}, {}) {}
3428
3429 VerifAssertOpGenericAdaptor(RangeT values, const VerifAssertOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
3430
3431 template <typename LateInst = VerifAssertOp, typename = std::enable_if_t<std::is_same_v<LateInst, VerifAssertOp>>>
3432 VerifAssertOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
3433
3434 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
3435 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
3436 }
3437
3438 RangeT getODSOperands(unsigned index) {
3439 auto valueRange = getODSOperandIndexAndLength(index);
3440 return {std::next(odsOperands.begin(), valueRange.first),
3441 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
3442 }
3443
3444 ValueT getCondition() {
3445 return (*getODSOperands(0).begin());
3446 }
3447
3448 RangeT getOperands() {
3449 return odsOperands;
3450 }
3451
3452private:
3453 RangeT odsOperands;
3454};
3455class VerifAssertOpAdaptor : public VerifAssertOpGenericAdaptor<::mlir::ValueRange> {
3456public:
3459
3460 ::llvm::LogicalResult verify(::mlir::Location loc);
3461};
3462class VerifAssertOp : public ::mlir::Op<VerifAssertOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::OneOperand, ::mlir::OpTrait::OpInvariants, ::mlir::MemoryEffectOpInterface::Trait, ::llzk::verif::ConditionOpInterface::Trait> {
3463public:
3464 using Op::Op;
3465 using Op::print;
3467 template <typename RangeT>
3470 static constexpr int odsIndex_condition = 0;
3472 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
3473 return {};
3474 }
3475
3476 static constexpr ::llvm::StringLiteral getOperationName() {
3477 return ::llvm::StringLiteral("verif.assert");
3478 }
3479
3480 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
3481 return {index, 1};
3482 }
3483
3484 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
3485 auto valueRange = getODSOperandIndexAndLength(index);
3486 return {std::next(getOperation()->operand_begin(), valueRange.first),
3487 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
3488 }
3489
3490 ::mlir::TypedValue<::mlir::IntegerType> getCondition() {
3491 return ::llvm::cast<::mlir::TypedValue<::mlir::IntegerType>>(*getODSOperands(0).begin());
3492 }
3493
3494 ::mlir::OpOperand &getConditionMutable() {
3495 auto range = getODSOperandIndexAndLength(0);
3496 return getOperation()->getOpOperand(range.first);
3497 }
3498
3499 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
3500 return {index, 1};
3501 }
3502
3503 ::mlir::Operation::result_range getODSResults(unsigned index) {
3504 auto valueRange = getODSResultIndexAndLength(index);
3505 return {std::next(getOperation()->result_begin(), valueRange.first),
3506 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
3507 }
3508
3509 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
3510 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
3511 static llvm::hash_code computePropertiesHash(const Properties &prop);
3512 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
3513 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
3514 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
3515 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
3516 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value condition);
3517 static VerifAssertOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Value condition);
3518 static VerifAssertOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::Value condition);
3519 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value condition);
3520 static VerifAssertOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::Value condition);
3521 static VerifAssertOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::Value condition);
3522 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3523 static VerifAssertOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3524 static VerifAssertOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3525 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
3526 static VerifAssertOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
3527 static VerifAssertOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
3528 ::llvm::LogicalResult verifyInvariantsImpl();
3529 ::llvm::LogicalResult verifyInvariants();
3530 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
3531 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
3532 void print(::mlir::OpAsmPrinter &_odsPrinter);
3533public:
3534};
3535
3536} // namespace llzk::verif
3537MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::verif::VerifAssertOp)
3538
3539namespace llzk::verif {
3540
3541
3542//===----------------------------------------------------------------------===//
3543// ::llzk::verif::VerifProveOp declarations
3544//===----------------------------------------------------------------------===//
3545
3546namespace detail {
3547
3549public:
3550 using Properties = ::mlir::EmptyProperties;
3551protected:
3552 ::mlir::DictionaryAttr odsAttrs;
3553 ::std::optional<::mlir::OperationName> odsOpName;
3555 ::mlir::RegionRange odsRegions;
3556public:
3557 VerifProveOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
3558 odsOpName.emplace("verif.prove", odsAttrs.getContext());
3559 }
3560
3562
3563 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
3564 return {index, 1};
3565 }
3566
3568 return properties;
3569 }
3570
3571 ::mlir::DictionaryAttr getAttributes() {
3572 return odsAttrs;
3573 }
3574
3575};
3576
3577} // namespace detail
3578template <typename RangeT>
3580 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
3582 static constexpr int odsIndex_condition = 0;
3583public:
3584 VerifProveOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
3585
3586 VerifProveOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions = {}) : VerifProveOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
3587
3588 VerifProveOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : VerifProveOpGenericAdaptor(values, attrs, Properties{}, {}) {}
3589
3590 VerifProveOpGenericAdaptor(RangeT values, const VerifProveOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
3591
3592 template <typename LateInst = VerifProveOp, typename = std::enable_if_t<std::is_same_v<LateInst, VerifProveOp>>>
3593 VerifProveOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
3594
3595 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
3596 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
3597 }
3598
3599 RangeT getODSOperands(unsigned index) {
3600 auto valueRange = getODSOperandIndexAndLength(index);
3601 return {std::next(odsOperands.begin(), valueRange.first),
3602 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
3603 }
3604
3605 ValueT getCondition() {
3606 return (*getODSOperands(0).begin());
3607 }
3608
3609 RangeT getOperands() {
3610 return odsOperands;
3611 }
3612
3613private:
3614 RangeT odsOperands;
3615};
3616class VerifProveOpAdaptor : public VerifProveOpGenericAdaptor<::mlir::ValueRange> {
3617public:
3620
3621 ::llvm::LogicalResult verify(::mlir::Location loc);
3622};
3623class VerifProveOp : public ::mlir::Op<VerifProveOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::OneOperand, ::mlir::OpTrait::OpInvariants, ::mlir::MemoryEffectOpInterface::Trait, ::llzk::verif::ConditionOpInterface::Trait> {
3624public:
3625 using Op::Op;
3626 using Op::print;
3628 template <typename RangeT>
3631 static constexpr int odsIndex_condition = 0;
3633 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
3634 return {};
3635 }
3636
3637 static constexpr ::llvm::StringLiteral getOperationName() {
3638 return ::llvm::StringLiteral("verif.prove");
3639 }
3640
3641 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
3642 return {index, 1};
3643 }
3644
3645 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
3646 auto valueRange = getODSOperandIndexAndLength(index);
3647 return {std::next(getOperation()->operand_begin(), valueRange.first),
3648 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
3649 }
3650
3651 ::mlir::TypedValue<::mlir::IntegerType> getCondition() {
3652 return ::llvm::cast<::mlir::TypedValue<::mlir::IntegerType>>(*getODSOperands(0).begin());
3653 }
3654
3655 ::mlir::OpOperand &getConditionMutable() {
3656 auto range = getODSOperandIndexAndLength(0);
3657 return getOperation()->getOpOperand(range.first);
3658 }
3659
3660 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
3661 return {index, 1};
3662 }
3663
3664 ::mlir::Operation::result_range getODSResults(unsigned index) {
3665 auto valueRange = getODSResultIndexAndLength(index);
3666 return {std::next(getOperation()->result_begin(), valueRange.first),
3667 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
3668 }
3669
3670 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
3671 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
3672 static llvm::hash_code computePropertiesHash(const Properties &prop);
3673 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
3674 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
3675 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
3676 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
3677 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value condition);
3678 static VerifProveOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Value condition);
3679 static VerifProveOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::Value condition);
3680 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value condition);
3681 static VerifProveOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::Value condition);
3682 static VerifProveOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::Value condition);
3683 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3684 static VerifProveOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3685 static VerifProveOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3686 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
3687 static VerifProveOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
3688 static VerifProveOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
3689 ::llvm::LogicalResult verifyInvariantsImpl();
3690 ::llvm::LogicalResult verifyInvariants();
3691 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
3692 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
3693 void print(::mlir::OpAsmPrinter &_odsPrinter);
3694public:
3695};
3696
3697} // namespace llzk::verif
3698MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::verif::VerifProveOp)
3699
3700namespace llzk::verif {
3701
3702
3703//===----------------------------------------------------------------------===//
3704// ::llzk::verif::VerifSMTProveOp declarations
3705//===----------------------------------------------------------------------===//
3706
3707namespace detail {
3708
3710public:
3711 using Properties = ::mlir::EmptyProperties;
3712protected:
3713 ::mlir::DictionaryAttr odsAttrs;
3714 ::std::optional<::mlir::OperationName> odsOpName;
3716 ::mlir::RegionRange odsRegions;
3717public:
3718 VerifSMTProveOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
3719 odsOpName.emplace("verif.smt_prove", odsAttrs.getContext());
3720 }
3721
3723
3724 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
3725 return {index, 1};
3726 }
3727
3729 return properties;
3730 }
3731
3732 ::mlir::DictionaryAttr getAttributes() {
3733 return odsAttrs;
3734 }
3735
3736};
3737
3738} // namespace detail
3739template <typename RangeT>
3741 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
3743 static constexpr int odsIndex_condition = 0;
3744public:
3745 VerifSMTProveOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
3746
3747 VerifSMTProveOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions = {}) : VerifSMTProveOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
3748
3749 VerifSMTProveOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : VerifSMTProveOpGenericAdaptor(values, attrs, Properties{}, {}) {}
3750
3751 VerifSMTProveOpGenericAdaptor(RangeT values, const VerifSMTProveOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
3752
3753 template <typename LateInst = VerifSMTProveOp, typename = std::enable_if_t<std::is_same_v<LateInst, VerifSMTProveOp>>>
3754 VerifSMTProveOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
3755
3756 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
3757 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
3758 }
3759
3760 RangeT getODSOperands(unsigned index) {
3761 auto valueRange = getODSOperandIndexAndLength(index);
3762 return {std::next(odsOperands.begin(), valueRange.first),
3763 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
3764 }
3765
3766 ValueT getCondition() {
3767 return (*getODSOperands(0).begin());
3768 }
3769
3770 RangeT getOperands() {
3771 return odsOperands;
3772 }
3773
3774private:
3775 RangeT odsOperands;
3776};
3777class VerifSMTProveOpAdaptor : public VerifSMTProveOpGenericAdaptor<::mlir::ValueRange> {
3778public:
3781
3782 ::llvm::LogicalResult verify(::mlir::Location loc);
3783};
3784class VerifSMTProveOp : public ::mlir::Op<VerifSMTProveOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::OneOperand, ::mlir::OpTrait::OpInvariants> {
3785public:
3786 using Op::Op;
3787 using Op::print;
3789 template <typename RangeT>
3792 static constexpr int odsIndex_condition = 0;
3794 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
3795 return {};
3796 }
3797
3798 static constexpr ::llvm::StringLiteral getOperationName() {
3799 return ::llvm::StringLiteral("verif.smt_prove");
3800 }
3801
3802 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
3803 return {index, 1};
3804 }
3805
3806 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
3807 auto valueRange = getODSOperandIndexAndLength(index);
3808 return {std::next(getOperation()->operand_begin(), valueRange.first),
3809 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
3810 }
3811
3812 ::mlir::TypedValue<mlir::smt::BoolType> getCondition() {
3813 return ::llvm::cast<::mlir::TypedValue<mlir::smt::BoolType>>(*getODSOperands(0).begin());
3814 }
3815
3816 ::mlir::OpOperand &getConditionMutable() {
3817 auto range = getODSOperandIndexAndLength(0);
3818 return getOperation()->getOpOperand(range.first);
3819 }
3820
3821 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
3822 return {index, 1};
3823 }
3824
3825 ::mlir::Operation::result_range getODSResults(unsigned index) {
3826 auto valueRange = getODSResultIndexAndLength(index);
3827 return {std::next(getOperation()->result_begin(), valueRange.first),
3828 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
3829 }
3830
3831 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
3832 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
3833 static llvm::hash_code computePropertiesHash(const Properties &prop);
3834 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
3835 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
3836 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
3837 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
3838 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value condition);
3839 static VerifSMTProveOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Value condition);
3840 static VerifSMTProveOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::Value condition);
3841 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value condition);
3842 static VerifSMTProveOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::Value condition);
3843 static VerifSMTProveOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::Value condition);
3844 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3845 static VerifSMTProveOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3846 static VerifSMTProveOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3847 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
3848 static VerifSMTProveOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
3849 static VerifSMTProveOp create(::mlir::ImplicitLocOpBuilder &builder, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, const Properties &properties, ::llvm::ArrayRef<::mlir::NamedAttribute> discardableAttributes = {});
3850 ::llvm::LogicalResult verifyInvariantsImpl();
3851 ::llvm::LogicalResult verifyInvariants();
3852 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
3853 void print(::mlir::OpAsmPrinter &_odsPrinter);
3854public:
3855};
3856
3857} // namespace llzk::verif
3858MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::verif::VerifSMTProveOp)
3859
3860
3861#endif // GET_OP_CLASSES
3862
AssumeDetOpAdaptor(AssumeDetOp op)
Definition Ops.cpp.inc:244
AssumeDetOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:305
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:246
AssumeDetOpGenericAdaptor(RangeT values, const AssumeDetOpGenericAdaptorBase &base)
Definition Ops.h.inc:311
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:316
AssumeDetOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:314
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:320
AssumeDetOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:305
AssumeDetOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition Ops.h.inc:309
AssumeDetOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:307
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:250
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:381
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:366
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition Ops.cpp.inc:280
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition Ops.cpp.inc:259
::mlir::TypedValue<::mlir::Type > getHint()
Definition Ops.h.inc:372
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:412
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition Ops.cpp.inc:273
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:358
static constexpr int odsIndex_hint
Definition Ops.h.inc:352
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:283
AssumeDetOpAdaptor Adaptor
Definition Ops.h.inc:348
::mlir::OpOperand & getHintMutable()
Definition Ops.h.inc:376
FoldAdaptor::Properties Properties
Definition Ops.h.inc:353
static AssumeDetOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Value hint)
Definition Ops.cpp.inc:291
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:375
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:379
AssumeDetOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:350
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:354
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:351
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:362
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition Ops.cpp.inc:277
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:385
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:362
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition Ops.cpp.inc:268
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value hint)
Definition Ops.cpp.inc:287
ContractEndOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:464
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:454
ContractEndOpAdaptor(ContractEndOp op)
Definition Ops.cpp.inc:452
ContractEndOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition Ops.h.inc:468
ContractEndOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:466
ContractEndOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:464
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:479
ContractEndOpGenericAdaptor(RangeT values, const ContractEndOpGenericAdaptorBase &base)
Definition Ops.h.inc:470
ContractEndOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:473
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:475
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:512
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:530
FoldAdaptor::Properties Properties
Definition Ops.h.inc:507
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:576
static ContractEndOp create(::mlir::OpBuilder &builder, ::mlir::Location location)
Definition Ops.cpp.inc:498
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition Ops.cpp.inc:488
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:568
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:508
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:572
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:458
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:526
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:491
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:520
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState)
Definition Ops.cpp.inc:495
ContractEndOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:505
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition Ops.cpp.inc:485
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition Ops.cpp.inc:481
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:506
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:589
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:594
ContractEndOpAdaptor Adaptor
Definition Ops.h.inc:503
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:516
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition Ops.cpp.inc:476
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition Ops.cpp.inc:467
ContractOpAdaptor(ContractOp op)
Definition Ops.cpp.inc:639
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:641
ContractOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:711
ContractOpGenericAdaptor(RangeT values, const ContractOpGenericAdaptorBase &base)
Definition Ops.h.inc:717
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:722
ContractOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition Ops.h.inc:715
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:726
ContractOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:713
ContractOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:711
ContractOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:720
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:858
::mlir::StringAttr getFunctionTypeAttrName()
Definition Ops.h.inc:768
::mlir::StringAttr getResAttrsAttrName()
Definition Ops.h.inc:776
::llvm::LogicalResult verifyRegions()
Definition Ops.cpp:664
void setSymNameAttr(::mlir::StringAttr attr)
Definition Ops.h.inc:862
ContractOpAdaptor Adaptor
Definition Ops.h.inc:750
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition Ops.cpp.inc:819
void setArgNameAttr(unsigned index, const ::mlir::StringAttr &attr)
Set the function.arg_name attribute for the argument at the given index.
Definition Ops.cpp:382
::mlir::FailureOr< SymbolLookupResult< function::FuncDefOp > > getFuncTarget(::mlir::SymbolTableCollection &tables)
Return the FuncDefOp that this contract targets, or failure if it does not target a function or the f...
void setTargetAttr(::mlir::SymbolRefAttr attr)
Definition Ops.h.inc:867
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:755
bool hasArgName(unsigned index)
Return true iff the argument at the given index has a function.arg_name attribute.
Definition Ops.cpp:370
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition Ops.cpp.inc:801
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition Ops.cpp.inc:791
::llvm::ArrayRef<::mlir::Type > getResultTypes()
Required by FunctionOpInterface.
Definition Ops.h.inc:978
bool hasArgPublicAttr(unsigned index)
Return true iff the argument at the given index has pub attribute.
Definition Ops.cpp:362
::mlir::Attribute removeResAttrsAttr()
Definition Ops.h.inc:890
::std::optional< ::mlir::ArrayAttr > getResAttrs()
Definition Ops.cpp.inc:941
void cloneInto(ContractOp dest, ::mlir::IRMapping &mapper)
Clone the internal blocks and attributes from this contract into dest.
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:800
void setFunctionTypeAttr(::mlir::TypeAttr attr)
Definition Ops.h.inc:871
::mlir::StringAttr getTargetAttrName()
Definition Ops.h.inc:792
void setFunctionType(::mlir::FunctionType attrValue)
Definition Ops.cpp.inc:950
::llvm::LogicalResult verifySymbolUses(::mlir::SymbolTableCollection &symbolTable)
Definition Ops.cpp:395
::mlir::StringAttr getSymNameAttr()
Definition Ops.h.inc:837
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:1106
::llvm::LogicalResult verify()
Definition Ops.cpp:610
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={})
Definition Ops.cpp.inc:954
void print(::mlir::OpAsmPrinter &p)
Definition Ops.cpp:582
::llvm::LogicalResult setPropertiesFromParsedAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:1112
::std::optional< ::mlir::ArrayAttr > getArgAttrs()
Definition Ops.cpp.inc:936
::mlir::StringAttr getResAttrsAttrName(::mlir::OperationName name)
Definition Ops.h.inc:780
::mlir::FunctionType getFunctionType()
Definition Ops.cpp.inc:931
void setArgName(unsigned index, ::llvm::StringRef name)
Set the function.arg_name attribute for the argument at the given index from a string.
Definition Ops.cpp:387
::mlir::Attribute removeArgAttrsAttr()
Definition Ops.h.inc:884
ContractOp clone(::mlir::IRMapping &mapper)
Create a deep copy of this contract and all of its blocks, remapping any operands that use values out...
::mlir::FailureOr< SymbolLookupResult<::llzk::verif::ContractTargetOpInterface > > getTargetOp(::mlir::SymbolTableCollection &tables)
Return the operation that this contract targets, or failure if it does not target an operation that i...
::mlir::StringAttr getSymNameAttrName()
Definition Ops.h.inc:784
bool hasStructTarget()
Return true iff the contract targets a struct type.
Definition Ops.h.inc:988
::std::optional<::mlir::StringAttr > getArgNameAttr(unsigned index)
Return the function.arg_name attribute for the argument at the given index.
Definition Ops.cpp:372
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:753
::llvm::ArrayRef<::mlir::Type > getArgumentTypes()
Required by FunctionOpInterface.
Definition Ops.h.inc:973
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:818
::mlir::Region & getBody()
Definition Ops.h.inc:824
void setArgAttrsAttr(::mlir::ArrayAttr attr)
Definition Ops.h.inc:876
::mlir::StringAttr getArgAttrsAttrName()
Definition Ops.h.inc:760
::mlir::StringAttr getArgAttrsAttrName(::mlir::OperationName name)
Definition Ops.h.inc:764
::mlir::TypeAttr getFunctionTypeAttr()
Definition Ops.h.inc:847
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:804
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:814
::mlir::FailureOr< SymbolLookupResult< component::StructDefOp > > getStructTarget(::mlir::SymbolTableCollection &tables)
Return the StructDefOp that this contract targets, or failure if it does not target a struct or the s...
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition Ops.cpp.inc:747
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition Ops.cpp.inc:846
::mlir::StringAttr getFunctionTypeAttrName(::mlir::OperationName name)
Definition Ops.h.inc:772
::mlir::Region * getCallableRegion()
Required by FunctionOpInterface.
Definition Ops.h.inc:969
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llvm::StringRef name, llvm::StringRef target)
::mlir::SymbolRefAttr getTargetAttr()
Definition Ops.h.inc:842
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:808
::mlir::SymbolRefAttr getFullyQualifiedName(bool requireParent=true)
Return the full name for this contract from the root module, including all surrounding symbol table n...
Definition Ops.cpp:391
::mlir::FailureOr< SymbolLookupResult<::llzk::verif::ContractTargetOpInterface > > getTargetOp()
Definition Ops.h.inc:1019
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:1072
::mlir::FailureOr<::mlir::Value > getSelfValue()
Return the "self" value (i.e.
Definition Ops.cpp:720
::mlir::ArrayAttr getArgAttrsAttr()
Definition Ops.h.inc:852
void writeProperties(::mlir::DialectBytecodeWriter &writer)
Definition Ops.cpp.inc:910
void setSymName(::llvm::StringRef attrValue)
Definition Ops.cpp.inc:946
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:668
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
Definition Ops.cpp.inc:891
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp:475
::mlir::SymbolRefAttr getTarget()
Definition Ops.cpp.inc:926
void setResAttrsAttr(::mlir::ArrayAttr attr)
Definition Ops.h.inc:880
FoldAdaptor::Properties Properties
Definition Ops.h.inc:754
::mlir::FailureOr< SymbolLookupResult< component::StructDefOp > > getStructTarget()
Definition Ops.h.inc:994
::mlir::FailureOr< SymbolLookupResult< function::FuncDefOp > > getFuncTarget()
Definition Ops.h.inc:1010
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={})
Definition Ops.cpp.inc:960
::mlir::StringAttr getSymNameAttrName(::mlir::OperationName name)
Definition Ops.h.inc:788
ContractOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:752
bool hasFuncTarget()
Return true iff the contract targets a function.
Definition Ops.h.inc:1004
::mlir::ArrayAttr getResAttrsAttr()
Definition Ops.h.inc:857
::llvm::StringRef getSymName()
Definition Ops.cpp.inc:921
::mlir::StringAttr getTargetAttrName(::mlir::OperationName name)
Definition Ops.h.inc:796
bool isDeclaration()
Required by SymbolOpInterface.
Definition Ops.h.inc:981
DecreasesOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1082
DecreasesOpAdaptor(DecreasesOp op)
Definition Ops.cpp.inc:1255
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:1257
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:1093
DecreasesOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:1091
DecreasesOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1084
DecreasesOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1082
DecreasesOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition Ops.h.inc:1086
DecreasesOpGenericAdaptor(RangeT values, const DecreasesOpGenericAdaptorBase &base)
Definition Ops.h.inc:1088
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:1097
FoldAdaptor::Properties Properties
Definition Ops.h.inc:1130
DecreasesOpAdaptor Adaptor
Definition Ops.h.inc:1125
::mlir::OpOperand & getValueMutable()
Definition Ops.h.inc:1153
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:1131
::mlir::TypedValue<::llzk::felt::FeltType > getValue()
Definition Ops.h.inc:1149
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:1422
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:1390
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:1135
static constexpr int odsIndex_value
Definition Ops.h.inc:1129
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition Ops.cpp.inc:1284
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value value)
Definition Ops.cpp.inc:1298
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition Ops.cpp.inc:1270
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:1158
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:1373
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:1143
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:1294
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition Ops.cpp.inc:1291
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:1128
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition Ops.cpp.inc:1279
static DecreasesOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Value value)
Definition Ops.cpp.inc:1302
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:1139
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:1386
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:1261
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:1162
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition Ops.cpp.inc:1288
DecreasesOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:1127
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:1413
EnsureComputeOpAdaptor(EnsureComputeOp op)
Definition Ops.cpp.inc:1444
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:1446
EnsureComputeOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1243
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:1254
EnsureComputeOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition Ops.h.inc:1247
EnsureComputeOpGenericAdaptor(RangeT values, const EnsureComputeOpGenericAdaptorBase &base)
Definition Ops.h.inc:1249
EnsureComputeOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:1252
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:1258
EnsureComputeOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1243
EnsureComputeOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1245
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:1579
static constexpr int odsIndex_condition
Definition Ops.h.inc:1290
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:1450
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:1611
::mlir::OpOperand & getConditionMutable()
Definition Ops.h.inc:1314
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:1575
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:1292
EnsureComputeOpAdaptor Adaptor
Definition Ops.h.inc:1286
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:1300
static EnsureComputeOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Value condition)
Definition Ops.cpp.inc:1491
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:1289
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:1296
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:1602
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition Ops.cpp.inc:1477
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:1304
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:1323
FoldAdaptor::Properties Properties
Definition Ops.h.inc:1291
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:1483
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition Ops.cpp.inc:1468
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value condition)
Definition Ops.cpp.inc:1487
EnsureComputeOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:1288
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:1562
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition Ops.cpp.inc:1473
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition Ops.cpp.inc:1459
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition Ops.cpp.inc:1480
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:1319
::mlir::TypedValue<::mlir::IntegerType > getCondition()
Definition Ops.h.inc:1310
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:1635
EnsureConstrainOpAdaptor(EnsureConstrainOp op)
Definition Ops.cpp.inc:1633
EnsureConstrainOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1404
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:1415
EnsureConstrainOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:1413
EnsureConstrainOpGenericAdaptor(RangeT values, const EnsureConstrainOpGenericAdaptorBase &base)
Definition Ops.h.inc:1410
EnsureConstrainOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1404
EnsureConstrainOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1406
EnsureConstrainOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition Ops.h.inc:1408
::mlir::OpOperand & getConditionMutable()
Definition Ops.h.inc:1475
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:1450
EnsureConstrainOpAdaptor Adaptor
Definition Ops.h.inc:1447
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:1480
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:1465
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:1800
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:1457
EnsureConstrainOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:1449
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:1764
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition Ops.cpp.inc:1662
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:1672
static EnsureConstrainOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Value condition)
Definition Ops.cpp.inc:1680
static constexpr int odsIndex_condition
Definition Ops.h.inc:1451
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:1791
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:1639
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:1751
FoldAdaptor::Properties Properties
Definition Ops.h.inc:1452
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:1461
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition Ops.cpp.inc:1648
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value condition)
Definition Ops.cpp.inc:1676
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition Ops.cpp.inc:1669
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition Ops.cpp.inc:1657
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:1768
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition Ops.cpp.inc:1666
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:1453
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:1484
::mlir::TypedValue<::mlir::IntegerType > getCondition()
Definition Ops.h.inc:1471
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:1868
IncludeOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1680
IncludeOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1682
IncludeOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs)
Definition Ops.h.inc:1684
::llvm::SmallVector< RangeT > getMapOperands()
Definition Ops.h.inc:1705
IncludeOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1680
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:1691
IncludeOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:1689
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:1695
IncludeOpGenericAdaptor(RangeT values, const IncludeOpGenericAdaptorBase &base)
Definition Ops.h.inc:1686
void setNumDimsPerMap(::llvm::ArrayRef< int32_t > attrValue)
Definition Ops.cpp.inc:2319
::mlir::StringAttr getArgAttrsAttrName(::mlir::OperationName name)
Definition Ops.h.inc:1758
::mlir::MutableOperandRange getArgOperandsMutable()
Definition Ops.cpp.inc:1907
::mlir::StringAttr getMapOpGroupSizesAttrName(::mlir::OperationName name)
Definition Ops.h.inc:1774
::mlir::ArrayAttr getTemplateParamsAttr()
Definition Ops.h.inc:1855
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition Ops.cpp.inc:2025
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:2433
static constexpr int odsIndex_argOperands
Definition Ops.h.inc:1739
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition Ops.cpp.inc:2084
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:1815
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
Definition Ops.cpp.inc:2216
IncludeOpAdaptor Adaptor
Definition Ops.h.inc:1735
void setMapOpGroupSizes(::llvm::ArrayRef< int32_t > attrValue)
Definition Ops.cpp.inc:2323
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:1749
::mlir::OperandRangeRange getMapOperands()
Definition Ops.h.inc:1825
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:1738
::llvm::LogicalResult setPropertiesFromParsedAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:2559
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:2484
::llvm::LogicalResult verifySymbolUses(::mlir::SymbolTableCollection &symbolTable)
Definition Ops.cpp:818
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.cpp.inc:1898
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:2177
void setNumDimsPerMapAttr(::mlir::DenseI32ArrayAttr attr)
Definition Ops.h.inc:1888
::mlir::Attribute removeResAttrsAttr()
Definition Ops.h.inc:1918
::llvm::ArrayRef< int32_t > getMapOpGroupSizes()
Definition Ops.cpp.inc:2304
void setArgAttrsAttr(::mlir::ArrayAttr attr)
Definition Ops.h.inc:1898
::std::optional< ::mlir::ArrayAttr > getResAttrs()
Definition Ops.cpp.inc:2314
void writeProperties(::mlir::DialectBytecodeWriter &writer)
Definition Ops.cpp.inc:2262
::mlir::StringAttr getNumDimsPerMapAttrName(::mlir::OperationName name)
Definition Ops.h.inc:1782
::mlir::SymbolRefAttr getCalleeAttr()
Definition Ops.h.inc:1850
FoldAdaptor::Properties Properties
Definition Ops.h.inc:1741
::mlir::StringAttr getResAttrsAttrName()
Definition Ops.h.inc:1786
void setMapOpGroupSizesAttr(::mlir::DenseI32ArrayAttr attr)
Definition Ops.h.inc:1893
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition Ops.cpp.inc:2100
::mlir::Operation::operand_range getArgOperands()
Definition Ops.h.inc:1821
void setCalleeAttr(::mlir::SymbolRefAttr attr)
Definition Ops.h.inc:1880
::mlir::StringAttr getArgAttrsAttrName()
Definition Ops.h.inc:1754
::mlir::ArrayAttr getResAttrsAttr()
Definition Ops.h.inc:1875
::mlir::FailureOr<::llzk::SymbolLookupResult<::llzk::verif::ContractOp > > getCalleeTarget(::mlir::SymbolTableCollection &tables)
Resolve and return the target Contract for this CallOp.
Definition Ops.cpp:858
::mlir::Operation * resolveCallable()
Definition Ops.cpp:907
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition Ops.cpp.inc:2162
::mlir::SymbolRefAttr getCallee()
Definition Ops.cpp.inc:2289
::mlir::StringAttr getCalleeAttrName()
Definition Ops.h.inc:1762
::mlir::StringAttr getTemplateParamsAttrName(::mlir::OperationName name)
Definition Ops.h.inc:1798
::mlir::StringAttr getMapOpGroupSizesAttrName()
Definition Ops.h.inc:1770
::std::optional< ::mlir::ArrayAttr > getArgAttrs()
Definition Ops.cpp.inc:2309
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:1919
::mlir::StringAttr getOperandSegmentSizesAttrName(::mlir::OperationName name)
Definition Ops.h.inc:1806
::mlir::Value getSelfValue()
Definition Ops.cpp:871
::mlir::MutableOperandRangeRange getMapOperandsMutable()
Definition Ops.cpp.inc:1913
::mlir::StringAttr getResAttrsAttrName(::mlir::OperationName name)
Definition Ops.h.inc:1790
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:1831
::mlir::StringAttr getOperandSegmentSizesAttrName()
Definition Ops.h.inc:1802
::std::optional< ::mlir::ArrayAttr > getTemplateParams()
Definition Ops.cpp.inc:2294
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition Ops.cpp.inc:2122
void setCalleeFromCallable(::mlir::CallInterfaceCallable callee)
Set the callee for this operation.
Definition Ops.cpp:886
bool contractTargetsStruct()
Return true iff the contract targets a struct type.
Definition Ops.cpp:865
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:1835
void setTemplateParamsAttr(::mlir::ArrayAttr attr)
Definition Ops.h.inc:1884
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)
Definition Ops.cpp.inc:2642
::mlir::StringAttr getCalleeAttrName(::mlir::OperationName name)
Definition Ops.h.inc:1766
static void populateDefaultProperties(::mlir::OperationName opName, Properties &properties)
Definition Ops.cpp.inc:2427
::llvm::ArrayRef< int32_t > getNumDimsPerMap()
Definition Ops.cpp.inc:2299
static IncludeOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::SymbolRefAttr callee, ::mlir::ValueRange argOperands={}, ::llvm::ArrayRef<::mlir::Attribute > templateParams={})
Definition Ops.cpp.inc:2327
::mlir::Attribute removeTemplateParamsAttr()
Definition Ops.h.inc:1906
::mlir::Attribute removeArgAttrsAttr()
Definition Ops.h.inc:1912
::mlir::StringAttr getNumDimsPerMapAttrName()
Definition Ops.h.inc:1778
::mlir::DenseI32ArrayAttr getNumDimsPerMapAttr()
Definition Ops.h.inc:1860
static constexpr int odsIndex_mapOperands
Definition Ops.h.inc:1740
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:2480
::mlir::Operation * resolveCallableInTable(::mlir::SymbolTableCollection *symbolTable)
Definition Ops.cpp:890
void setResAttrsAttr(::mlir::ArrayAttr attr)
Definition Ops.h.inc:1902
IncludeOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:1737
::mlir::ArrayAttr getArgAttrsAttr()
Definition Ops.h.inc:1870
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::SymbolRefAttr callee, ::llvm::ArrayRef<::mlir::ValueRange > mapOperands, ::mlir::DenseI32ArrayAttr numDimsPerMap, ::mlir::ValueRange argOperands={}, ::llvm::ArrayRef<::mlir::Attribute > templateParams={})
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:1810
::mlir::DenseI32ArrayAttr getMapOpGroupSizesAttr()
Definition Ops.h.inc:1865
::mlir::CallInterfaceCallable getCallableForCallee()
Return the callee of this operation.
Definition Ops.cpp:883
::mlir::StringAttr getTemplateParamsAttrName()
Definition Ops.h.inc:1794
IncreasesOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:2025
IncreasesOpAdaptor(IncreasesOp op)
Definition Ops.cpp.inc:2683
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:2685
IncreasesOpGenericAdaptor(RangeT values, const IncreasesOpGenericAdaptorBase &base)
Definition Ops.h.inc:2031
IncreasesOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition Ops.h.inc:2029
IncreasesOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:2034
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:2040
IncreasesOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:2025
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:2036
IncreasesOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:2027
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition Ops.cpp.inc:2719
IncreasesOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:2070
IncreasesOpAdaptor Adaptor
Definition Ops.h.inc:2068
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:2818
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition Ops.cpp.inc:2707
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:2078
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:2071
static constexpr int odsIndex_value
Definition Ops.h.inc:2072
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:2105
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:2689
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:2814
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:2841
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:2801
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:2722
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value value)
Definition Ops.cpp.inc:2726
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition Ops.cpp.inc:2712
::mlir::OpOperand & getValueMutable()
Definition Ops.h.inc:2096
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:2086
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:2082
static IncreasesOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Value value)
Definition Ops.cpp.inc:2730
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:2074
::mlir::TypedValue<::llzk::felt::FeltType > getValue()
Definition Ops.h.inc:2092
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:2101
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:2850
FoldAdaptor::Properties Properties
Definition Ops.h.inc:2073
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition Ops.cpp.inc:2716
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition Ops.cpp.inc:2698
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:2884
InvariantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:2235
InvariantOpAdaptor(InvariantOp op)
Definition Ops.cpp.inc:2882
InvariantOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:2244
InvariantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:2235
InvariantOpGenericAdaptor(RangeT values, const InvariantOpGenericAdaptorBase &base)
Definition Ops.h.inc:2241
InvariantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition Ops.h.inc:2239
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:2250
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:2246
InvariantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:2237
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:2277
::mlir::FailureOr<::llzk::verif::InvariantTargetOpInterface > getTarget()
Returns the loop target.
Definition Ops.cpp:1045
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:2992
InvariantOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:2276
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:2314
void setLoopArgTypesAttr(::mlir::ArrayAttr attr)
Definition Ops.h.inc:2352
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition Ops.cpp.inc:2974
::mlir::StringAttr getLoopArgTypesAttrName()
Definition Ops.h.inc:2284
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:2308
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:2300
InvariantOpAdaptor Adaptor
Definition Ops.h.inc:2274
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp:975
void writeProperties(::mlir::DialectBytecodeWriter &writer)
Definition Ops.cpp.inc:3017
::mlir::StringAttr getLoopArgTypesAttrName(::mlir::OperationName name)
Definition Ops.h.inc:2288
void setLoopName(::llvm::StringRef attrValue)
Definition Ops.cpp.inc:3033
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition Ops.cpp.inc:2965
::llvm::LogicalResult setPropertiesFromParsedAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:3076
::mlir::ArrayAttr getLoopArgTypesAttr()
Definition Ops.h.inc:2342
void print(::mlir::OpAsmPrinter &p)
Definition Ops.cpp:1024
::mlir::StringAttr getLoopNameAttrName(::mlir::OperationName name)
Definition Ops.h.inc:2296
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:2318
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition Ops.cpp.inc:2935
void setLoopNameAttr(::mlir::StringAttr attr)
Definition Ops.h.inc:2347
::mlir::ArrayAttr getLoopArgTypes()
Definition Ops.cpp.inc:3028
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition Ops.cpp.inc:2958
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:2279
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={})
Definition Ops.cpp.inc:3037
::mlir::StringAttr getLoopNameAttr()
Definition Ops.h.inc:2337
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
Definition Ops.cpp.inc:3007
::llvm::StringRef getLoopName()
Definition Ops.cpp.inc:3023
::llzk::verif::ContractOp getParentContract()
Returns the contract operation that contains this invariant.
Definition Ops.cpp:1041
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={})
Definition Ops.cpp:916
FoldAdaptor::Properties Properties
Definition Ops.h.inc:2278
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:2304
::llvm::LogicalResult verify()
Definition Ops.cpp:966
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition Ops.cpp.inc:2986
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:3049
::mlir::Region & getRegion()
Definition Ops.h.inc:2324
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:3070
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:2898
::mlir::StringAttr getLoopNameAttrName()
Definition Ops.h.inc:2292
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:3158
OldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:2434
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:2445
OldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition Ops.h.inc:2438
OldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:2434
OldOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:2443
OldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:2436
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:2449
OldOpGenericAdaptor(RangeT values, const OldOpGenericAdaptorBase &base)
Definition Ops.h.inc:2440
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:3195
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:2510
::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)
Definition Ops.cpp.inc:3391
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:3435
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:2487
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:2483
static OldOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Type result, ::mlir::Value value)
Definition Ops.cpp.inc:3204
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition Ops.cpp.inc:3189
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:3363
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition Ops.cpp.inc:3180
FoldAdaptor::Properties Properties
Definition Ops.h.inc:2482
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition Ops.cpp.inc:3185
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition Ops.cpp.inc:3192
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition Ops.cpp.inc:3171
OldOpAdaptor Adaptor
Definition Ops.h.inc:2477
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:3401
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:2495
::mlir::TypedValue<::mlir::Type > getResult()
Definition Ops.h.inc:2520
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:3387
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:2491
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:3451
::mlir::TypedValue<::mlir::Type > getValue()
Definition Ops.h.inc:2501
::mlir::OpOperand & getValueMutable()
Definition Ops.h.inc:2505
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:3162
OldOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:2479
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:2514
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:2480
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value value)
Definition Ops.cpp.inc:3199
static constexpr int odsIndex_value
Definition Ops.h.inc:2481
ProveDetOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:2609
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:3473
ProveDetOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition Ops.h.inc:2613
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:2624
ProveDetOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:2618
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:2620
ProveDetOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:2611
ProveDetOpGenericAdaptor(RangeT values, const ProveDetOpGenericAdaptorBase &base)
Definition Ops.h.inc:2615
ProveDetOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:2609
::mlir::TypedValue<::mlir::IntegerType > getResult()
Definition Ops.h.inc:2695
::mlir::OpOperand & getConditionMutable()
Definition Ops.h.inc:2680
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:2655
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:3678
::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)
Definition Ops.cpp.inc:3704
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition Ops.cpp.inc:3507
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:2662
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value condition)
Definition Ops.cpp.inc:3514
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition Ops.cpp.inc:3486
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition Ops.cpp.inc:3495
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:3747
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:3712
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:3477
static ProveDetOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Type result, ::mlir::Value condition)
Definition Ops.cpp.inc:3519
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:2685
ProveDetOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:2654
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:3510
FoldAdaptor::Properties Properties
Definition Ops.h.inc:2657
static constexpr int odsIndex_condition
Definition Ops.h.inc:2656
::mlir::TypedValue<::mlir::Type > getCondition()
Definition Ops.h.inc:2676
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:2689
ProveDetOpAdaptor Adaptor
Definition Ops.h.inc:2652
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition Ops.cpp.inc:3504
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition Ops.cpp.inc:3500
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:2670
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:2658
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:3700
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:2666
RequireComputeOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:2783
RequireComputeOpAdaptor(RequireComputeOp op)
Definition Ops.cpp.inc:3780
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:3782
RequireComputeOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:2792
RequireComputeOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:2783
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:2794
RequireComputeOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition Ops.h.inc:2787
RequireComputeOpGenericAdaptor(RangeT values, const RequireComputeOpGenericAdaptorBase &base)
Definition Ops.h.inc:2789
RequireComputeOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:2785
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition Ops.cpp.inc:3809
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:3786
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition Ops.cpp.inc:3804
static constexpr int odsIndex_condition
Definition Ops.h.inc:2830
RequireComputeOpAdaptor Adaptor
Definition Ops.h.inc:2826
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:2829
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:2836
RequireComputeOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:2828
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:2840
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition Ops.cpp.inc:3795
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition Ops.cpp.inc:3816
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:3898
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:3947
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:3819
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:3911
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:2859
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition Ops.cpp.inc:3813
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:3915
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:2832
::mlir::TypedValue<::mlir::IntegerType > getCondition()
Definition Ops.h.inc:2850
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:2844
static RequireComputeOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Value condition)
Definition Ops.cpp.inc:3827
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value condition)
Definition Ops.cpp.inc:3823
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:2863
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:3938
FoldAdaptor::Properties Properties
Definition Ops.h.inc:2831
::mlir::OpOperand & getConditionMutable()
Definition Ops.h.inc:2854
RequireConstrainOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:2944
RequireConstrainOpAdaptor(RequireConstrainOp op)
Definition Ops.cpp.inc:3969
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:3971
RequireConstrainOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:2953
RequireConstrainOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:2944
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:2955
RequireConstrainOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:2946
RequireConstrainOpGenericAdaptor(RangeT values, const RequireConstrainOpGenericAdaptorBase &base)
Definition Ops.h.inc:2950
RequireConstrainOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition Ops.h.inc:2948
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:2993
FoldAdaptor::Properties Properties
Definition Ops.h.inc:2992
::mlir::OpOperand & getConditionMutable()
Definition Ops.h.inc:3015
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:3020
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition Ops.cpp.inc:3998
RequireConstrainOpAdaptor Adaptor
Definition Ops.h.inc:2987
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition Ops.cpp.inc:3984
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:2990
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:3024
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:4100
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:3001
::mlir::TypedValue<::mlir::IntegerType > getCondition()
Definition Ops.h.inc:3011
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:4008
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:4136
RequireConstrainOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:2989
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:3975
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition Ops.cpp.inc:4002
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:4087
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value condition)
Definition Ops.cpp.inc:4012
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition Ops.cpp.inc:3993
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:4104
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:2997
static constexpr int odsIndex_condition
Definition Ops.h.inc:2991
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:3005
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:4127
static RequireConstrainOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Value condition)
Definition Ops.cpp.inc:4016
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition Ops.cpp.inc:4005
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:4160
StepOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:3112
StepOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:3114
StepOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition Ops.h.inc:3116
StepOpGenericAdaptor(RangeT values, const StepOpGenericAdaptorBase &base)
Definition Ops.h.inc:3118
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:3123
StepOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:3112
StepOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:3121
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:3127
StepOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:3153
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition Ops.cpp.inc:4182
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition Ops.cpp.inc:4194
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:3174
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:4295
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:4280
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition Ops.cpp.inc:4173
StepOpAdaptor Adaptor
Definition Ops.h.inc:3151
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:4291
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:3164
static StepOp create(::mlir::OpBuilder &builder, ::mlir::Location location)
Definition Ops.cpp.inc:4205
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:4324
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:3160
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:3154
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:3168
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:3156
::mlir::Region & getRegion()
Definition Ops.h.inc:3184
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition Ops.cpp.inc:4187
FoldAdaptor::Properties Properties
Definition Ops.h.inc:3155
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:4315
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:4197
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:3178
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition Ops.cpp.inc:4191
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState)
Definition Ops.cpp.inc:4201
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:4164
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:4348
StepYieldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:3263
StepYieldOpAdaptor(StepYieldOp op)
Definition Ops.cpp.inc:4346
StepYieldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:3265
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:3274
StepYieldOpGenericAdaptor(RangeT values, const StepYieldOpGenericAdaptorBase &base)
Definition Ops.h.inc:3269
StepYieldOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:3272
StepYieldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:3263
StepYieldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition Ops.h.inc:3267
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:3278
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:3316
static constexpr int odsIndex_value
Definition Ops.h.inc:3310
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition Ops.cpp.inc:4382
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:3312
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:4352
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:4385
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:3343
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition Ops.cpp.inc:4370
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition Ops.cpp.inc:4361
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:3309
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:3320
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value value)
Definition Ops.cpp.inc:4389
StepYieldOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:3308
::mlir::TypedValue<::mlir::IntegerType > getValue()
Definition Ops.h.inc:3330
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:4481
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition Ops.cpp.inc:4379
static StepYieldOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Value value)
Definition Ops.cpp.inc:4393
StepYieldOpAdaptor Adaptor
Definition Ops.h.inc:3306
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:4464
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition Ops.cpp.inc:4375
FoldAdaptor::Properties Properties
Definition Ops.h.inc:3311
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:3324
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:4477
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:3339
::mlir::OpOperand & getValueMutable()
Definition Ops.h.inc:3334
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:4504
VerifAssertOpAdaptor(VerifAssertOp op)
Definition Ops.cpp.inc:4528
VerifAssertOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:3423
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:4530
VerifAssertOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:3423
VerifAssertOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:3432
VerifAssertOpGenericAdaptor(RangeT values, const VerifAssertOpGenericAdaptorBase &base)
Definition Ops.h.inc:3429
VerifAssertOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition Ops.h.inc:3427
VerifAssertOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:3425
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:3434
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:3438
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:3503
::mlir::TypedValue<::mlir::IntegerType > getCondition()
Definition Ops.h.inc:3490
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:4646
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:4534
static constexpr int odsIndex_condition
Definition Ops.h.inc:3470
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:3499
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition Ops.cpp.inc:4552
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:3476
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:3472
VerifAssertOpAdaptor Adaptor
Definition Ops.h.inc:3466
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition Ops.cpp.inc:4543
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:3484
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:4695
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:4663
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition Ops.cpp.inc:4557
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:4686
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition Ops.cpp.inc:4564
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:3480
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition Ops.cpp.inc:4561
VerifAssertOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:3468
static VerifAssertOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Value condition)
Definition Ops.cpp.inc:4575
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:4659
::mlir::OpOperand & getConditionMutable()
Definition Ops.h.inc:3494
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value condition)
Definition Ops.cpp.inc:4571
FoldAdaptor::Properties Properties
Definition Ops.h.inc:3471
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:3469
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:4567
VerifProveOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:3584
VerifProveOpAdaptor(VerifProveOp op)
Definition Ops.cpp.inc:4717
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:4719
VerifProveOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition Ops.h.inc:3588
VerifProveOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:3584
VerifProveOpGenericAdaptor(RangeT values, const VerifProveOpGenericAdaptorBase &base)
Definition Ops.h.inc:3590
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:3599
VerifProveOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:3593
VerifProveOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:3586
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:3595
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:3641
::mlir::TypedValue<::mlir::IntegerType > getCondition()
Definition Ops.h.inc:3651
static VerifProveOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Value condition)
Definition Ops.cpp.inc:4764
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:4852
VerifProveOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:3629
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition Ops.cpp.inc:4750
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:3664
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:3633
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:4835
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:4848
FoldAdaptor::Properties Properties
Definition Ops.h.inc:3632
::mlir::OpOperand & getConditionMutable()
Definition Ops.h.inc:3655
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:3637
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:4756
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition Ops.cpp.inc:4746
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:4884
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition Ops.cpp.inc:4753
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition Ops.cpp.inc:4732
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:3645
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:3630
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:4723
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:3660
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition Ops.cpp.inc:4741
static constexpr int odsIndex_condition
Definition Ops.h.inc:3631
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value condition)
Definition Ops.cpp.inc:4760
VerifProveOpAdaptor Adaptor
Definition Ops.h.inc:3627
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:4875
VerifSMTProveOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:3745
VerifSMTProveOpAdaptor(VerifSMTProveOp op)
Definition Ops.cpp.inc:4906
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:4908
VerifSMTProveOpGenericAdaptor(RangeT values, const VerifSMTProveOpGenericAdaptorBase &base)
Definition Ops.h.inc:3751
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:3760
VerifSMTProveOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:3745
VerifSMTProveOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:3754
VerifSMTProveOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition Ops.h.inc:3749
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:3756
VerifSMTProveOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:3747
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:3794
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value condition)
Definition Ops.cpp.inc:4949
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:3806
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:3802
VerifSMTProveOpAdaptor Adaptor
Definition Ops.h.inc:3788
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:5041
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:5037
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:3791
static constexpr int odsIndex_condition
Definition Ops.h.inc:3792
FoldAdaptor::Properties Properties
Definition Ops.h.inc:3793
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:5024
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition Ops.cpp.inc:4942
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition Ops.cpp.inc:4930
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:3825
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition Ops.cpp.inc:4939
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:3821
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition Ops.cpp.inc:4921
::mlir::TypedValue< mlir::smt::BoolType > getCondition()
Definition Ops.h.inc:3812
VerifSMTProveOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:3790
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition Ops.cpp.inc:4935
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:3798
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:4912
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:4945
static VerifSMTProveOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Value condition)
Definition Ops.cpp.inc:4953
::mlir::OpOperand & getConditionMutable()
Definition Ops.h.inc:3816
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:5064
AssumeDetOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:278
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:274
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.h.inc:284
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.h.inc:444
ContractEndOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:438
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:434
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.h.inc:653
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:643
ContractOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:647
::std::optional< ::mlir::ArrayAttr > getArgAttrs()
Definition Ops.cpp.inc:627
::std::optional< ::mlir::ArrayAttr > getResAttrs()
Definition Ops.cpp.inc:632
DecreasesOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1055
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:1051
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.h.inc:1061
EnsureComputeOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1216
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:1212
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.h.inc:1222
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:1373
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.h.inc:1383
EnsureConstrainOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1377
::llvm::ArrayRef< int32_t > getNumDimsPerMap()
Definition Ops.cpp.inc:1844
::mlir::DenseI32ArrayAttr getNumDimsPerMapAttr()
Definition Ops.cpp.inc:1839
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:1619
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.cpp.inc:1820
::std::optional< ::mlir::ArrayAttr > getResAttrs()
Definition Ops.cpp.inc:1859
::std::optional< ::mlir::ArrayAttr > getArgAttrs()
Definition Ops.cpp.inc:1854
::llvm::ArrayRef< int32_t > getMapOpGroupSizes()
Definition Ops.cpp.inc:1849
::std::optional< ::mlir::ArrayAttr > getTemplateParams()
Definition Ops.cpp.inc:1834
IncludeOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1623
::mlir::DenseI32ArrayAttr getMapOpGroupSizesAttr()
Definition Ops.h.inc:1652
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:1994
IncreasesOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1998
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.h.inc:2004
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:2185
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.h.inc:2195
InvariantOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:2189
::mlir::DictionaryAttr getAttributes()
Definition Ops.h.inc:2421
OldOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:2407
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:2403
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.h.inc:2413
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:2578
ProveDetOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:2582
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.h.inc:2588
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.h.inc:2762
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:2752
RequireComputeOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:2756
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:2913
RequireConstrainOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:2917
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.h.inc:2923
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.h.inc:3084
StepOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:3078
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:3074
StepYieldOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:3236
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.h.inc:3242
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:3232
VerifAssertOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:3396
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:3392
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.h.inc:3402
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.h.inc:3563
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:3553
VerifProveOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:3557
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:3714
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.h.inc:3724
VerifSMTProveOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:3718
Common interface for precondition and postcondition operations.
llvm::StringLiteral getOperationName()
Get the operation name, like "constrain.eq" for the given OpClass.
Definition OpHelpers.h:34
void setResAttrs(const ::mlir::ArrayAttr &propValue)
Definition Ops.h.inc:605
void setTarget(const ::mlir::SymbolRefAttr &propValue)
Definition Ops.h.inc:625
void setFunctionType(const ::mlir::TypeAttr &propValue)
Definition Ops.h.inc:595
void setSymName(const ::mlir::StringAttr &propValue)
Definition Ops.h.inc:615
void setArgAttrs(const ::mlir::ArrayAttr &propValue)
Definition Ops.h.inc:585
void setResAttrs(const ::mlir::ArrayAttr &propValue)
Definition Ops.h.inc:1579
void setMapOpGroupSizes(const ::mlir::DenseI32ArrayAttr &propValue)
Definition Ops.h.inc:1559
::llvm::ArrayRef< int32_t > getOperandSegmentSizes() const
Definition Ops.h.inc:1594
void setNumDimsPerMap(const ::mlir::DenseI32ArrayAttr &propValue)
Definition Ops.h.inc:1569
void setArgAttrs(const ::mlir::ArrayAttr &propValue)
Definition Ops.h.inc:1539
void setOperandSegmentSizes(::llvm::ArrayRef< int32_t > propValue)
Definition Ops.h.inc:1598
void setCallee(const ::mlir::SymbolRefAttr &propValue)
Definition Ops.h.inc:1549
void setTemplateParams(const ::mlir::ArrayAttr &propValue)
Definition Ops.h.inc:1589
void setLoopArgTypes(const ::mlir::ArrayAttr &propValue)
Definition Ops.h.inc:2160
void setLoopName(const ::mlir::StringAttr &propValue)
Definition Ops.h.inc:2170