299template <
typename RangeT>
301 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
303 static constexpr int odsIndex_hint = 0;
313 template <
typename LateInst = AssumeDetOp,
typename = std::enable_if_t<std::is_same_v<LateInst, AssumeDetOp>>>
322 return {std::next(odsOperands.begin(), valueRange.first),
323 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
342 ::llvm::LogicalResult
verify(::mlir::Location loc);
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> {
349 template <
typename RangeT>
359 return ::llvm::StringLiteral(
"verif.det.assume");
368 return {std::next(getOperation()->operand_begin(), valueRange.first),
369 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
373 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*
getODSOperands(0).begin());
378 return getOperation()->getOpOperand(range.first);
387 return {std::next(getOperation()->result_begin(), valueRange.first),
388 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
391 static ::llvm::LogicalResult
setPropertiesFromAttr(
Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
394 static std::optional<mlir::Attribute>
getInherentAttr(::mlir::MLIRContext *ctx,
const Properties &prop, llvm::StringRef name);
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 = {});
412 static ::mlir::ParseResult
parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
413 void print(::mlir::OpAsmPrinter &_odsPrinter);
459template <
typename RangeT>
461 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
472 template <
typename LateInst = ContractEndOp,
typename = std::enable_if_t<std::is_same_v<LateInst, ContractEndOp>>>
481 return {std::next(odsOperands.begin(), valueRange.first),
482 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
497 ::llvm::LogicalResult
verify(::mlir::Location loc);
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> {
504 template <
typename RangeT>
513 return ::llvm::StringLiteral(
"verif.contract_end");
522 return {std::next(getOperation()->operand_begin(), valueRange.first),
523 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
532 return {std::next(getOperation()->result_begin(), valueRange.first),
533 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
536 static ::llvm::LogicalResult
setPropertiesFromAttr(
Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
539 static std::optional<mlir::Attribute>
getInherentAttr(::mlir::MLIRContext *ctx,
const Properties &prop, llvm::StringRef name);
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);
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 = {});
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);
582 auto &propStorage = this->arg_attrs;
583 return ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(propStorage);
586 this->arg_attrs = propValue;
592 auto &propStorage = this->function_type;
593 return ::llvm::cast<::mlir::TypeAttr>(propStorage);
596 this->function_type = propValue;
602 auto &propStorage = this->res_attrs;
603 return ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(propStorage);
606 this->res_attrs = propValue;
612 auto &propStorage = this->sym_name;
613 return ::llvm::cast<::mlir::StringAttr>(propStorage);
616 this->sym_name = propValue;
622 auto &propStorage = this->target;
623 return ::llvm::cast<::mlir::SymbolRefAttr>(propStorage);
625 void setTarget(const ::mlir::SymbolRefAttr &propValue) {
626 this->target = propValue;
634 rhs.
target == this->target &&
638 return !(*
this == rhs);
666 auto attr = ::llvm::cast<::mlir::StringAttr>(
getProperties().sym_name);
672 auto attr = ::llvm::cast<::mlir::SymbolRefAttr>(
getProperties().target);
678 auto attr = ::llvm::cast<::mlir::TypeAttr>(
getProperties().function_type);
684 auto attr = ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(
getProperties().arg_attrs);
688 ::std::optional< ::mlir::ArrayAttr >
getArgAttrs();
690 auto attr = ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(
getProperties().res_attrs);
694 ::std::optional< ::mlir::ArrayAttr >
getResAttrs();
706template <
typename RangeT>
708 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
719 template <
typename LateInst = ContractOp,
typename = std::enable_if_t<std::is_same_v<LateInst, ContractOp>>>
728 return {std::next(odsOperands.begin(), valueRange.first),
729 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
744 ::llvm::LogicalResult
verify(::mlir::Location loc);
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> {
751 template <
typename RangeT>
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);
761 return getAttributeNameForIndex(0);
765 return getAttributeNameForIndex(name, 0);
769 return getAttributeNameForIndex(1);
773 return getAttributeNameForIndex(name, 1);
777 return getAttributeNameForIndex(2);
781 return getAttributeNameForIndex(name, 2);
785 return getAttributeNameForIndex(3);
789 return getAttributeNameForIndex(name, 3);
793 return getAttributeNameForIndex(4);
797 return getAttributeNameForIndex(name, 4);
801 return ::llvm::StringLiteral(
"verif.contract");
810 return {std::next(getOperation()->operand_begin(), valueRange.first),
811 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
820 return {std::next(getOperation()->result_begin(), valueRange.first),
821 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
825 return (*this)->getRegion(0);
828 static ::llvm::LogicalResult
setPropertiesFromAttr(
Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
831 static std::optional<mlir::Attribute>
getInherentAttr(::mlir::MLIRContext *ctx,
const Properties &prop, llvm::StringRef name);
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);
838 return ::llvm::cast<::mlir::StringAttr>(getProperties().sym_name);
843 return ::llvm::cast<::mlir::SymbolRefAttr>(getProperties().target);
848 return ::llvm::cast<::mlir::TypeAttr>(getProperties().function_type);
853 return ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(getProperties().arg_attrs);
856 ::std::optional< ::mlir::ArrayAttr >
getArgAttrs();
858 return ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(getProperties().res_attrs);
861 ::std::optional< ::mlir::ArrayAttr >
getResAttrs();
863 getProperties().sym_name = attr;
868 getProperties().target = attr;
872 getProperties().function_type = attr;
877 getProperties().arg_attrs = attr;
881 getProperties().res_attrs = attr;
885 auto attr = getProperties().arg_attrs;
886 getProperties().arg_attrs = {};
891 auto attr = getProperties().res_attrs;
892 getProperties().res_attrs = {};
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);
918 ::llvm::LogicalResult
verify();
920 ::llvm::LogicalResult
verifySymbolUses(::mlir::SymbolTableCollection &symbolTable);
923 ::mlir::StringAttr getAttributeNameForIndex(
unsigned index) {
924 return getAttributeNameForIndex((*this)->getName(), index);
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];
959 ::std::optional<::mlir::StringAttr>
getArgNameAttr(
unsigned index);
962 void setArgNameAttr(
unsigned index, const ::mlir::StringAttr &attr);
965 void setArgName(
unsigned index, ::llvm::StringRef name);
992 ::mlir::FailureOr<SymbolLookupResult<component::StructDefOp>>
getStructTarget(::mlir::SymbolTableCollection &tables);
995 ::mlir::SymbolTableCollection tables;
1008 ::mlir::FailureOr<SymbolLookupResult<function::FuncDefOp>>
getFuncTarget(::mlir::SymbolTableCollection &tables);
1011 ::mlir::SymbolTableCollection tables;
1017 ::mlir::FailureOr<SymbolLookupResult<::llzk::verif::ContractTargetOpInterface>>
getTargetOp(::mlir::SymbolTableCollection &tables);
1019 ::mlir::FailureOr<SymbolLookupResult<::llzk::verif::ContractTargetOpInterface>>
getTargetOp() {
1020 ::mlir::SymbolTableCollection tables;
1027 static void initializeEmptyBody(
1028 ::mlir::OpBuilder &builder, ::mlir::OperationState &state,
1029 ::mlir::FunctionType functionType
1076template <
typename RangeT>
1078 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1080 static constexpr int odsIndex_value = 0;
1090 template <
typename LateInst = DecreasesOp,
typename = std::enable_if_t<std::is_same_v<LateInst, DecreasesOp>>>
1099 return {std::next(odsOperands.begin(), valueRange.first),
1100 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1119 ::llvm::LogicalResult
verify(::mlir::Location loc);
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> {
1126 template <
typename RangeT>
1136 return ::llvm::StringLiteral(
"verif.decreases");
1145 return {std::next(getOperation()->operand_begin(), valueRange.first),
1146 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
1149 ::mlir::TypedValue<::llzk::felt::FeltType>
getValue() {
1150 return ::llvm::cast<::mlir::TypedValue<::llzk::felt::FeltType>>(*
getODSOperands(0).begin());
1155 return getOperation()->getOpOperand(range.first);
1164 return {std::next(getOperation()->result_begin(), valueRange.first),
1165 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
1168 static ::llvm::LogicalResult
setPropertiesFromAttr(
Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
1171 static std::optional<mlir::Attribute>
getInherentAttr(::mlir::MLIRContext *ctx,
const Properties &prop, llvm::StringRef name);
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 = {});
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);
1237template <
typename RangeT>
1239 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1241 static constexpr int odsIndex_condition = 0;
1251 template <
typename LateInst = EnsureComputeOp,
typename = std::enable_if_t<std::is_same_v<LateInst, EnsureComputeOp>>>
1260 return {std::next(odsOperands.begin(), valueRange.first),
1261 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1280 ::llvm::LogicalResult
verify(::mlir::Location loc);
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> {
1287 template <
typename RangeT>
1297 return ::llvm::StringLiteral(
"verif.ensure_compute");
1306 return {std::next(getOperation()->operand_begin(), valueRange.first),
1307 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
1311 return ::llvm::cast<::mlir::TypedValue<::mlir::IntegerType>>(*
getODSOperands(0).begin());
1316 return getOperation()->getOpOperand(range.first);
1325 return {std::next(getOperation()->result_begin(), valueRange.first),
1326 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
1329 static ::llvm::LogicalResult
setPropertiesFromAttr(
Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
1332 static std::optional<mlir::Attribute>
getInherentAttr(::mlir::MLIRContext *ctx,
const Properties &prop, llvm::StringRef name);
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);
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 = {});
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);
1398template <
typename RangeT>
1400 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1402 static constexpr int odsIndex_condition = 0;
1412 template <
typename LateInst = EnsureConstrainOp,
typename = std::enable_if_t<std::is_same_v<LateInst, EnsureConstrainOp>>>
1421 return {std::next(odsOperands.begin(), valueRange.first),
1422 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1441 ::llvm::LogicalResult
verify(::mlir::Location loc);
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> {
1448 template <
typename RangeT>
1458 return ::llvm::StringLiteral(
"verif.ensure_constrain");
1467 return {std::next(getOperation()->operand_begin(), valueRange.first),
1468 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
1472 return ::llvm::cast<::mlir::TypedValue<::mlir::IntegerType>>(*
getODSOperands(0).begin());
1477 return getOperation()->getOpOperand(range.first);
1486 return {std::next(getOperation()->result_begin(), valueRange.first),
1487 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
1490 static ::llvm::LogicalResult
setPropertiesFromAttr(
Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
1493 static std::optional<mlir::Attribute>
getInherentAttr(::mlir::MLIRContext *ctx,
const Properties &prop, llvm::StringRef name);
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);
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 = {});
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);
1536 auto &propStorage = this->arg_attrs;
1537 return ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(propStorage);
1540 this->arg_attrs = propValue;
1546 auto &propStorage = this->callee;
1547 return ::llvm::cast<::mlir::SymbolRefAttr>(propStorage);
1550 this->callee = propValue;
1556 auto &propStorage = this->mapOpGroupSizes;
1557 return ::llvm::cast<::mlir::DenseI32ArrayAttr>(propStorage);
1560 this->mapOpGroupSizes = propValue;
1566 auto &propStorage = this->numDimsPerMap;
1567 return ::llvm::dyn_cast_or_null<::mlir::DenseI32ArrayAttr>(propStorage);
1570 this->numDimsPerMap = propValue;
1576 auto &propStorage = this->res_attrs;
1577 return ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(propStorage);
1580 this->res_attrs = propValue;
1586 auto &propStorage = this->templateParams;
1587 return ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(propStorage);
1590 this->templateParams = propValue;
1595 auto &propStorage = this->operandSegmentSizes;
1599 auto &propStorage = this->operandSegmentSizes;
1600 ::llvm::copy(propValue, propStorage.begin());
1605 rhs.
callee == this->callee &&
1614 return !(*
this == rhs);
1639 auto attr = ::llvm::cast<::mlir::SymbolRefAttr>(
getProperties().callee);
1645 auto attr = ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(
getProperties().templateParams);
1653 auto attr = ::llvm::cast<::mlir::DenseI32ArrayAttr>(
getProperties().mapOpGroupSizes);
1659 auto attr = ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(
getProperties().arg_attrs);
1663 ::std::optional< ::mlir::ArrayAttr >
getArgAttrs();
1665 auto attr = ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(
getProperties().res_attrs);
1669 ::std::optional< ::mlir::ArrayAttr >
getResAttrs();
1673template <
typename RangeT>
1675 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1677 static constexpr int odsIndex_argOperands = 0;
1678 static constexpr int odsIndex_mapOperands = 1;
1688 template <
typename LateInst = IncludeOp,
typename = std::enable_if_t<std::is_same_v<LateInst, IncludeOp>>>
1697 return {std::next(odsOperands.begin(), valueRange.first),
1698 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
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]);
1714 return tblgenTmpOperandGroups;
1729 ::llvm::LogicalResult
verify(::mlir::Location loc);
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> {
1736 template <
typename RangeT>
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;
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);
1755 return getAttributeNameForIndex(0);
1759 return getAttributeNameForIndex(name, 0);
1763 return getAttributeNameForIndex(1);
1767 return getAttributeNameForIndex(name, 1);
1771 return getAttributeNameForIndex(2);
1775 return getAttributeNameForIndex(name, 2);
1779 return getAttributeNameForIndex(3);
1783 return getAttributeNameForIndex(name, 3);
1787 return getAttributeNameForIndex(4);
1791 return getAttributeNameForIndex(name, 4);
1795 return getAttributeNameForIndex(5);
1799 return getAttributeNameForIndex(name, 5);
1803 return (*this)->getName().getAttributeNames().back();
1807 return name.getAttributeNames().back();
1811 return ::llvm::StringLiteral(
"verif.include");
1817 return {std::next(getOperation()->operand_begin(), valueRange.first),
1818 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
1837 return {std::next(getOperation()->result_begin(), valueRange.first),
1838 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
1841 static ::llvm::LogicalResult
setPropertiesFromAttr(
Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
1844 static std::optional<mlir::Attribute>
getInherentAttr(::mlir::MLIRContext *ctx,
const Properties &prop, llvm::StringRef name);
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);
1851 return ::llvm::cast<::mlir::SymbolRefAttr>(getProperties().callee);
1856 return ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(getProperties().templateParams);
1861 return ::llvm::dyn_cast_or_null<::mlir::DenseI32ArrayAttr>(getProperties().numDimsPerMap);
1866 return ::llvm::cast<::mlir::DenseI32ArrayAttr>(getProperties().mapOpGroupSizes);
1871 return ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(getProperties().arg_attrs);
1874 ::std::optional< ::mlir::ArrayAttr >
getArgAttrs();
1876 return ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(getProperties().res_attrs);
1879 ::std::optional< ::mlir::ArrayAttr >
getResAttrs();
1881 getProperties().callee = attr;
1885 getProperties().templateParams = attr;
1889 getProperties().numDimsPerMap = attr;
1894 getProperties().mapOpGroupSizes = attr;
1899 getProperties().arg_attrs = attr;
1903 getProperties().res_attrs = attr;
1907 auto attr = getProperties().templateParams;
1908 getProperties().templateParams = {};
1913 auto attr = getProperties().arg_attrs;
1914 getProperties().arg_attrs = {};
1919 auto attr = getProperties().res_attrs;
1920 getProperties().res_attrs = {};
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 = {});
1949 ::llvm::LogicalResult
verifySymbolUses(::mlir::SymbolTableCollection &symbolTable);
1951 static ::mlir::ParseResult
parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1953 void print(::mlir::OpAsmPrinter &_odsPrinter);
1955 ::mlir::StringAttr getAttributeNameForIndex(
unsigned index) {
1956 return getAttributeNameForIndex((*this)->getName(), index);
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];
1972 ::mlir::FailureOr<::llzk::SymbolLookupResult<::llzk::verif::ContractOp>>
2019template <
typename RangeT>
2021 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
2023 static constexpr int odsIndex_value = 0;
2033 template <
typename LateInst = IncreasesOp,
typename = std::enable_if_t<std::is_same_v<LateInst, IncreasesOp>>>
2042 return {std::next(odsOperands.begin(), valueRange.first),
2043 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
2062 ::llvm::LogicalResult
verify(::mlir::Location loc);
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> {
2069 template <
typename RangeT>
2079 return ::llvm::StringLiteral(
"verif.increases");
2088 return {std::next(getOperation()->operand_begin(), valueRange.first),
2089 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
2092 ::mlir::TypedValue<::llzk::felt::FeltType>
getValue() {
2093 return ::llvm::cast<::mlir::TypedValue<::llzk::felt::FeltType>>(*
getODSOperands(0).begin());
2098 return getOperation()->getOpOperand(range.first);
2107 return {std::next(getOperation()->result_begin(), valueRange.first),
2108 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
2111 static ::llvm::LogicalResult
setPropertiesFromAttr(
Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
2114 static std::optional<mlir::Attribute>
getInherentAttr(::mlir::MLIRContext *ctx,
const Properties &prop, llvm::StringRef name);
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 = {});
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);
2157 auto &propStorage = this->loop_arg_types;
2158 return ::llvm::cast<::mlir::ArrayAttr>(propStorage);
2161 this->loop_arg_types = propValue;
2167 auto &propStorage = this->loop_name;
2168 return ::llvm::cast<::mlir::StringAttr>(propStorage);
2171 this->loop_name = propValue;
2180 return !(*
this == rhs);
2208 auto attr = ::llvm::cast<::mlir::StringAttr>(
getProperties().loop_name);
2214 auto attr = ::llvm::cast<::mlir::ArrayAttr>(
getProperties().loop_arg_types);
2230template <
typename RangeT>
2232 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
2243 template <
typename LateInst = InvariantOp,
typename = std::enable_if_t<std::is_same_v<LateInst, InvariantOp>>>
2252 return {std::next(odsOperands.begin(), valueRange.first),
2253 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
2268 ::llvm::LogicalResult
verify(::mlir::Location loc);
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> {
2275 template <
typename RangeT>
2280 static ::llvm::StringRef attrNames[] = {::llvm::StringRef(
"loop_arg_types"), ::llvm::StringRef(
"loop_name")};
2281 return ::llvm::ArrayRef(attrNames);
2285 return getAttributeNameForIndex(0);
2289 return getAttributeNameForIndex(name, 0);
2293 return getAttributeNameForIndex(1);
2297 return getAttributeNameForIndex(name, 1);
2301 return ::llvm::StringLiteral(
"verif.invariant");
2310 return {std::next(getOperation()->operand_begin(), valueRange.first),
2311 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
2320 return {std::next(getOperation()->result_begin(), valueRange.first),
2321 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
2325 return (*this)->getRegion(0);
2328 static ::llvm::LogicalResult
setPropertiesFromAttr(
Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
2331 static std::optional<mlir::Attribute>
getInherentAttr(::mlir::MLIRContext *ctx,
const Properties &prop, llvm::StringRef name);
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);
2338 return ::llvm::cast<::mlir::StringAttr>(getProperties().loop_name);
2343 return ::llvm::cast<::mlir::ArrayAttr>(getProperties().loop_arg_types);
2348 getProperties().loop_name = attr;
2353 getProperties().loop_arg_types = attr;
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);
2363 ::llvm::LogicalResult
verify();
2366 ::mlir::StringAttr getAttributeNameForIndex(
unsigned index) {
2367 return getAttributeNameForIndex((*this)->getName(), index);
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];
2382 ::mlir::FailureOr<::llzk::verif::InvariantTargetOpInterface>
getTarget();
2428template <
typename RangeT>
2430 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
2432 static constexpr int odsIndex_value = 0;
2442 template <
typename LateInst = OldOp,
typename = std::enable_if_t<std::is_same_v<LateInst, OldOp>>>
2451 return {std::next(odsOperands.begin(), valueRange.first),
2452 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
2471 ::llvm::LogicalResult
verify(::mlir::Location loc);
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> {
2478 template <
typename RangeT>
2488 return ::llvm::StringLiteral(
"verif.old");
2497 return {std::next(getOperation()->operand_begin(), valueRange.first),
2498 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
2502 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*
getODSOperands(0).begin());
2507 return getOperation()->getOpOperand(range.first);
2516 return {std::next(getOperation()->result_begin(), valueRange.first),
2517 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
2521 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*
getODSResults(0).begin());
2524 static ::llvm::LogicalResult
setPropertiesFromAttr(
Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
2527 static std::optional<mlir::Attribute>
getInherentAttr(::mlir::MLIRContext *ctx,
const Properties &prop, llvm::StringRef name);
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 = {});
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);
2603template <
typename RangeT>
2605 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
2607 static constexpr int odsIndex_condition = 0;
2617 template <
typename LateInst = ProveDetOp,
typename = std::enable_if_t<std::is_same_v<LateInst, ProveDetOp>>>
2626 return {std::next(odsOperands.begin(), valueRange.first),
2627 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
2646 ::llvm::LogicalResult
verify(::mlir::Location loc);
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> {
2653 template <
typename RangeT>
2663 return ::llvm::StringLiteral(
"verif.det.prove");
2672 return {std::next(getOperation()->operand_begin(), valueRange.first),
2673 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
2677 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*
getODSOperands(0).begin());
2682 return getOperation()->getOpOperand(range.first);
2691 return {std::next(getOperation()->result_begin(), valueRange.first),
2692 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
2696 return ::llvm::cast<::mlir::TypedValue<::mlir::IntegerType>>(*
getODSResults(0).begin());
2699 static ::llvm::LogicalResult
setPropertiesFromAttr(
Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
2702 static std::optional<mlir::Attribute>
getInherentAttr(::mlir::MLIRContext *ctx,
const Properties &prop, llvm::StringRef name);
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 = {});
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);
2777template <
typename RangeT>
2779 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
2781 static constexpr int odsIndex_condition = 0;
2791 template <
typename LateInst = RequireComputeOp,
typename = std::enable_if_t<std::is_same_v<LateInst, RequireComputeOp>>>
2800 return {std::next(odsOperands.begin(), valueRange.first),
2801 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
2820 ::llvm::LogicalResult
verify(::mlir::Location loc);
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> {
2827 template <
typename RangeT>
2837 return ::llvm::StringLiteral(
"verif.require_compute");
2846 return {std::next(getOperation()->operand_begin(), valueRange.first),
2847 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
2851 return ::llvm::cast<::mlir::TypedValue<::mlir::IntegerType>>(*
getODSOperands(0).begin());
2856 return getOperation()->getOpOperand(range.first);
2865 return {std::next(getOperation()->result_begin(), valueRange.first),
2866 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
2869 static ::llvm::LogicalResult
setPropertiesFromAttr(
Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
2872 static std::optional<mlir::Attribute>
getInherentAttr(::mlir::MLIRContext *ctx,
const Properties &prop, llvm::StringRef name);
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);
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 = {});
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);
2938template <
typename RangeT>
2940 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
2942 static constexpr int odsIndex_condition = 0;
2952 template <
typename LateInst = RequireConstrainOp,
typename = std::enable_if_t<std::is_same_v<LateInst, RequireConstrainOp>>>
2961 return {std::next(odsOperands.begin(), valueRange.first),
2962 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
2981 ::llvm::LogicalResult
verify(::mlir::Location loc);
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> {
2988 template <
typename RangeT>
2998 return ::llvm::StringLiteral(
"verif.require_constrain");
3007 return {std::next(getOperation()->operand_begin(), valueRange.first),
3008 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
3012 return ::llvm::cast<::mlir::TypedValue<::mlir::IntegerType>>(*
getODSOperands(0).begin());
3017 return getOperation()->getOpOperand(range.first);
3026 return {std::next(getOperation()->result_begin(), valueRange.first),
3027 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
3030 static ::llvm::LogicalResult
setPropertiesFromAttr(
Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
3033 static std::optional<mlir::Attribute>
getInherentAttr(::mlir::MLIRContext *ctx,
const Properties &prop, llvm::StringRef name);
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);
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 = {});
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);
3107template <
typename RangeT>
3109 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
3120 template <
typename LateInst = StepOp,
typename = std::enable_if_t<std::is_same_v<LateInst, StepOp>>>
3129 return {std::next(odsOperands.begin(), valueRange.first),
3130 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
3145 ::llvm::LogicalResult
verify(::mlir::Location loc);
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> {
3152 template <
typename RangeT>
3161 return ::llvm::StringLiteral(
"verif.step");
3170 return {std::next(getOperation()->operand_begin(), valueRange.first),
3171 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
3180 return {std::next(getOperation()->result_begin(), valueRange.first),
3181 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
3185 return (*this)->getRegion(0);
3188 static ::llvm::LogicalResult
setPropertiesFromAttr(
Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
3191 static std::optional<mlir::Attribute>
getInherentAttr(::mlir::MLIRContext *ctx,
const Properties &prop, llvm::StringRef name);
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 = {});
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);
3257template <
typename RangeT>
3259 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
3261 static constexpr int odsIndex_value = 0;
3271 template <
typename LateInst = StepYieldOp,
typename = std::enable_if_t<std::is_same_v<LateInst, StepYieldOp>>>
3280 return {std::next(odsOperands.begin(), valueRange.first),
3281 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
3300 ::llvm::LogicalResult
verify(::mlir::Location loc);
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> {
3307 template <
typename RangeT>
3317 return ::llvm::StringLiteral(
"verif.step.yield");
3326 return {std::next(getOperation()->operand_begin(), valueRange.first),
3327 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
3331 return ::llvm::cast<::mlir::TypedValue<::mlir::IntegerType>>(*
getODSOperands(0).begin());
3336 return getOperation()->getOpOperand(range.first);
3345 return {std::next(getOperation()->result_begin(), valueRange.first),
3346 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
3349 static ::llvm::LogicalResult
setPropertiesFromAttr(
Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
3352 static std::optional<mlir::Attribute>
getInherentAttr(::mlir::MLIRContext *ctx,
const Properties &prop, llvm::StringRef name);
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 = {});
3370 static ::mlir::ParseResult
parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
3371 void print(::mlir::OpAsmPrinter &_odsPrinter);
3417template <
typename RangeT>
3419 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
3421 static constexpr int odsIndex_condition = 0;
3431 template <
typename LateInst = VerifAssertOp,
typename = std::enable_if_t<std::is_same_v<LateInst, VerifAssertOp>>>
3440 return {std::next(odsOperands.begin(), valueRange.first),
3441 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
3460 ::llvm::LogicalResult
verify(::mlir::Location loc);
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> {
3467 template <
typename RangeT>
3477 return ::llvm::StringLiteral(
"verif.assert");
3486 return {std::next(getOperation()->operand_begin(), valueRange.first),
3487 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
3491 return ::llvm::cast<::mlir::TypedValue<::mlir::IntegerType>>(*
getODSOperands(0).begin());
3496 return getOperation()->getOpOperand(range.first);
3505 return {std::next(getOperation()->result_begin(), valueRange.first),
3506 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
3509 static ::llvm::LogicalResult
setPropertiesFromAttr(
Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
3512 static std::optional<mlir::Attribute>
getInherentAttr(::mlir::MLIRContext *ctx,
const Properties &prop, llvm::StringRef name);
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 = {});
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);
3578template <
typename RangeT>
3580 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
3582 static constexpr int odsIndex_condition = 0;
3592 template <
typename LateInst = VerifProveOp,
typename = std::enable_if_t<std::is_same_v<LateInst, VerifProveOp>>>
3601 return {std::next(odsOperands.begin(), valueRange.first),
3602 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
3621 ::llvm::LogicalResult
verify(::mlir::Location loc);
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> {
3628 template <
typename RangeT>
3638 return ::llvm::StringLiteral(
"verif.prove");
3647 return {std::next(getOperation()->operand_begin(), valueRange.first),
3648 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
3652 return ::llvm::cast<::mlir::TypedValue<::mlir::IntegerType>>(*
getODSOperands(0).begin());
3657 return getOperation()->getOpOperand(range.first);
3666 return {std::next(getOperation()->result_begin(), valueRange.first),
3667 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
3670 static ::llvm::LogicalResult
setPropertiesFromAttr(
Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
3673 static std::optional<mlir::Attribute>
getInherentAttr(::mlir::MLIRContext *ctx,
const Properties &prop, llvm::StringRef name);
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 = {});
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);
3739template <
typename RangeT>
3741 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
3743 static constexpr int odsIndex_condition = 0;
3753 template <
typename LateInst = VerifSMTProveOp,
typename = std::enable_if_t<std::is_same_v<LateInst, VerifSMTProveOp>>>
3762 return {std::next(odsOperands.begin(), valueRange.first),
3763 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
3782 ::llvm::LogicalResult
verify(::mlir::Location loc);
3784class VerifSMTProveOp :
public ::mlir::Op<VerifSMTProveOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::OneOperand, ::mlir::OpTrait::OpInvariants> {
3789 template <
typename RangeT>
3799 return ::llvm::StringLiteral(
"verif.smt_prove");
3808 return {std::next(getOperation()->operand_begin(), valueRange.first),
3809 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
3813 return ::llvm::cast<::mlir::TypedValue<mlir::smt::BoolType>>(*
getODSOperands(0).begin());
3818 return getOperation()->getOpOperand(range.first);
3827 return {std::next(getOperation()->result_begin(), valueRange.first),
3828 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
3831 static ::llvm::LogicalResult
setPropertiesFromAttr(
Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
3834 static std::optional<mlir::Attribute>
getInherentAttr(::mlir::MLIRContext *ctx,
const Properties &prop, llvm::StringRef name);
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);
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 = {});
3852 static ::mlir::ParseResult
parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
3853 void print(::mlir::OpAsmPrinter &_odsPrinter);
AssumeDetOpAdaptor(AssumeDetOp op)
AssumeDetOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::llvm::LogicalResult verify(::mlir::Location loc)
AssumeDetOpGenericAdaptor(RangeT values, const AssumeDetOpGenericAdaptorBase &base)
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
AssumeDetOpGenericAdaptor(RangeT values, LateInst op)
RangeT getODSOperands(unsigned index)
AssumeDetOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
AssumeDetOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
AssumeDetOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions={})
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
::mlir::Operation::operand_range getODSOperands(unsigned index)
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
::mlir::TypedValue<::mlir::Type > getHint()
void print(::mlir::OpAsmPrinter &_odsPrinter)
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
static constexpr ::llvm::StringLiteral getOperationName()
static constexpr int odsIndex_hint
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
AssumeDetOpAdaptor Adaptor
::mlir::OpOperand & getHintMutable()
FoldAdaptor::Properties Properties
static AssumeDetOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Value hint)
::llvm::LogicalResult verifyInvariants()
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
AssumeDetOpGenericAdaptor< RangeT > GenericAdaptor
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
::mlir::Operation::result_range getODSResults(unsigned index)
::llvm::LogicalResult verifyInvariantsImpl()
static llvm::hash_code computePropertiesHash(const Properties &prop)
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value hint)
ContractEndOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::llvm::LogicalResult verify(::mlir::Location loc)
ContractEndOpAdaptor(ContractEndOp op)
ContractEndOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
ContractEndOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions={})
ContractEndOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
RangeT getODSOperands(unsigned index)
ContractEndOpGenericAdaptor(RangeT values, const ContractEndOpGenericAdaptorBase &base)
ContractEndOpGenericAdaptor(RangeT values, LateInst op)
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
static constexpr ::llvm::StringLiteral getOperationName()
::mlir::Operation::result_range getODSResults(unsigned index)
FoldAdaptor::Properties Properties
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
static ContractEndOp create(::mlir::OpBuilder &builder, ::mlir::Location location)
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
::llvm::LogicalResult verifyInvariantsImpl()
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
::llvm::LogicalResult verifyInvariants()
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
::mlir::Operation::operand_range getODSOperands(unsigned index)
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState)
ContractEndOpGenericAdaptor< RangeT > GenericAdaptor
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
void print(::mlir::OpAsmPrinter &_odsPrinter)
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
ContractEndOpAdaptor Adaptor
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
static llvm::hash_code computePropertiesHash(const Properties &prop)
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
ContractOpAdaptor(ContractOp op)
::llvm::LogicalResult verify(::mlir::Location loc)
ContractOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
ContractOpGenericAdaptor(RangeT values, const ContractOpGenericAdaptorBase &base)
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
ContractOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
RangeT getODSOperands(unsigned index)
ContractOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions={})
ContractOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
ContractOpGenericAdaptor(RangeT values, LateInst op)
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
::mlir::StringAttr getFunctionTypeAttrName()
::mlir::StringAttr getResAttrsAttrName()
::llvm::LogicalResult verifyRegions()
void setSymNameAttr(::mlir::StringAttr attr)
ContractOpAdaptor Adaptor
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
void setArgNameAttr(unsigned index, const ::mlir::StringAttr &attr)
Set the function.arg_name attribute for the argument at the given index.
::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)
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
bool hasArgName(unsigned index)
Return true iff the argument at the given index has a function.arg_name attribute.
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
static llvm::hash_code computePropertiesHash(const Properties &prop)
::llvm::ArrayRef<::mlir::Type > getResultTypes()
Required by FunctionOpInterface.
bool hasArgPublicAttr(unsigned index)
Return true iff the argument at the given index has pub attribute.
::mlir::Attribute removeResAttrsAttr()
::std::optional< ::mlir::ArrayAttr > getResAttrs()
void cloneInto(ContractOp dest, ::mlir::IRMapping &mapper)
Clone the internal blocks and attributes from this contract into dest.
static constexpr ::llvm::StringLiteral getOperationName()
void setFunctionTypeAttr(::mlir::TypeAttr attr)
::mlir::StringAttr getTargetAttrName()
void setFunctionType(::mlir::FunctionType attrValue)
::llvm::LogicalResult verifySymbolUses(::mlir::SymbolTableCollection &symbolTable)
::mlir::StringAttr getSymNameAttr()
::llvm::LogicalResult verifyInvariants()
::llvm::LogicalResult verify()
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::StringAttr sym_name, ::mlir::SymbolRefAttr target, ::mlir::TypeAttr function_type, ::mlir::ArrayAttr arg_attrs={}, ::mlir::ArrayAttr res_attrs={})
void print(::mlir::OpAsmPrinter &p)
::llvm::LogicalResult setPropertiesFromParsedAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
::std::optional< ::mlir::ArrayAttr > getArgAttrs()
::mlir::StringAttr getResAttrsAttrName(::mlir::OperationName name)
::mlir::FunctionType getFunctionType()
void setArgName(unsigned index, ::llvm::StringRef name)
Set the function.arg_name attribute for the argument at the given index from a string.
::mlir::Attribute removeArgAttrsAttr()
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()
bool hasStructTarget()
Return true iff the contract targets a struct type.
::std::optional<::mlir::StringAttr > getArgNameAttr(unsigned index)
Return the function.arg_name attribute for the argument at the given index.
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
::llvm::ArrayRef<::mlir::Type > getArgumentTypes()
Required by FunctionOpInterface.
::mlir::Operation::result_range getODSResults(unsigned index)
::mlir::Region & getBody()
void setArgAttrsAttr(::mlir::ArrayAttr attr)
::mlir::StringAttr getArgAttrsAttrName()
::mlir::StringAttr getArgAttrsAttrName(::mlir::OperationName name)
::mlir::TypeAttr getFunctionTypeAttr()
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
::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)
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
::mlir::StringAttr getFunctionTypeAttrName(::mlir::OperationName name)
::mlir::Region * getCallableRegion()
Required by FunctionOpInterface.
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llvm::StringRef name, llvm::StringRef target)
::mlir::SymbolRefAttr getTargetAttr()
::mlir::Operation::operand_range getODSOperands(unsigned index)
::mlir::SymbolRefAttr getFullyQualifiedName(bool requireParent=true)
Return the full name for this contract from the root module, including all surrounding symbol table n...
::mlir::FailureOr< SymbolLookupResult<::llzk::verif::ContractTargetOpInterface > > getTargetOp()
::llvm::LogicalResult verifyInvariantsImpl()
::mlir::FailureOr<::mlir::Value > getSelfValue()
Return the "self" value (i.e.
::mlir::ArrayAttr getArgAttrsAttr()
void writeProperties(::mlir::DialectBytecodeWriter &writer)
void setSymName(::llvm::StringRef attrValue)
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
::mlir::SymbolRefAttr getTarget()
void setResAttrsAttr(::mlir::ArrayAttr attr)
FoldAdaptor::Properties Properties
::mlir::FailureOr< SymbolLookupResult< component::StructDefOp > > getStructTarget()
::mlir::FailureOr< SymbolLookupResult< function::FuncDefOp > > getFuncTarget()
static ContractOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::StringAttr sym_name, ::mlir::SymbolRefAttr target, ::mlir::TypeAttr function_type, ::mlir::ArrayAttr arg_attrs={}, ::mlir::ArrayAttr res_attrs={})
::mlir::StringAttr getSymNameAttrName(::mlir::OperationName name)
ContractOpGenericAdaptor< RangeT > GenericAdaptor
bool hasFuncTarget()
Return true iff the contract targets a function.
::mlir::ArrayAttr getResAttrsAttr()
::llvm::StringRef getSymName()
::mlir::StringAttr getTargetAttrName(::mlir::OperationName name)
bool isDeclaration()
Required by SymbolOpInterface.
DecreasesOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
DecreasesOpAdaptor(DecreasesOp op)
::llvm::LogicalResult verify(::mlir::Location loc)
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
DecreasesOpGenericAdaptor(RangeT values, LateInst op)
DecreasesOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions={})
DecreasesOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
DecreasesOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
DecreasesOpGenericAdaptor(RangeT values, const DecreasesOpGenericAdaptorBase &base)
RangeT getODSOperands(unsigned index)
FoldAdaptor::Properties Properties
DecreasesOpAdaptor Adaptor
::mlir::OpOperand & getValueMutable()
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
::mlir::TypedValue<::llzk::felt::FeltType > getValue()
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
static constexpr ::llvm::StringLiteral getOperationName()
static constexpr int odsIndex_value
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value value)
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
::llvm::LogicalResult verifyInvariantsImpl()
::mlir::Operation::operand_range getODSOperands(unsigned index)
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
static llvm::hash_code computePropertiesHash(const Properties &prop)
static DecreasesOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Value value)
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
::llvm::LogicalResult verifyInvariants()
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
::mlir::Operation::result_range getODSResults(unsigned index)
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
DecreasesOpGenericAdaptor< RangeT > GenericAdaptor
void print(::mlir::OpAsmPrinter &_odsPrinter)
EnsureComputeOpAdaptor(EnsureComputeOp op)
::llvm::LogicalResult verify(::mlir::Location loc)
EnsureComputeOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
EnsureComputeOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
EnsureComputeOpGenericAdaptor(RangeT values, const EnsureComputeOpGenericAdaptorBase &base)
EnsureComputeOpGenericAdaptor(RangeT values, LateInst op)
RangeT getODSOperands(unsigned index)
EnsureComputeOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
EnsureComputeOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions={})
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
static constexpr int odsIndex_condition
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
::mlir::OpOperand & getConditionMutable()
::llvm::LogicalResult verifyInvariants()
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
EnsureComputeOpAdaptor Adaptor
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
static EnsureComputeOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Value condition)
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
static constexpr ::llvm::StringLiteral getOperationName()
void print(::mlir::OpAsmPrinter &_odsPrinter)
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
::mlir::Operation::operand_range getODSOperands(unsigned index)
::mlir::Operation::result_range getODSResults(unsigned index)
FoldAdaptor::Properties Properties
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
static llvm::hash_code computePropertiesHash(const Properties &prop)
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value condition)
EnsureComputeOpGenericAdaptor< RangeT > GenericAdaptor
::llvm::LogicalResult verifyInvariantsImpl()
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
::mlir::TypedValue<::mlir::IntegerType > getCondition()
::llvm::LogicalResult verify(::mlir::Location loc)
EnsureConstrainOpAdaptor(EnsureConstrainOp op)
EnsureConstrainOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
EnsureConstrainOpGenericAdaptor(RangeT values, LateInst op)
EnsureConstrainOpGenericAdaptor(RangeT values, const EnsureConstrainOpGenericAdaptorBase &base)
RangeT getODSOperands(unsigned index)
EnsureConstrainOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
EnsureConstrainOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions={})
EnsureConstrainOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
::mlir::OpOperand & getConditionMutable()
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
EnsureConstrainOpAdaptor Adaptor
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
::mlir::Operation::operand_range getODSOperands(unsigned index)
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
static constexpr ::llvm::StringLiteral getOperationName()
EnsureConstrainOpGenericAdaptor< RangeT > GenericAdaptor
::llvm::LogicalResult verifyInvariants()
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
static EnsureConstrainOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Value condition)
static constexpr int odsIndex_condition
void print(::mlir::OpAsmPrinter &_odsPrinter)
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
::llvm::LogicalResult verifyInvariantsImpl()
FoldAdaptor::Properties Properties
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value condition)
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
static llvm::hash_code computePropertiesHash(const Properties &prop)
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
::mlir::Operation::result_range getODSResults(unsigned index)
::mlir::TypedValue<::mlir::IntegerType > getCondition()
::llvm::LogicalResult verify(::mlir::Location loc)
IncludeOpAdaptor(IncludeOp op)
IncludeOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
IncludeOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions={})
IncludeOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs)
::llvm::SmallVector< RangeT > getMapOperands()
IncludeOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
IncludeOpGenericAdaptor(RangeT values, LateInst op)
RangeT getODSOperands(unsigned index)
IncludeOpGenericAdaptor(RangeT values, const IncludeOpGenericAdaptorBase &base)
void setNumDimsPerMap(::llvm::ArrayRef< int32_t > attrValue)
::mlir::StringAttr getArgAttrsAttrName(::mlir::OperationName name)
::mlir::MutableOperandRange getArgOperandsMutable()
::mlir::StringAttr getMapOpGroupSizesAttrName(::mlir::OperationName name)
::mlir::ArrayAttr getTemplateParamsAttr()
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
::llvm::LogicalResult verifyInvariantsImpl()
static constexpr int odsIndex_argOperands
static llvm::hash_code computePropertiesHash(const Properties &prop)
::mlir::Operation::operand_range getODSOperands(unsigned index)
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
void setMapOpGroupSizes(::llvm::ArrayRef< int32_t > attrValue)
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
::mlir::OperandRangeRange getMapOperands()
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
::llvm::LogicalResult setPropertiesFromParsedAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
::llvm::LogicalResult verifySymbolUses(::mlir::SymbolTableCollection &symbolTable)
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
void setNumDimsPerMapAttr(::mlir::DenseI32ArrayAttr attr)
::mlir::Attribute removeResAttrsAttr()
::llvm::ArrayRef< int32_t > getMapOpGroupSizes()
void setArgAttrsAttr(::mlir::ArrayAttr attr)
::std::optional< ::mlir::ArrayAttr > getResAttrs()
void writeProperties(::mlir::DialectBytecodeWriter &writer)
::mlir::StringAttr getNumDimsPerMapAttrName(::mlir::OperationName name)
::mlir::SymbolRefAttr getCalleeAttr()
FoldAdaptor::Properties Properties
::mlir::StringAttr getResAttrsAttrName()
void setMapOpGroupSizesAttr(::mlir::DenseI32ArrayAttr attr)
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
::mlir::Operation::operand_range getArgOperands()
void setCalleeAttr(::mlir::SymbolRefAttr attr)
::mlir::StringAttr getArgAttrsAttrName()
::mlir::ArrayAttr getResAttrsAttr()
::mlir::FailureOr<::llzk::SymbolLookupResult<::llzk::verif::ContractOp > > getCalleeTarget(::mlir::SymbolTableCollection &tables)
Resolve and return the target Contract for this CallOp.
::mlir::Operation * resolveCallable()
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
::mlir::SymbolRefAttr getCallee()
::mlir::StringAttr getCalleeAttrName()
::mlir::StringAttr getTemplateParamsAttrName(::mlir::OperationName name)
::mlir::StringAttr getMapOpGroupSizesAttrName()
::std::optional< ::mlir::ArrayAttr > getArgAttrs()
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
::mlir::StringAttr getOperandSegmentSizesAttrName(::mlir::OperationName name)
::mlir::Value getSelfValue()
::mlir::MutableOperandRangeRange getMapOperandsMutable()
::mlir::StringAttr getResAttrsAttrName(::mlir::OperationName name)
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
::mlir::StringAttr getOperandSegmentSizesAttrName()
::std::optional< ::mlir::ArrayAttr > getTemplateParams()
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
void setCalleeFromCallable(::mlir::CallInterfaceCallable callee)
Set the callee for this operation.
bool contractTargetsStruct()
Return true iff the contract targets a struct type.
::mlir::Operation::result_range getODSResults(unsigned index)
void setTemplateParamsAttr(::mlir::ArrayAttr attr)
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)
::mlir::StringAttr getCalleeAttrName(::mlir::OperationName name)
static void populateDefaultProperties(::mlir::OperationName opName, Properties &properties)
::llvm::ArrayRef< int32_t > getNumDimsPerMap()
static IncludeOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::SymbolRefAttr callee, ::mlir::ValueRange argOperands={}, ::llvm::ArrayRef<::mlir::Attribute > templateParams={})
::mlir::Attribute removeTemplateParamsAttr()
::mlir::Attribute removeArgAttrsAttr()
::mlir::StringAttr getNumDimsPerMapAttrName()
::mlir::DenseI32ArrayAttr getNumDimsPerMapAttr()
static constexpr int odsIndex_mapOperands
::llvm::LogicalResult verifyInvariants()
::mlir::Operation * resolveCallableInTable(::mlir::SymbolTableCollection *symbolTable)
void setResAttrsAttr(::mlir::ArrayAttr attr)
IncludeOpGenericAdaptor< RangeT > GenericAdaptor
::mlir::ArrayAttr getArgAttrsAttr()
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()
::mlir::DenseI32ArrayAttr getMapOpGroupSizesAttr()
::mlir::CallInterfaceCallable getCallableForCallee()
Return the callee of this operation.
::mlir::StringAttr getTemplateParamsAttrName()
IncreasesOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
IncreasesOpAdaptor(IncreasesOp op)
::llvm::LogicalResult verify(::mlir::Location loc)
IncreasesOpGenericAdaptor(RangeT values, const IncreasesOpGenericAdaptorBase &base)
IncreasesOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
IncreasesOpGenericAdaptor(RangeT values, LateInst op)
RangeT getODSOperands(unsigned index)
IncreasesOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
IncreasesOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions={})
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
IncreasesOpGenericAdaptor< RangeT > GenericAdaptor
IncreasesOpAdaptor Adaptor
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
static llvm::hash_code computePropertiesHash(const Properties &prop)
static constexpr ::llvm::StringLiteral getOperationName()
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
static constexpr int odsIndex_value
::mlir::Operation::result_range getODSResults(unsigned index)
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
::llvm::LogicalResult verifyInvariants()
void print(::mlir::OpAsmPrinter &_odsPrinter)
::llvm::LogicalResult verifyInvariantsImpl()
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value value)
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
::mlir::OpOperand & getValueMutable()
::mlir::Operation::operand_range getODSOperands(unsigned index)
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
static IncreasesOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Value value)
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
::mlir::TypedValue<::llzk::felt::FeltType > getValue()
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
FoldAdaptor::Properties Properties
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
::llvm::LogicalResult verify(::mlir::Location loc)
InvariantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
InvariantOpAdaptor(InvariantOp op)
InvariantOpGenericAdaptor(RangeT values, LateInst op)
InvariantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
InvariantOpGenericAdaptor(RangeT values, const InvariantOpGenericAdaptorBase &base)
InvariantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
RangeT getODSOperands(unsigned index)
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
InvariantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions={})
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
::mlir::FailureOr<::llzk::verif::InvariantTargetOpInterface > getTarget()
Returns the loop target.
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
InvariantOpGenericAdaptor< RangeT > GenericAdaptor
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
void setLoopArgTypesAttr(::mlir::ArrayAttr attr)
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
::mlir::StringAttr getLoopArgTypesAttrName()
::mlir::Operation::operand_range getODSOperands(unsigned index)
static constexpr ::llvm::StringLiteral getOperationName()
InvariantOpAdaptor Adaptor
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
void writeProperties(::mlir::DialectBytecodeWriter &writer)
::mlir::StringAttr getLoopArgTypesAttrName(::mlir::OperationName name)
void setLoopName(::llvm::StringRef attrValue)
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
::llvm::LogicalResult setPropertiesFromParsedAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
::mlir::ArrayAttr getLoopArgTypesAttr()
void print(::mlir::OpAsmPrinter &p)
::mlir::StringAttr getLoopNameAttrName(::mlir::OperationName name)
::mlir::Operation::result_range getODSResults(unsigned index)
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
void setLoopNameAttr(::mlir::StringAttr attr)
::mlir::ArrayAttr getLoopArgTypes()
static llvm::hash_code computePropertiesHash(const Properties &prop)
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
static InvariantOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::StringRef loop_name, ::llvm::ArrayRef<::mlir::Type > loop_arg_types={}, ::llvm::ArrayRef<::mlir::Location > loop_arg_locs={})
::mlir::StringAttr getLoopNameAttr()
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
::llvm::StringRef getLoopName()
::llzk::verif::ContractOp getParentContract()
Returns the contract operation that contains this invariant.
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::StringRef loop_name, ::llvm::ArrayRef<::mlir::Type > loop_arg_types={}, ::llvm::ArrayRef<::mlir::Location > loop_arg_locs={})
FoldAdaptor::Properties Properties
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
::llvm::LogicalResult verify()
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
::llvm::LogicalResult verifyInvariantsImpl()
::mlir::Region & getRegion()
::llvm::LogicalResult verifyInvariants()
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
::mlir::StringAttr getLoopNameAttrName()
::llvm::LogicalResult verify(::mlir::Location loc)
OldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
OldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
OldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
OldOpGenericAdaptor(RangeT values, LateInst op)
OldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions={})
RangeT getODSOperands(unsigned index)
OldOpGenericAdaptor(RangeT values, const OldOpGenericAdaptorBase &base)
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
::llvm::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::PropertyRef properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
void print(::mlir::OpAsmPrinter &_odsPrinter)
static constexpr ::llvm::StringLiteral getOperationName()
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
static OldOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Type result, ::mlir::Value value)
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
::llvm::LogicalResult verifyInvariantsImpl()
static llvm::hash_code computePropertiesHash(const Properties &prop)
FoldAdaptor::Properties Properties
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
::mlir::Operation::operand_range getODSOperands(unsigned index)
::mlir::TypedValue<::mlir::Type > getResult()
::llvm::LogicalResult verifyInvariants()
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
::mlir::TypedValue<::mlir::Type > getValue()
::mlir::OpOperand & getValueMutable()
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
OldOpGenericAdaptor< RangeT > GenericAdaptor
::mlir::Operation::result_range getODSResults(unsigned index)
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value value)
static constexpr int odsIndex_value
ProveDetOpAdaptor(ProveDetOp op)
ProveDetOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::llvm::LogicalResult verify(::mlir::Location loc)
ProveDetOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
RangeT getODSOperands(unsigned index)
ProveDetOpGenericAdaptor(RangeT values, LateInst op)
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
ProveDetOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions={})
ProveDetOpGenericAdaptor(RangeT values, const ProveDetOpGenericAdaptorBase &base)
ProveDetOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::mlir::TypedValue<::mlir::IntegerType > getResult()
::mlir::OpOperand & getConditionMutable()
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
::llvm::LogicalResult verifyInvariantsImpl()
::llvm::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::PropertyRef properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
static constexpr ::llvm::StringLiteral getOperationName()
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value condition)
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
static llvm::hash_code computePropertiesHash(const Properties &prop)
void print(::mlir::OpAsmPrinter &_odsPrinter)
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
static ProveDetOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Type result, ::mlir::Value condition)
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
ProveDetOpGenericAdaptor< RangeT > GenericAdaptor
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
FoldAdaptor::Properties Properties
static constexpr int odsIndex_condition
::mlir::TypedValue<::mlir::Type > getCondition()
::mlir::Operation::result_range getODSResults(unsigned index)
ProveDetOpAdaptor Adaptor
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
::mlir::Operation::operand_range getODSOperands(unsigned index)
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
::llvm::LogicalResult verifyInvariants()
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
RequireComputeOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
RequireComputeOpAdaptor(RequireComputeOp op)
::llvm::LogicalResult verify(::mlir::Location loc)
RequireComputeOpGenericAdaptor(RangeT values, LateInst op)
RequireComputeOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
RangeT getODSOperands(unsigned index)
RequireComputeOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
RequireComputeOpGenericAdaptor(RangeT values, const RequireComputeOpGenericAdaptorBase &base)
RequireComputeOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions={})
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
static llvm::hash_code computePropertiesHash(const Properties &prop)
static constexpr int odsIndex_condition
RequireComputeOpAdaptor Adaptor
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
static constexpr ::llvm::StringLiteral getOperationName()
RequireComputeOpGenericAdaptor< RangeT > GenericAdaptor
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
::llvm::LogicalResult verifyInvariantsImpl()
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
::llvm::LogicalResult verifyInvariants()
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
::mlir::TypedValue<::mlir::IntegerType > getCondition()
::mlir::Operation::operand_range getODSOperands(unsigned index)
static RequireComputeOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Value condition)
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value condition)
::mlir::Operation::result_range getODSResults(unsigned index)
void print(::mlir::OpAsmPrinter &_odsPrinter)
FoldAdaptor::Properties Properties
::mlir::OpOperand & getConditionMutable()
RequireConstrainOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
RequireConstrainOpAdaptor(RequireConstrainOp op)
::llvm::LogicalResult verify(::mlir::Location loc)
RangeT getODSOperands(unsigned index)
RequireConstrainOpGenericAdaptor(RangeT values, LateInst op)
RequireConstrainOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
RequireConstrainOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions={})
RequireConstrainOpGenericAdaptor(RangeT values, const RequireConstrainOpGenericAdaptorBase &base)
RequireConstrainOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
FoldAdaptor::Properties Properties
::mlir::OpOperand & getConditionMutable()
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
RequireConstrainOpAdaptor Adaptor
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
::mlir::Operation::result_range getODSResults(unsigned index)
::llvm::LogicalResult verifyInvariants()
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
::mlir::TypedValue<::mlir::IntegerType > getCondition()
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
RequireConstrainOpGenericAdaptor< RangeT > GenericAdaptor
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
::llvm::LogicalResult verifyInvariantsImpl()
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value condition)
static llvm::hash_code computePropertiesHash(const Properties &prop)
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
static constexpr ::llvm::StringLiteral getOperationName()
static constexpr int odsIndex_condition
::mlir::Operation::operand_range getODSOperands(unsigned index)
void print(::mlir::OpAsmPrinter &_odsPrinter)
static RequireConstrainOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Value condition)
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
::llvm::LogicalResult verify(::mlir::Location loc)
StepOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
StepOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions={})
StepOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
StepOpGenericAdaptor(RangeT values, const StepOpGenericAdaptorBase &base)
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
StepOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
StepOpGenericAdaptor(RangeT values, LateInst op)
RangeT getODSOperands(unsigned index)
StepOpGenericAdaptor< RangeT > GenericAdaptor
static llvm::hash_code computePropertiesHash(const Properties &prop)
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
::llvm::LogicalResult verifyInvariantsImpl()
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
::llvm::LogicalResult verifyInvariants()
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
static StepOp create(::mlir::OpBuilder &builder, ::mlir::Location location)
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
static constexpr ::llvm::StringLiteral getOperationName()
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
::mlir::Operation::operand_range getODSOperands(unsigned index)
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
::mlir::Region & getRegion()
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
FoldAdaptor::Properties Properties
void print(::mlir::OpAsmPrinter &_odsPrinter)
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
::mlir::Operation::result_range getODSResults(unsigned index)
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState)
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
::llvm::LogicalResult verify(::mlir::Location loc)
StepYieldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
StepYieldOpAdaptor(StepYieldOp op)
StepYieldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions={})
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
StepYieldOpGenericAdaptor(RangeT values, const StepYieldOpGenericAdaptorBase &base)
StepYieldOpGenericAdaptor(RangeT values, LateInst op)
StepYieldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
StepYieldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
RangeT getODSOperands(unsigned index)
static constexpr ::llvm::StringLiteral getOperationName()
static constexpr int odsIndex_value
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
::mlir::Operation::result_range getODSResults(unsigned index)
static llvm::hash_code computePropertiesHash(const Properties &prop)
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value value)
StepYieldOpGenericAdaptor< RangeT > GenericAdaptor
::mlir::TypedValue<::mlir::IntegerType > getValue()
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
static StepYieldOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Value value)
StepYieldOpAdaptor Adaptor
::llvm::LogicalResult verifyInvariantsImpl()
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
FoldAdaptor::Properties Properties
::mlir::Operation::operand_range getODSOperands(unsigned index)
::llvm::LogicalResult verifyInvariants()
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
::mlir::OpOperand & getValueMutable()
void print(::mlir::OpAsmPrinter &_odsPrinter)
VerifAssertOpAdaptor(VerifAssertOp op)
VerifAssertOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::llvm::LogicalResult verify(::mlir::Location loc)
VerifAssertOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
VerifAssertOpGenericAdaptor(RangeT values, LateInst op)
VerifAssertOpGenericAdaptor(RangeT values, const VerifAssertOpGenericAdaptorBase &base)
VerifAssertOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
VerifAssertOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions={})
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
RangeT getODSOperands(unsigned index)
::mlir::Operation::result_range getODSResults(unsigned index)
::mlir::TypedValue<::mlir::IntegerType > getCondition()
::llvm::LogicalResult verifyInvariantsImpl()
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
static constexpr int odsIndex_condition
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
static llvm::hash_code computePropertiesHash(const Properties &prop)
static constexpr ::llvm::StringLiteral getOperationName()
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
VerifAssertOpAdaptor Adaptor
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
::mlir::Operation::operand_range getODSOperands(unsigned index)
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
void print(::mlir::OpAsmPrinter &_odsPrinter)
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
VerifAssertOpGenericAdaptor< RangeT > GenericAdaptor
static VerifAssertOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Value condition)
::llvm::LogicalResult verifyInvariants()
::mlir::OpOperand & getConditionMutable()
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value condition)
FoldAdaptor::Properties Properties
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
VerifProveOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
VerifProveOpAdaptor(VerifProveOp op)
::llvm::LogicalResult verify(::mlir::Location loc)
VerifProveOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
VerifProveOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
VerifProveOpGenericAdaptor(RangeT values, const VerifProveOpGenericAdaptorBase &base)
RangeT getODSOperands(unsigned index)
VerifProveOpGenericAdaptor(RangeT values, LateInst op)
VerifProveOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions={})
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
::mlir::TypedValue<::mlir::IntegerType > getCondition()
static VerifProveOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Value condition)
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
VerifProveOpGenericAdaptor< RangeT > GenericAdaptor
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
::mlir::Operation::result_range getODSResults(unsigned index)
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
::llvm::LogicalResult verifyInvariantsImpl()
::llvm::LogicalResult verifyInvariants()
FoldAdaptor::Properties Properties
::mlir::OpOperand & getConditionMutable()
static constexpr ::llvm::StringLiteral getOperationName()
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
::mlir::Operation::operand_range getODSOperands(unsigned index)
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
static llvm::hash_code computePropertiesHash(const Properties &prop)
static constexpr int odsIndex_condition
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value condition)
VerifProveOpAdaptor Adaptor
void print(::mlir::OpAsmPrinter &_odsPrinter)
VerifSMTProveOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
VerifSMTProveOpAdaptor(VerifSMTProveOp op)
::llvm::LogicalResult verify(::mlir::Location loc)
VerifSMTProveOpGenericAdaptor(RangeT values, const VerifSMTProveOpGenericAdaptorBase &base)
RangeT getODSOperands(unsigned index)
VerifSMTProveOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
VerifSMTProveOpGenericAdaptor(RangeT values, LateInst op)
VerifSMTProveOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
VerifSMTProveOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::PropertyRef properties, ::mlir::RegionRange regions={})
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value condition)
::mlir::Operation::operand_range getODSOperands(unsigned index)
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
VerifSMTProveOpAdaptor Adaptor
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
::llvm::LogicalResult verifyInvariants()
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
static constexpr int odsIndex_condition
FoldAdaptor::Properties Properties
::llvm::LogicalResult verifyInvariantsImpl()
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
static llvm::hash_code computePropertiesHash(const Properties &prop)
::mlir::Operation::result_range getODSResults(unsigned index)
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
::mlir::TypedValue< mlir::smt::BoolType > getCondition()
VerifSMTProveOpGenericAdaptor< RangeT > GenericAdaptor
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
static constexpr ::llvm::StringLiteral getOperationName()
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
static VerifSMTProveOp create(::mlir::OpBuilder &builder, ::mlir::Location location, ::mlir::Value condition)
::mlir::OpOperand & getConditionMutable()
void print(::mlir::OpAsmPrinter &_odsPrinter)
AssumeDetOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::mlir::DictionaryAttr odsAttrs
::std::optional<::mlir::OperationName > odsOpName
::mlir::EmptyProperties Properties
const Properties & getProperties()
::mlir::DictionaryAttr getAttributes()
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
::mlir::RegionRange odsRegions
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
const Properties & getProperties()
::mlir::EmptyProperties Properties
ContractEndOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::std::optional<::mlir::OperationName > odsOpName
::mlir::DictionaryAttr getAttributes()
::mlir::RegionRange odsRegions
::mlir::DictionaryAttr odsAttrs
::mlir::ArrayAttr getResAttrsAttr()
::mlir::FunctionType getFunctionType()
::mlir::TypeAttr getFunctionTypeAttr()
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
::llvm::StringRef getSymName()
::std::optional<::mlir::OperationName > odsOpName
::mlir::DictionaryAttr getAttributes()
const Properties & getProperties()
ContractOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::mlir::ArrayAttr getArgAttrsAttr()
::mlir::DictionaryAttr odsAttrs
::mlir::SymbolRefAttr getTargetAttr()
::std::optional< ::mlir::ArrayAttr > getArgAttrs()
::mlir::StringAttr getSymNameAttr()
::std::optional< ::mlir::ArrayAttr > getResAttrs()
::mlir::Region & getBody()
::mlir::SymbolRefAttr getTarget()
::mlir::RegionRange getRegions()
::mlir::RegionRange odsRegions
DecreasesOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::mlir::DictionaryAttr odsAttrs
::mlir::DictionaryAttr getAttributes()
::std::optional<::mlir::OperationName > odsOpName
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
::mlir::EmptyProperties Properties
const Properties & getProperties()
::mlir::RegionRange odsRegions
EnsureComputeOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
const Properties & getProperties()
::mlir::DictionaryAttr odsAttrs
::std::optional<::mlir::OperationName > odsOpName
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
::mlir::DictionaryAttr getAttributes()
::mlir::RegionRange odsRegions
::mlir::EmptyProperties Properties
::std::optional<::mlir::OperationName > odsOpName
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
::mlir::EmptyProperties Properties
EnsureConstrainOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::mlir::RegionRange odsRegions
const Properties & getProperties()
::mlir::DictionaryAttr getAttributes()
::mlir::DictionaryAttr odsAttrs
::llvm::ArrayRef< int32_t > getNumDimsPerMap()
::mlir::DenseI32ArrayAttr getNumDimsPerMapAttr()
::mlir::RegionRange odsRegions
::mlir::ArrayAttr getArgAttrsAttr()
::mlir::SymbolRefAttr getCalleeAttr()
::std::optional<::mlir::OperationName > odsOpName
::mlir::ArrayAttr getTemplateParamsAttr()
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
::mlir::SymbolRefAttr getCallee()
::std::optional< ::mlir::ArrayAttr > getResAttrs()
::mlir::DictionaryAttr getAttributes()
::std::optional< ::mlir::ArrayAttr > getArgAttrs()
::llvm::ArrayRef< int32_t > getMapOpGroupSizes()
::mlir::ArrayAttr getResAttrsAttr()
const Properties & getProperties()
::std::optional< ::mlir::ArrayAttr > getTemplateParams()
IncludeOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::mlir::DenseI32ArrayAttr getMapOpGroupSizesAttr()
::mlir::DictionaryAttr odsAttrs
::mlir::DictionaryAttr odsAttrs
::std::optional<::mlir::OperationName > odsOpName
::mlir::DictionaryAttr getAttributes()
IncreasesOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::mlir::RegionRange odsRegions
const Properties & getProperties()
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
::mlir::EmptyProperties Properties
const Properties & getProperties()
::mlir::RegionRange getRegions()
::mlir::DictionaryAttr odsAttrs
::mlir::Region & getRegion()
::std::optional<::mlir::OperationName > odsOpName
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
::mlir::StringAttr getLoopNameAttr()
::mlir::RegionRange odsRegions
::mlir::ArrayAttr getLoopArgTypesAttr()
InvariantOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::mlir::ArrayAttr getLoopArgTypes()
::mlir::DictionaryAttr getAttributes()
::llvm::StringRef getLoopName()
::mlir::EmptyProperties Properties
const Properties & getProperties()
::mlir::DictionaryAttr getAttributes()
OldOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::std::optional<::mlir::OperationName > odsOpName
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
::mlir::RegionRange odsRegions
::mlir::DictionaryAttr odsAttrs
::mlir::EmptyProperties Properties
::mlir::RegionRange odsRegions
::std::optional<::mlir::OperationName > odsOpName
ProveDetOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
const Properties & getProperties()
::mlir::DictionaryAttr odsAttrs
::mlir::DictionaryAttr getAttributes()
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
::mlir::EmptyProperties Properties
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
::std::optional<::mlir::OperationName > odsOpName
::mlir::DictionaryAttr getAttributes()
::mlir::DictionaryAttr odsAttrs
::mlir::RegionRange odsRegions
RequireComputeOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
const Properties & getProperties()
const Properties & getProperties()
::mlir::RegionRange odsRegions
::mlir::DictionaryAttr getAttributes()
::mlir::EmptyProperties Properties
::mlir::DictionaryAttr odsAttrs
::std::optional<::mlir::OperationName > odsOpName
RequireConstrainOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
::mlir::RegionRange getRegions()
::mlir::DictionaryAttr getAttributes()
::mlir::Region & getRegion()
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
StepOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::mlir::EmptyProperties Properties
const Properties & getProperties()
::mlir::DictionaryAttr odsAttrs
::std::optional<::mlir::OperationName > odsOpName
::mlir::RegionRange odsRegions
::mlir::RegionRange odsRegions
::mlir::DictionaryAttr getAttributes()
const Properties & getProperties()
StepYieldOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::mlir::DictionaryAttr odsAttrs
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
::mlir::EmptyProperties Properties
::std::optional<::mlir::OperationName > odsOpName
::mlir::DictionaryAttr odsAttrs
VerifAssertOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::std::optional<::mlir::OperationName > odsOpName
::mlir::RegionRange odsRegions
const Properties & getProperties()
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
::mlir::EmptyProperties Properties
::mlir::DictionaryAttr getAttributes()
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
const Properties & getProperties()
::mlir::DictionaryAttr odsAttrs
::mlir::DictionaryAttr getAttributes()
::std::optional<::mlir::OperationName > odsOpName
::mlir::EmptyProperties Properties
VerifProveOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::mlir::RegionRange odsRegions
::mlir::EmptyProperties Properties
::std::optional<::mlir::OperationName > odsOpName
::mlir::DictionaryAttr getAttributes()
::mlir::RegionRange odsRegions
const Properties & getProperties()
::mlir::DictionaryAttr odsAttrs
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
VerifSMTProveOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Common interface for precondition and postcondition operations.
llvm::StringLiteral getOperationName()
Get the operation name, like "constrain.eq" for the given OpClass.
bool operator==(const Properties &rhs) const
::mlir::StringAttr sym_nameTy
bool operator!=(const Properties &rhs) const
::mlir::ArrayAttr res_attrsTy
function_typeTy function_type
::mlir::TypeAttr function_typeTy
auto getFunctionType() const
void setResAttrs(const ::mlir::ArrayAttr &propValue)
::mlir::ArrayAttr arg_attrsTy
void setTarget(const ::mlir::SymbolRefAttr &propValue)
void setFunctionType(const ::mlir::TypeAttr &propValue)
void setSymName(const ::mlir::StringAttr &propValue)
void setArgAttrs(const ::mlir::ArrayAttr &propValue)
::mlir::SymbolRefAttr targetTy
::mlir::DenseI32ArrayAttr mapOpGroupSizesTy
operandSegmentSizesTy operandSegmentSizes
templateParamsTy templateParams
::mlir::DenseI32ArrayAttr numDimsPerMapTy
auto getMapOpGroupSizes() const
bool operator==(const Properties &rhs) const
void setResAttrs(const ::mlir::ArrayAttr &propValue)
::mlir::ArrayAttr res_attrsTy
void setMapOpGroupSizes(const ::mlir::DenseI32ArrayAttr &propValue)
::mlir::ArrayAttr arg_attrsTy
::mlir::ArrayAttr templateParamsTy
::mlir::SymbolRefAttr calleeTy
::llvm::ArrayRef< int32_t > getOperandSegmentSizes() const
void setNumDimsPerMap(const ::mlir::DenseI32ArrayAttr &propValue)
void setArgAttrs(const ::mlir::ArrayAttr &propValue)
bool operator!=(const Properties &rhs) const
numDimsPerMapTy numDimsPerMap
mapOpGroupSizesTy mapOpGroupSizes
std::array< int32_t, 2 > operandSegmentSizesTy
auto getNumDimsPerMap() const
auto getTemplateParams() const
void setOperandSegmentSizes(::llvm::ArrayRef< int32_t > propValue)
void setCallee(const ::mlir::SymbolRefAttr &propValue)
void setTemplateParams(const ::mlir::ArrayAttr &propValue)
loop_arg_typesTy loop_arg_types
void setLoopArgTypes(const ::mlir::ArrayAttr &propValue)
auto getLoopArgTypes() const
bool operator==(const Properties &rhs) const
void setLoopName(const ::mlir::StringAttr &propValue)
::mlir::StringAttr loop_nameTy
bool operator!=(const Properties &rhs) const
::mlir::ArrayAttr loop_arg_typesTy