134template <
typename RangeT>
136 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
139 AssumeDetOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
145 template <
typename LateInst = AssumeDetOp,
typename = std::enable_if_t<std::is_same_v<LateInst, AssumeDetOp>>>
154 return {std::next(odsOperands.begin(), valueRange.first),
155 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
174 ::llvm::LogicalResult
verify(::mlir::Location loc);
176class AssumeDetOp :
public ::mlir::Op<AssumeDetOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::OneOperand, ::llzk::function::Verification<>::Impl, ::mlir::OpTrait::OpInvariants> {
181 template <
typename RangeT>
189 return ::llvm::StringLiteral(
"verif.det.assume");
198 return {std::next(getOperation()->operand_begin(), valueRange.first),
199 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
203 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*
getODSOperands(0).begin());
208 return getOperation()->getOpOperand(range.first);
217 return {std::next(getOperation()->result_begin(), valueRange.first),
218 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
221 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value hint);
222 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value hint);
223 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
226 static ::mlir::ParseResult
parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
227 void print(::mlir::OpAsmPrinter &_odsPrinter);
265template <
typename RangeT>
267 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
270 ContractEndOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
276 template <
typename LateInst = ContractEndOp,
typename = std::enable_if_t<std::is_same_v<LateInst, ContractEndOp>>>
285 return {std::next(odsOperands.begin(), valueRange.first),
286 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
301 ::llvm::LogicalResult
verify(::mlir::Location loc);
303class 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> {
308 template <
typename RangeT>
316 return ::llvm::StringLiteral(
"verif.contract_end");
325 return {std::next(getOperation()->operand_begin(), valueRange.first),
326 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
335 return {std::next(getOperation()->result_begin(), valueRange.first),
336 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
339 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState);
340 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes);
341 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
344 static ::mlir::ParseResult
parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
345 void print(::mlir::OpAsmPrinter &_odsPrinter);
346 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
368 auto &propStorage = this->arg_attrs;
369 return ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(propStorage);
372 this->arg_attrs = propValue;
378 auto &propStorage = this->function_type;
379 return ::llvm::cast<::mlir::TypeAttr>(propStorage);
382 this->function_type = propValue;
388 auto &propStorage = this->sym_name;
389 return ::llvm::cast<::mlir::StringAttr>(propStorage);
392 this->sym_name = propValue;
398 auto &propStorage = this->target;
399 return ::llvm::cast<::mlir::SymbolRefAttr>(propStorage);
401 void setTarget(const ::mlir::SymbolRefAttr &propValue) {
402 this->target = propValue;
409 rhs.
target == this->target &&
413 return !(*
this == rhs);
441 auto attr = ::llvm::cast<::mlir::StringAttr>(
getProperties().sym_name);
447 auto attr = ::llvm::cast<::mlir::SymbolRefAttr>(
getProperties().target);
453 auto attr = ::llvm::cast<::mlir::TypeAttr>(
getProperties().function_type);
459 auto attr = ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(
getProperties().arg_attrs);
463 ::std::optional< ::mlir::ArrayAttr >
getArgAttrs();
474template <
typename RangeT>
476 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
487 template <
typename LateInst = ContractOp,
typename = std::enable_if_t<std::is_same_v<LateInst, ContractOp>>>
496 return {std::next(odsOperands.begin(), valueRange.first),
497 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
512 ::llvm::LogicalResult
verify(::mlir::Location loc);
514class 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::CallableOpInterface::Trait, ::mlir::FunctionOpInterface::Trait, ::mlir::OpTrait::IsIsolatedFromAbove> {
519 template <
typename RangeT>
524 static ::llvm::StringRef attrNames[] = {::llvm::StringRef(
"arg_attrs"), ::llvm::StringRef(
"function_type"), ::llvm::StringRef(
"sym_name"), ::llvm::StringRef(
"target")};
525 return ::llvm::ArrayRef(attrNames);
529 return getAttributeNameForIndex(0);
533 return getAttributeNameForIndex(name, 0);
537 return getAttributeNameForIndex(1);
541 return getAttributeNameForIndex(name, 1);
545 return getAttributeNameForIndex(2);
549 return getAttributeNameForIndex(name, 2);
553 return getAttributeNameForIndex(3);
557 return getAttributeNameForIndex(name, 3);
561 return ::llvm::StringLiteral(
"verif.contract");
570 return {std::next(getOperation()->operand_begin(), valueRange.first),
571 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
580 return {std::next(getOperation()->result_begin(), valueRange.first),
581 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
585 return (*this)->getRegion(0);
588 static ::llvm::LogicalResult
setPropertiesFromAttr(
Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
591 static std::optional<mlir::Attribute>
getInherentAttr(::mlir::MLIRContext *ctx,
const Properties &prop, llvm::StringRef name);
594 static ::llvm::LogicalResult
verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
595 static ::llvm::LogicalResult
readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
598 return ::llvm::cast<::mlir::StringAttr>(getProperties().sym_name);
603 return ::llvm::cast<::mlir::SymbolRefAttr>(getProperties().target);
608 return ::llvm::cast<::mlir::TypeAttr>(getProperties().function_type);
613 return ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(getProperties().arg_attrs);
616 ::std::optional< ::mlir::ArrayAttr >
getArgAttrs();
618 getProperties().sym_name = attr;
623 getProperties().target = attr;
627 getProperties().function_type = attr;
632 getProperties().arg_attrs = attr;
636 auto &attr = getProperties().arg_attrs;
641 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::StringAttr sym_name, ::mlir::SymbolRefAttr target, ::mlir::TypeAttr function_type, ::mlir::ArrayAttr arg_attrs = {});
642 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 = {});
643 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llvm::StringRef sym_name, ::mlir::SymbolRefAttr target, ::mlir::FunctionType function_type, ::mlir::ArrayAttr arg_attrs = {});
644 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 = {});
645 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llvm::StringRef name, llvm::StringRef target);
646 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llvm::StringRef name, ::mlir::SymbolRefAttr target);
647 static ::mlir::ParseResult
parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
648 void print(::mlir::OpAsmPrinter &p);
651 ::llvm::LogicalResult
verify();
653 ::llvm::LogicalResult
verifySymbolUses(::mlir::SymbolTableCollection &symbolTable);
655 ::mlir::StringAttr getAttributeNameForIndex(
unsigned index) {
656 return getAttributeNameForIndex((*this)->getName(), index);
659 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name,
unsigned index) {
660 assert(index < 4 &&
"invalid attribute index");
661 assert(name.getStringRef() ==
getOperationName() &&
"invalid operation name");
662 assert(name.isRegistered() &&
"Operation isn't registered, missing a "
663 "dependent dialect loading?");
664 return name.getAttributeNames()[index];
691 ::std::optional<::mlir::StringAttr>
getArgNameAttr(
unsigned index);
694 void setArgNameAttr(
unsigned index, const ::mlir::StringAttr &attr);
697 void setArgName(
unsigned index, ::llvm::StringRef name);
724 ::mlir::FailureOr<SymbolLookupResult<component::StructDefOp>>
getStructTarget(::mlir::SymbolTableCollection &tables);
727 ::mlir::SymbolTableCollection tables;
740 ::mlir::FailureOr<SymbolLookupResult<function::FuncDefOp>>
getFuncTarget(::mlir::SymbolTableCollection &tables);
742 ::mlir::FailureOr<SymbolLookupResult<function::FuncDefOp>>
getFuncTarget() {
743 ::mlir::SymbolTableCollection tables;
749 ::mlir::FailureOr<SymbolLookupResult<::llzk::verif::ContractTargetOpInterface>>
getTargetOp(::mlir::SymbolTableCollection &tables);
751 ::mlir::FailureOr<SymbolLookupResult<::llzk::verif::ContractTargetOpInterface>>
getTargetOp() {
752 ::mlir::SymbolTableCollection tables;
759 static void initializeEmptyBody(
760 ::mlir::OpBuilder &builder, ::mlir::OperationState &state,
761 ::mlir::FunctionType functionType
799template <
typename RangeT>
801 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
804 DecreasesOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
810 template <
typename LateInst = DecreasesOp,
typename = std::enable_if_t<std::is_same_v<LateInst, DecreasesOp>>>
819 return {std::next(odsOperands.begin(), valueRange.first),
820 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
839 ::llvm::LogicalResult
verify(::mlir::Location loc);
841class DecreasesOp :
public ::mlir::Op<DecreasesOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::OneOperand, ::llzk::HasAncestor<::llzk::verif::InvariantOp>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::MemoryEffectOpInterface::Trait> {
846 template <
typename RangeT>
854 return ::llvm::StringLiteral(
"verif.decreases");
863 return {std::next(getOperation()->operand_begin(), valueRange.first),
864 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
867 ::mlir::TypedValue<::llzk::felt::FeltType>
getValue() {
868 return ::llvm::cast<::mlir::TypedValue<::llzk::felt::FeltType>>(*
getODSOperands(0).begin());
873 return getOperation()->getOpOperand(range.first);
882 return {std::next(getOperation()->result_begin(), valueRange.first),
883 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
886 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value value);
887 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value value);
888 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
891 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
892 static ::mlir::ParseResult
parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
893 void print(::mlir::OpAsmPrinter &_odsPrinter);
931template <
typename RangeT>
933 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
936 EnsureComputeOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
942 template <
typename LateInst = EnsureComputeOp,
typename = std::enable_if_t<std::is_same_v<LateInst, EnsureComputeOp>>>
951 return {std::next(odsOperands.begin(), valueRange.first),
952 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
971 ::llvm::LogicalResult
verify(::mlir::Location loc);
973class EnsureComputeOp :
public ::mlir::Op<EnsureComputeOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::OneOperand, ::llzk::HasAncestor<::llzk::verif::ContractOp>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::MemoryEffectOpInterface::Trait, ::llzk::verif::ConditionOpInterface::Trait, ::llzk::verif::PostconditionOpInterface::Trait> {
978 template <
typename RangeT>
986 return ::llvm::StringLiteral(
"verif.ensure_compute");
995 return {std::next(getOperation()->operand_begin(), valueRange.first),
996 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
1000 return ::llvm::cast<::mlir::TypedValue<::mlir::IntegerType>>(*
getODSOperands(0).begin());
1005 return getOperation()->getOpOperand(range.first);
1014 return {std::next(getOperation()->result_begin(), valueRange.first),
1015 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
1018 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value condition);
1019 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value condition);
1020 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1023 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
1024 static ::mlir::ParseResult
parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1025 void print(::mlir::OpAsmPrinter &_odsPrinter);
1063template <
typename RangeT>
1065 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1068 EnsureConstrainOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
1074 template <
typename LateInst = EnsureConstrainOp,
typename = std::enable_if_t<std::is_same_v<LateInst, EnsureConstrainOp>>>
1083 return {std::next(odsOperands.begin(), valueRange.first),
1084 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1103 ::llvm::LogicalResult
verify(::mlir::Location loc);
1105class EnsureConstrainOp :
public ::mlir::Op<EnsureConstrainOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::OneOperand, ::llzk::function::Verification<::llzk::function::ConstraintGen>::Impl, ::llzk::HasAncestor<::llzk::verif::ContractOp, ::llzk::function::FuncDefOp>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::MemoryEffectOpInterface::Trait, ::llzk::verif::ConditionOpInterface::Trait, ::llzk::verif::PostconditionOpInterface::Trait> {
1110 template <
typename RangeT>
1118 return ::llvm::StringLiteral(
"verif.ensure_constrain");
1127 return {std::next(getOperation()->operand_begin(), valueRange.first),
1128 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
1132 return ::llvm::cast<::mlir::TypedValue<::mlir::IntegerType>>(*
getODSOperands(0).begin());
1137 return getOperation()->getOpOperand(range.first);
1146 return {std::next(getOperation()->result_begin(), valueRange.first),
1147 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
1150 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value condition);
1151 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value condition);
1152 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1155 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
1156 static ::mlir::ParseResult
parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1157 void print(::mlir::OpAsmPrinter &_odsPrinter);
1179 auto &propStorage = this->callee;
1180 return ::llvm::cast<::mlir::SymbolRefAttr>(propStorage);
1183 this->callee = propValue;
1189 auto &propStorage = this->mapOpGroupSizes;
1190 return ::llvm::cast<::mlir::DenseI32ArrayAttr>(propStorage);
1193 this->mapOpGroupSizes = propValue;
1199 auto &propStorage = this->numDimsPerMap;
1200 return ::llvm::dyn_cast_or_null<::mlir::DenseI32ArrayAttr>(propStorage);
1203 this->numDimsPerMap = propValue;
1209 auto &propStorage = this->templateParams;
1210 return ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(propStorage);
1213 this->templateParams = propValue;
1218 auto &propStorage = this->operandSegmentSizes;
1222 auto &propStorage = this->operandSegmentSizes;
1223 ::llvm::copy(propValue, propStorage.begin());
1227 rhs.
callee == this->callee &&
1235 return !(*
this == rhs);
1260 auto attr = ::llvm::cast<::mlir::SymbolRefAttr>(
getProperties().callee);
1266 auto attr = ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(
getProperties().templateParams);
1274 auto attr = ::llvm::cast<::mlir::DenseI32ArrayAttr>(
getProperties().mapOpGroupSizes);
1281template <
typename RangeT>
1283 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1294 template <
typename LateInst = IncludeOp,
typename = std::enable_if_t<std::is_same_v<LateInst, IncludeOp>>>
1303 return {std::next(odsOperands.begin(), valueRange.first),
1304 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1315 ::llvm::SmallVector<RangeT> tblgenTmpOperandGroups;
1316 for (
int i = 0, e = sizes.size(); i < e; ++i) {
1317 tblgenTmpOperandGroups.push_back(tblgenTmpOperands.take_front(sizes[i]));
1318 tblgenTmpOperands = tblgenTmpOperands.drop_front(sizes[i]);
1320 return tblgenTmpOperandGroups;
1335 ::llvm::LogicalResult
verify(::mlir::Location loc);
1337class IncludeOp :
public ::mlir::Op<IncludeOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::VariadicOperands, ::mlir::OpTrait::AttrSizedOperandSegments, ::llzk::VerifySizesForMultiAffineOps<1>::Impl, ::llzk::HasAncestor<::llzk::verif::ContractOp>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::BytecodeOpInterface::Trait, ::mlir::OpTrait::MemRefsNormalizable, ::mlir::CallOpInterface::Trait, ::mlir::SymbolUserOpInterface::Trait> {
1342 template <
typename RangeT>
1347 static ::llvm::StringRef attrNames[] = {::llvm::StringRef(
"callee"), ::llvm::StringRef(
"mapOpGroupSizes"), ::llvm::StringRef(
"numDimsPerMap"), ::llvm::StringRef(
"templateParams"), ::llvm::StringRef(
"operandSegmentSizes")};
1348 return ::llvm::ArrayRef(attrNames);
1352 return getAttributeNameForIndex(0);
1356 return getAttributeNameForIndex(name, 0);
1360 return getAttributeNameForIndex(1);
1364 return getAttributeNameForIndex(name, 1);
1368 return getAttributeNameForIndex(2);
1372 return getAttributeNameForIndex(name, 2);
1376 return getAttributeNameForIndex(3);
1380 return getAttributeNameForIndex(name, 3);
1384 return (*this)->getName().getAttributeNames().back();
1388 return name.getAttributeNames().back();
1392 return ::llvm::StringLiteral(
"verif.include");
1398 return {std::next(getOperation()->operand_begin(), valueRange.first),
1399 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
1418 return {std::next(getOperation()->result_begin(), valueRange.first),
1419 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
1422 static ::llvm::LogicalResult
setPropertiesFromAttr(
Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
1425 static std::optional<mlir::Attribute>
getInherentAttr(::mlir::MLIRContext *ctx,
const Properties &prop, llvm::StringRef name);
1428 static ::llvm::LogicalResult
verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
1429 static ::llvm::LogicalResult
readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
1432 return ::llvm::cast<::mlir::SymbolRefAttr>(getProperties().callee);
1437 return ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(getProperties().templateParams);
1442 return ::llvm::dyn_cast_or_null<::mlir::DenseI32ArrayAttr>(getProperties().numDimsPerMap);
1447 return ::llvm::cast<::mlir::DenseI32ArrayAttr>(getProperties().mapOpGroupSizes);
1452 getProperties().callee = attr;
1456 getProperties().templateParams = attr;
1460 getProperties().numDimsPerMap = attr;
1465 getProperties().mapOpGroupSizes = attr;
1470 auto &attr = getProperties().templateParams;
1475 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::SymbolRefAttr callee, ::mlir::ValueRange argOperands = {}, ::llvm::ArrayRef<::mlir::Attribute> templateParams = {});
1476 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 = {});
1477 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 = {});
1478 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llzk::verif::ContractOp callee, ::mlir::ValueRange argOperands = {}, ::llvm::ArrayRef<::mlir::Attribute> templateParams = {});
1479 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 = {});
1480 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 = {});
1486 ::llvm::LogicalResult
verifySymbolUses(::mlir::SymbolTableCollection &symbolTable);
1487 static ::mlir::ParseResult
parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1489 void print(::mlir::OpAsmPrinter &_odsPrinter);
1491 ::mlir::StringAttr getAttributeNameForIndex(
unsigned index) {
1492 return getAttributeNameForIndex((*this)->getName(), index);
1495 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name,
unsigned index) {
1496 assert(index < 4 &&
"invalid attribute index");
1497 assert(name.getStringRef() ==
getOperationName() &&
"invalid operation name");
1498 assert(name.isRegistered() &&
"Operation isn't registered, missing a "
1499 "dependent dialect loading?");
1500 return name.getAttributeNames()[index];
1528 ::mlir::FailureOr<::llzk::SymbolLookupResult<::llzk::verif::ContractOp>>
1533 static ::llvm::SmallVector<::mlir::ValueRange>
toVectorOfValueRange(::mlir::OperandRangeRange);
1548 ::llvm::iterator_range<::mlir::Region::op_iterator<::llzk::polymorphic::TemplateParamOp>> targetParamDefs
1560 ::llvm::iterator_range<::mlir::Region::op_iterator<::llzk::polymorphic::TemplateParamOp>> targetParamDefs,
1599template <
typename RangeT>
1601 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1604 IncreasesOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
1610 template <
typename LateInst = IncreasesOp,
typename = std::enable_if_t<std::is_same_v<LateInst, IncreasesOp>>>
1619 return {std::next(odsOperands.begin(), valueRange.first),
1620 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1639 ::llvm::LogicalResult
verify(::mlir::Location loc);
1641class IncreasesOp :
public ::mlir::Op<IncreasesOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::OneOperand, ::llzk::HasAncestor<::llzk::verif::InvariantOp>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::MemoryEffectOpInterface::Trait> {
1646 template <
typename RangeT>
1654 return ::llvm::StringLiteral(
"verif.increases");
1663 return {std::next(getOperation()->operand_begin(), valueRange.first),
1664 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
1667 ::mlir::TypedValue<::llzk::felt::FeltType>
getValue() {
1668 return ::llvm::cast<::mlir::TypedValue<::llzk::felt::FeltType>>(*
getODSOperands(0).begin());
1673 return getOperation()->getOpOperand(range.first);
1682 return {std::next(getOperation()->result_begin(), valueRange.first),
1683 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
1686 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value value);
1687 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value value);
1688 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1691 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
1692 static ::mlir::ParseResult
parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1693 void print(::mlir::OpAsmPrinter &_odsPrinter);
1715 auto &propStorage = this->loop_arg_types;
1716 return ::llvm::cast<::mlir::ArrayAttr>(propStorage);
1719 this->loop_arg_types = propValue;
1725 auto &propStorage = this->loop_name;
1726 return ::llvm::cast<::mlir::StringAttr>(propStorage);
1729 this->loop_name = propValue;
1738 return !(*
this == rhs);
1766 auto attr = ::llvm::cast<::mlir::StringAttr>(
getProperties().loop_name);
1772 auto attr = ::llvm::cast<::mlir::ArrayAttr>(
getProperties().loop_arg_types);
1787template <
typename RangeT>
1789 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1800 template <
typename LateInst = InvariantOp,
typename = std::enable_if_t<std::is_same_v<LateInst, InvariantOp>>>
1809 return {std::next(odsOperands.begin(), valueRange.first),
1810 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1825 ::llvm::LogicalResult
verify(::mlir::Location loc);
1827class InvariantOp :
public ::mlir::Op<InvariantOp, ::mlir::OpTrait::OneRegion, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::ZeroOperands, ::llzk::HasAncestor<::llzk::verif::ContractOp>::Impl, ::mlir::OpTrait::NoTerminator, ::mlir::OpTrait::SingleBlock, ::mlir::OpTrait::OpInvariants, ::mlir::BytecodeOpInterface::Trait> {
1832 template <
typename RangeT>
1837 static ::llvm::StringRef attrNames[] = {::llvm::StringRef(
"loop_arg_types"), ::llvm::StringRef(
"loop_name")};
1838 return ::llvm::ArrayRef(attrNames);
1842 return getAttributeNameForIndex(0);
1846 return getAttributeNameForIndex(name, 0);
1850 return getAttributeNameForIndex(1);
1854 return getAttributeNameForIndex(name, 1);
1858 return ::llvm::StringLiteral(
"verif.invariant");
1867 return {std::next(getOperation()->operand_begin(), valueRange.first),
1868 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
1877 return {std::next(getOperation()->result_begin(), valueRange.first),
1878 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
1882 return (*this)->getRegion(0);
1885 static ::llvm::LogicalResult
setPropertiesFromAttr(
Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
1888 static std::optional<mlir::Attribute>
getInherentAttr(::mlir::MLIRContext *ctx,
const Properties &prop, llvm::StringRef name);
1891 static ::llvm::LogicalResult
verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
1892 static ::llvm::LogicalResult
readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
1895 return ::llvm::cast<::mlir::StringAttr>(getProperties().loop_name);
1900 return ::llvm::cast<::mlir::ArrayAttr>(getProperties().loop_arg_types);
1905 getProperties().loop_name = attr;
1910 getProperties().loop_arg_types = attr;
1913 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 = {});
1914 static ::mlir::ParseResult
parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1915 void print(::mlir::OpAsmPrinter &p);
1918 ::llvm::LogicalResult
verify();
1920 ::mlir::StringAttr getAttributeNameForIndex(
unsigned index) {
1921 return getAttributeNameForIndex((*this)->getName(), index);
1924 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name,
unsigned index) {
1925 assert(index < 2 &&
"invalid attribute index");
1926 assert(name.getStringRef() ==
getOperationName() &&
"invalid operation name");
1927 assert(name.isRegistered() &&
"Operation isn't registered, missing a "
1928 "dependent dialect loading?");
1929 return name.getAttributeNames()[index];
1936 ::mlir::FailureOr<::llzk::verif::InvariantTargetOpInterface>
getTarget();
1973template <
typename RangeT>
1975 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1978 OldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
1980 OldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) :
OldOpGenericAdaptor(values, attrs, (properties ? *properties.as<::
mlir::EmptyProperties *>() : ::
mlir::EmptyProperties{}), regions) {}
1984 template <
typename LateInst = OldOp,
typename = std::enable_if_t<std::is_same_v<LateInst, OldOp>>>
1993 return {std::next(odsOperands.begin(), valueRange.first),
1994 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
2013 ::llvm::LogicalResult
verify(::mlir::Location loc);
2015class OldOp :
public ::mlir::Op<OldOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::mlir::Type>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::OneOperand, ::llzk::HasAncestor<::llzk::verif::StepOp>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::InferTypeOpInterface::Trait> {
2020 template <
typename RangeT>
2028 return ::llvm::StringLiteral(
"verif.old");
2037 return {std::next(getOperation()->operand_begin(), valueRange.first),
2038 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
2042 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*
getODSOperands(0).begin());
2047 return getOperation()->getOpOperand(range.first);
2056 return {std::next(getOperation()->result_begin(), valueRange.first),
2057 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
2061 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*
getODSResults(0).begin());
2064 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value value);
2065 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value value);
2066 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value value);
2067 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2068 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2071 static ::llvm::LogicalResult
inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location> location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type>&inferredReturnTypes);
2072 static ::mlir::ParseResult
parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
2073 void print(::mlir::OpAsmPrinter &_odsPrinter);
2074 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
2112template <
typename RangeT>
2114 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
2117 ProveDetOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
2123 template <
typename LateInst = ProveDetOp,
typename = std::enable_if_t<std::is_same_v<LateInst, ProveDetOp>>>
2132 return {std::next(odsOperands.begin(), valueRange.first),
2133 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
2152 ::llvm::LogicalResult
verify(::mlir::Location loc);
2154class 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> {
2159 template <
typename RangeT>
2167 return ::llvm::StringLiteral(
"verif.det.prove");
2176 return {std::next(getOperation()->operand_begin(), valueRange.first),
2177 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
2181 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*
getODSOperands(0).begin());
2186 return getOperation()->getOpOperand(range.first);
2195 return {std::next(getOperation()->result_begin(), valueRange.first),
2196 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
2200 return ::llvm::cast<::mlir::TypedValue<::mlir::IntegerType>>(*
getODSResults(0).begin());
2203 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value condition);
2204 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value condition);
2205 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value condition);
2206 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2207 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2210 static ::llvm::LogicalResult
inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location> location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type>&inferredReturnTypes);
2211 static ::mlir::ParseResult
parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
2212 void print(::mlir::OpAsmPrinter &_odsPrinter);
2250template <
typename RangeT>
2252 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
2255 RequireComputeOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
2261 template <
typename LateInst = RequireComputeOp,
typename = std::enable_if_t<std::is_same_v<LateInst, RequireComputeOp>>>
2270 return {std::next(odsOperands.begin(), valueRange.first),
2271 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
2290 ::llvm::LogicalResult
verify(::mlir::Location loc);
2292class RequireComputeOp :
public ::mlir::Op<RequireComputeOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::OneOperand, ::llzk::HasAncestor<::llzk::verif::ContractOp>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::MemoryEffectOpInterface::Trait, ::llzk::verif::ConditionOpInterface::Trait, ::llzk::verif::PreconditionOpInterface::Trait> {
2297 template <
typename RangeT>
2305 return ::llvm::StringLiteral(
"verif.require_compute");
2314 return {std::next(getOperation()->operand_begin(), valueRange.first),
2315 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
2319 return ::llvm::cast<::mlir::TypedValue<::mlir::IntegerType>>(*
getODSOperands(0).begin());
2324 return getOperation()->getOpOperand(range.first);
2333 return {std::next(getOperation()->result_begin(), valueRange.first),
2334 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
2337 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value condition);
2338 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value condition);
2339 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2342 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
2343 static ::mlir::ParseResult
parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
2344 void print(::mlir::OpAsmPrinter &_odsPrinter);
2382template <
typename RangeT>
2384 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
2387 RequireConstrainOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
2393 template <
typename LateInst = RequireConstrainOp,
typename = std::enable_if_t<std::is_same_v<LateInst, RequireConstrainOp>>>
2402 return {std::next(odsOperands.begin(), valueRange.first),
2403 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
2422 ::llvm::LogicalResult
verify(::mlir::Location loc);
2424class RequireConstrainOp :
public ::mlir::Op<RequireConstrainOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::OneOperand, ::llzk::HasAncestor<::llzk::verif::ContractOp>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::MemoryEffectOpInterface::Trait, ::llzk::verif::ConditionOpInterface::Trait, ::llzk::verif::PreconditionOpInterface::Trait> {
2429 template <
typename RangeT>
2437 return ::llvm::StringLiteral(
"verif.require_constrain");
2446 return {std::next(getOperation()->operand_begin(), valueRange.first),
2447 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
2451 return ::llvm::cast<::mlir::TypedValue<::mlir::IntegerType>>(*
getODSOperands(0).begin());
2456 return getOperation()->getOpOperand(range.first);
2465 return {std::next(getOperation()->result_begin(), valueRange.first),
2466 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
2469 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value condition);
2470 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value condition);
2471 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2474 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
2475 static ::mlir::ParseResult
parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
2476 void print(::mlir::OpAsmPrinter &_odsPrinter);
2522template <
typename RangeT>
2524 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
2527 StepOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
2529 StepOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) :
StepOpGenericAdaptor(values, attrs, (properties ? *properties.as<::
mlir::EmptyProperties *>() : ::
mlir::EmptyProperties{}), regions) {}
2533 template <
typename LateInst = StepOp,
typename = std::enable_if_t<std::is_same_v<LateInst, StepOp>>>
2542 return {std::next(odsOperands.begin(), valueRange.first),
2543 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
2558 ::llvm::LogicalResult
verify(::mlir::Location loc);
2560class StepOp :
public ::mlir::Op<StepOp, ::mlir::OpTrait::OneRegion, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::ZeroOperands, ::llzk::HasAncestor<::llzk::verif::InvariantOp>::Impl, ::mlir::OpTrait::NoRegionArguments, ::mlir::OpTrait::SingleBlock, ::mlir::OpTrait::OpInvariants, ::mlir::MemoryEffectOpInterface::Trait> {
2565 template <
typename RangeT>
2573 return ::llvm::StringLiteral(
"verif.step");
2582 return {std::next(getOperation()->operand_begin(), valueRange.first),
2583 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
2592 return {std::next(getOperation()->result_begin(), valueRange.first),
2593 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
2597 return (*this)->getRegion(0);
2600 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState);
2601 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes);
2602 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2605 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
2606 static ::mlir::ParseResult
parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
2607 void print(::mlir::OpAsmPrinter &_odsPrinter);
2645template <
typename RangeT>
2647 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
2650 StepYieldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
2656 template <
typename LateInst = StepYieldOp,
typename = std::enable_if_t<std::is_same_v<LateInst, StepYieldOp>>>
2665 return {std::next(odsOperands.begin(), valueRange.first),
2666 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
2685 ::llvm::LogicalResult
verify(::mlir::Location loc);
2687class 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> {
2692 template <
typename RangeT>
2700 return ::llvm::StringLiteral(
"verif.step.yield");
2709 return {std::next(getOperation()->operand_begin(), valueRange.first),
2710 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
2714 return ::llvm::cast<::mlir::TypedValue<::mlir::IntegerType>>(*
getODSOperands(0).begin());
2719 return getOperation()->getOpOperand(range.first);
2728 return {std::next(getOperation()->result_begin(), valueRange.first),
2729 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
2732 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value value);
2733 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value value);
2734 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2737 static ::mlir::ParseResult
parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
2738 void print(::mlir::OpAsmPrinter &_odsPrinter);
2776template <
typename RangeT>
2778 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
2781 VerifAssertOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
2787 template <
typename LateInst = VerifAssertOp,
typename = std::enable_if_t<std::is_same_v<LateInst, VerifAssertOp>>>
2796 return {std::next(odsOperands.begin(), valueRange.first),
2797 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
2816 ::llvm::LogicalResult
verify(::mlir::Location loc);
2818class 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> {
2823 template <
typename RangeT>
2831 return ::llvm::StringLiteral(
"verif.assert");
2840 return {std::next(getOperation()->operand_begin(), valueRange.first),
2841 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
2845 return ::llvm::cast<::mlir::TypedValue<::mlir::IntegerType>>(*
getODSOperands(0).begin());
2850 return getOperation()->getOpOperand(range.first);
2859 return {std::next(getOperation()->result_begin(), valueRange.first),
2860 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
2863 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value condition);
2864 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value condition);
2865 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
2868 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
2869 static ::mlir::ParseResult
parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
2870 void print(::mlir::OpAsmPrinter &_odsPrinter);
2908template <
typename RangeT>
2910 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
2913 VerifProveOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
2919 template <
typename LateInst = VerifProveOp,
typename = std::enable_if_t<std::is_same_v<LateInst, VerifProveOp>>>
2928 return {std::next(odsOperands.begin(), valueRange.first),
2929 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
2948 ::llvm::LogicalResult
verify(::mlir::Location loc);
2950class 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> {
2955 template <
typename RangeT>
2963 return ::llvm::StringLiteral(
"verif.prove");
2972 return {std::next(getOperation()->operand_begin(), valueRange.first),
2973 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
2977 return ::llvm::cast<::mlir::TypedValue<::mlir::IntegerType>>(*
getODSOperands(0).begin());
2982 return getOperation()->getOpOperand(range.first);
2991 return {std::next(getOperation()->result_begin(), valueRange.first),
2992 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
2995 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value condition);
2996 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value condition);
2997 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3000 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
3001 static ::mlir::ParseResult
parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
3002 void print(::mlir::OpAsmPrinter &_odsPrinter);
3040template <
typename RangeT>
3042 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
3045 VerifSMTProveOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
3051 template <
typename LateInst = VerifSMTProveOp,
typename = std::enable_if_t<std::is_same_v<LateInst, VerifSMTProveOp>>>
3060 return {std::next(odsOperands.begin(), valueRange.first),
3061 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
3080 ::llvm::LogicalResult
verify(::mlir::Location loc);
3082class VerifSMTProveOp :
public ::mlir::Op<VerifSMTProveOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::OneOperand, ::mlir::OpTrait::OpInvariants> {
3087 template <
typename RangeT>
3095 return ::llvm::StringLiteral(
"verif.smt_prove");
3104 return {std::next(getOperation()->operand_begin(), valueRange.first),
3105 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
3109 return ::llvm::cast<::mlir::TypedValue<::llzk::smt::BoolType>>(*
getODSOperands(0).begin());
3114 return getOperation()->getOpOperand(range.first);
3123 return {std::next(getOperation()->result_begin(), valueRange.first),
3124 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
3127 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value condition);
3128 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value condition);
3129 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
3132 static ::mlir::ParseResult
parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
3133 void print(::mlir::OpAsmPrinter &_odsPrinter);
AssumeDetOpAdaptor(AssumeDetOp op)
::llvm::LogicalResult verify(::mlir::Location loc)
AssumeDetOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
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, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
AssumeDetOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
::mlir::Operation::operand_range getODSOperands(unsigned index)
::mlir::TypedValue<::mlir::Type > getHint()
void print(::mlir::OpAsmPrinter &_odsPrinter)
static constexpr ::llvm::StringLiteral getOperationName()
AssumeDetOpAdaptor Adaptor
::mlir::OpOperand & getHintMutable()
::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)
::mlir::Operation::result_range getODSResults(unsigned index)
::llvm::LogicalResult verifyInvariantsImpl()
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value hint)
ContractEndOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
::llvm::LogicalResult verify(::mlir::Location loc)
ContractEndOpAdaptor(ContractEndOp op)
ContractEndOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
ContractEndOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties 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)
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
::llvm::LogicalResult verifyInvariantsImpl()
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
::llvm::LogicalResult verifyInvariants()
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
::mlir::Operation::operand_range getODSOperands(unsigned index)
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState)
ContractEndOpGenericAdaptor< RangeT > GenericAdaptor
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)
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, const Properties &properties, ::mlir::RegionRange regions={})
ContractOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties 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()
::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.
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()
void print(::mlir::OpAsmPrinter &p)
::std::optional< ::mlir::ArrayAttr > getArgAttrs()
::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()
FoldAdaptor::Properties Properties
::mlir::FailureOr< SymbolLookupResult< component::StructDefOp > > getStructTarget()
::mlir::FailureOr< SymbolLookupResult< function::FuncDefOp > > getFuncTarget()
::mlir::StringAttr getSymNameAttrName(::mlir::OperationName name)
ContractOpGenericAdaptor< RangeT > GenericAdaptor
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::StringAttr sym_name, ::mlir::SymbolRefAttr target, ::mlir::TypeAttr function_type, ::mlir::ArrayAttr arg_attrs={})
bool hasFuncTarget()
Return true iff the contract targets a function.
::llvm::StringRef getSymName()
::mlir::StringAttr getTargetAttrName(::mlir::OperationName name)
bool isDeclaration()
Required by SymbolOpInterface.
DecreasesOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &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={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
DecreasesOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
DecreasesOpGenericAdaptor(RangeT values, const DecreasesOpGenericAdaptorBase &base)
RangeT getODSOperands(unsigned index)
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 void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value value)
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
::llvm::LogicalResult verifyInvariantsImpl()
::mlir::Operation::operand_range getODSOperands(unsigned index)
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
::llvm::LogicalResult verifyInvariants()
::mlir::Operation::result_range getODSResults(unsigned index)
DecreasesOpGenericAdaptor< RangeT > GenericAdaptor
void print(::mlir::OpAsmPrinter &_odsPrinter)
EnsureComputeOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
EnsureComputeOpAdaptor(EnsureComputeOp op)
::llvm::LogicalResult verify(::mlir::Location loc)
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
EnsureComputeOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
EnsureComputeOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
EnsureComputeOpGenericAdaptor(RangeT values, const EnsureComputeOpGenericAdaptorBase &base)
EnsureComputeOpGenericAdaptor(RangeT values, LateInst op)
RangeT getODSOperands(unsigned index)
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
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)
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
static constexpr ::llvm::StringLiteral getOperationName()
void print(::mlir::OpAsmPrinter &_odsPrinter)
::mlir::Operation::operand_range getODSOperands(unsigned index)
::mlir::Operation::result_range getODSResults(unsigned index)
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value condition)
EnsureComputeOpGenericAdaptor< RangeT > GenericAdaptor
::llvm::LogicalResult verifyInvariantsImpl()
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
::mlir::TypedValue<::mlir::IntegerType > getCondition()
::llvm::LogicalResult verify(::mlir::Location loc)
EnsureConstrainOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
EnsureConstrainOpAdaptor(EnsureConstrainOp op)
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
EnsureConstrainOpGenericAdaptor(RangeT values, LateInst op)
EnsureConstrainOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
EnsureConstrainOpGenericAdaptor(RangeT values, const EnsureConstrainOpGenericAdaptorBase &base)
EnsureConstrainOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
RangeT getODSOperands(unsigned index)
::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()
void print(::mlir::OpAsmPrinter &_odsPrinter)
::llvm::LogicalResult verifyInvariantsImpl()
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value condition)
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
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)
::llvm::SmallVector< RangeT > getMapOperands()
IncludeOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
IncludeOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties 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::LogicalResult verifyTemplateParamCompatibility(::mlir::Attribute paramFromCallOp, ::llzk::polymorphic::TemplateParamOp targetParam)
Check type compatibility of the given template parameter value from this CallOp against the declared ...
::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 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)
::llvm::ArrayRef< int32_t > getMapOpGroupSizes()
void writeProperties(::mlir::DialectBytecodeWriter &writer)
::mlir::StringAttr getNumDimsPerMapAttrName(::mlir::OperationName name)
::mlir::SymbolRefAttr getCalleeAttr()
FoldAdaptor::Properties Properties
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::FailureOr<::llzk::SymbolLookupResult<::llzk::verif::ContractOp > > getCalleeTarget(::mlir::SymbolTableCollection &tables)
Resolve and return the target Contract for this CallOp.
::mlir::Operation * resolveCallable()
Required by CallOpInterface.
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()
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
::mlir::StringAttr getOperandSegmentSizesAttrName(::mlir::OperationName name)
::mlir::Value getSelfValue()
Return the "self" value (i.e.
::mlir::MutableOperandRangeRange getMapOperandsMutable()
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)
::mlir::LogicalResult verifyTemplateParamCompatibility(::llvm::iterator_range<::mlir::Region::op_iterator<::llzk::polymorphic::TemplateParamOp > > targetParamDefs)
Check type compatibility of each template parameter value provided in this CallOp against the declare...
static void populateDefaultProperties(::mlir::OperationName opName, Properties &properties)
::llvm::ArrayRef< int32_t > getNumDimsPerMap()
::mlir::FunctionType getTypeSignature()
Return the FunctionType inferred from the arg operands of this CallOp.
::mlir::Attribute removeTemplateParamsAttr()
::mlir::LogicalResult verifyTemplateParamsMatchInferred(::llvm::iterator_range<::mlir::Region::op_iterator<::llzk::polymorphic::TemplateParamOp > > targetParamDefs, const UnificationMap &unifications)
Verify that each template parameter value provided in this CallOp is consistent with the value inferr...
::mlir::StringAttr getNumDimsPerMapAttrName()
::mlir::DenseI32ArrayAttr getNumDimsPerMapAttr()
::llvm::LogicalResult verifyInvariants()
::mlir::FailureOr< UnificationMap > unifyTypeSignature(::mlir::FunctionType other)
Attempt type unfication between the inferred FunctionType from this CallOp (as LHS) and the given Fun...
::mlir::Operation * resolveCallableInTable(::mlir::SymbolTableCollection *symbolTable)
Required by CallOpInterface.
IncludeOpGenericAdaptor< RangeT > GenericAdaptor
static ::llvm::SmallVector<::mlir::ValueRange > toVectorOfValueRange(::mlir::OperandRangeRange)
Allocate consecutive storage of the ValueRange instances in the parameter so it can be passed to the ...
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 ::mlir::EmptyProperties &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={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
IncreasesOpGenericAdaptor(RangeT values, LateInst op)
RangeT getODSOperands(unsigned index)
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
IncreasesOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
IncreasesOpGenericAdaptor< RangeT > GenericAdaptor
IncreasesOpAdaptor Adaptor
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
static constexpr ::llvm::StringLiteral getOperationName()
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
::mlir::Operation::result_range getODSResults(unsigned index)
::llvm::LogicalResult verifyInvariants()
void print(::mlir::OpAsmPrinter &_odsPrinter)
::llvm::LogicalResult verifyInvariantsImpl()
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value value)
::mlir::OpOperand & getValueMutable()
::mlir::Operation::operand_range getODSOperands(unsigned index)
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
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)
::llvm::LogicalResult verify(::mlir::Location loc)
InvariantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
InvariantOpAdaptor(InvariantOp op)
InvariantOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
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)
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)
::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()
::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 ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
OldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
OldOpGenericAdaptor(RangeT values, LateInst op)
RangeT getODSOperands(unsigned index)
OldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
OldOpGenericAdaptor(RangeT values, const OldOpGenericAdaptorBase &base)
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
void print(::mlir::OpAsmPrinter &_odsPrinter)
static constexpr ::llvm::StringLiteral getOperationName()
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
::llvm::LogicalResult verifyInvariantsImpl()
::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 inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
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)
ProveDetOpAdaptor(ProveDetOp op)
::llvm::LogicalResult verify(::mlir::Location loc)
ProveDetOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
RangeT getODSOperands(unsigned index)
ProveDetOpGenericAdaptor(RangeT values, LateInst op)
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
ProveDetOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
ProveDetOpGenericAdaptor(RangeT values, const ProveDetOpGenericAdaptorBase &base)
ProveDetOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
::mlir::TypedValue<::mlir::IntegerType > getResult()
::mlir::OpOperand & getConditionMutable()
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
::llvm::LogicalResult verifyInvariantsImpl()
static constexpr ::llvm::StringLiteral getOperationName()
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value condition)
void print(::mlir::OpAsmPrinter &_odsPrinter)
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
ProveDetOpGenericAdaptor< RangeT > GenericAdaptor
::mlir::TypedValue<::mlir::Type > getCondition()
::mlir::Operation::result_range getODSResults(unsigned index)
ProveDetOpAdaptor Adaptor
::mlir::Operation::operand_range getODSOperands(unsigned index)
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
::llvm::LogicalResult verifyInvariants()
::llvm::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
RequireComputeOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
RequireComputeOpAdaptor(RequireComputeOp op)
::llvm::LogicalResult verify(::mlir::Location loc)
RequireComputeOpGenericAdaptor(RangeT values, LateInst op)
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
RequireComputeOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
RequireComputeOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
RangeT getODSOperands(unsigned index)
RequireComputeOpGenericAdaptor(RangeT values, const RequireComputeOpGenericAdaptorBase &base)
RequireComputeOpAdaptor Adaptor
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
static constexpr ::llvm::StringLiteral getOperationName()
RequireComputeOpGenericAdaptor< RangeT > GenericAdaptor
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
::llvm::LogicalResult verifyInvariantsImpl()
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
::llvm::LogicalResult verifyInvariants()
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
::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 void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value condition)
::mlir::Operation::result_range getODSResults(unsigned index)
void print(::mlir::OpAsmPrinter &_odsPrinter)
::mlir::OpOperand & getConditionMutable()
RequireConstrainOpAdaptor(RequireConstrainOp op)
RequireConstrainOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
::llvm::LogicalResult verify(::mlir::Location loc)
RangeT getODSOperands(unsigned index)
RequireConstrainOpGenericAdaptor(RangeT values, LateInst op)
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
RequireConstrainOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
RequireConstrainOpGenericAdaptor(RangeT values, const RequireConstrainOpGenericAdaptorBase &base)
RequireConstrainOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
::mlir::OpOperand & getConditionMutable()
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
RequireConstrainOpAdaptor Adaptor
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()
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
RequireConstrainOpGenericAdaptor< RangeT > GenericAdaptor
::llvm::LogicalResult verifyInvariantsImpl()
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value condition)
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
static constexpr ::llvm::StringLiteral getOperationName()
::mlir::Operation::operand_range getODSOperands(unsigned index)
void print(::mlir::OpAsmPrinter &_odsPrinter)
::llvm::LogicalResult verify(::mlir::Location loc)
StepOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
StepOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
StepOpGenericAdaptor(RangeT values, const StepOpGenericAdaptorBase &base)
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
StepOpGenericAdaptor(RangeT values, LateInst op)
StepOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
RangeT getODSOperands(unsigned index)
StepOpGenericAdaptor< RangeT > GenericAdaptor
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
::llvm::LogicalResult verifyInvariantsImpl()
::llvm::LogicalResult verifyInvariants()
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
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()
void print(::mlir::OpAsmPrinter &_odsPrinter)
::mlir::Operation::result_range getODSResults(unsigned index)
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState)
StepYieldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
::llvm::LogicalResult verify(::mlir::Location loc)
StepYieldOpAdaptor(StepYieldOp op)
StepYieldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
StepYieldOpGenericAdaptor(RangeT values, const StepYieldOpGenericAdaptorBase &base)
StepYieldOpGenericAdaptor(RangeT values, LateInst op)
RangeT getODSOperands(unsigned index)
StepYieldOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
static constexpr ::llvm::StringLiteral getOperationName()
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
::mlir::Operation::result_range getODSResults(unsigned index)
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)
StepYieldOpAdaptor Adaptor
::llvm::LogicalResult verifyInvariantsImpl()
::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)
::llvm::LogicalResult verify(::mlir::Location loc)
VerifAssertOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
VerifAssertOpGenericAdaptor(RangeT values, LateInst op)
VerifAssertOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
VerifAssertOpGenericAdaptor(RangeT values, const VerifAssertOpGenericAdaptorBase &base)
VerifAssertOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &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()
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
static constexpr ::llvm::StringLiteral getOperationName()
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
VerifAssertOpAdaptor Adaptor
::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)
void print(::mlir::OpAsmPrinter &_odsPrinter)
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
VerifAssertOpGenericAdaptor< RangeT > GenericAdaptor
::llvm::LogicalResult verifyInvariants()
::mlir::OpOperand & getConditionMutable()
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value condition)
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
VerifProveOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
VerifProveOpAdaptor(VerifProveOp op)
::llvm::LogicalResult verify(::mlir::Location loc)
VerifProveOpGenericAdaptor(RangeT values, const VerifProveOpGenericAdaptorBase &base)
VerifProveOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
RangeT getODSOperands(unsigned index)
VerifProveOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
VerifProveOpGenericAdaptor(RangeT values, LateInst op)
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
::mlir::TypedValue<::mlir::IntegerType > getCondition()
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
VerifProveOpGenericAdaptor< RangeT > GenericAdaptor
::mlir::Operation::result_range getODSResults(unsigned index)
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
::llvm::LogicalResult verifyInvariantsImpl()
::llvm::LogicalResult verifyInvariants()
::mlir::OpOperand & getConditionMutable()
static constexpr ::llvm::StringLiteral getOperationName()
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
::mlir::Operation::operand_range getODSOperands(unsigned index)
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value condition)
VerifProveOpAdaptor Adaptor
void print(::mlir::OpAsmPrinter &_odsPrinter)
VerifSMTProveOpAdaptor(VerifSMTProveOp op)
::llvm::LogicalResult verify(::mlir::Location loc)
VerifSMTProveOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
VerifSMTProveOpGenericAdaptor(RangeT values, const VerifSMTProveOpGenericAdaptorBase &base)
RangeT getODSOperands(unsigned index)
VerifSMTProveOpGenericAdaptor(RangeT values, LateInst op)
VerifSMTProveOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
VerifSMTProveOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
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
::llvm::LogicalResult verifyInvariantsImpl()
::mlir::Operation::result_range getODSResults(unsigned index)
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
::mlir::TypedValue<::llzk::smt::BoolType > getCondition()
VerifSMTProveOpGenericAdaptor< RangeT > GenericAdaptor
static constexpr ::llvm::StringLiteral getOperationName()
::mlir::OpOperand & getConditionMutable()
void print(::mlir::OpAsmPrinter &_odsPrinter)
::mlir::DictionaryAttr odsAttrs
AssumeDetOpGenericAdaptorBase(::mlir::Operation *op)
::std::optional<::mlir::OperationName > odsOpName
::mlir::DictionaryAttr getAttributes()
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
::mlir::RegionRange odsRegions
AssumeDetOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
ContractEndOpGenericAdaptorBase(::mlir::Operation *op)
::std::optional<::mlir::OperationName > odsOpName
ContractEndOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
::mlir::DictionaryAttr getAttributes()
::mlir::RegionRange odsRegions
::mlir::DictionaryAttr odsAttrs
::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()
::mlir::Region & getBody()
::mlir::SymbolRefAttr getTarget()
::mlir::RegionRange getRegions()
::mlir::RegionRange odsRegions
::mlir::DictionaryAttr odsAttrs
::mlir::DictionaryAttr getAttributes()
DecreasesOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
::std::optional<::mlir::OperationName > odsOpName
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
DecreasesOpGenericAdaptorBase(::mlir::Operation *op)
::mlir::RegionRange odsRegions
::mlir::DictionaryAttr odsAttrs
EnsureComputeOpGenericAdaptorBase(::mlir::Operation *op)
EnsureComputeOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
::std::optional<::mlir::OperationName > odsOpName
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
::mlir::DictionaryAttr getAttributes()
::mlir::RegionRange odsRegions
::std::optional<::mlir::OperationName > odsOpName
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
::mlir::RegionRange odsRegions
EnsureConstrainOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
EnsureConstrainOpGenericAdaptorBase(::mlir::Operation *op)
::mlir::DictionaryAttr getAttributes()
::mlir::DictionaryAttr odsAttrs
::llvm::ArrayRef< int32_t > getNumDimsPerMap()
::mlir::DenseI32ArrayAttr getNumDimsPerMapAttr()
::mlir::RegionRange odsRegions
::mlir::SymbolRefAttr getCalleeAttr()
::std::optional<::mlir::OperationName > odsOpName
::mlir::ArrayAttr getTemplateParamsAttr()
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
::mlir::SymbolRefAttr getCallee()
::mlir::DictionaryAttr getAttributes()
::llvm::ArrayRef< int32_t > getMapOpGroupSizes()
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::Operation *op)
::mlir::RegionRange odsRegions
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
IncreasesOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
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::DictionaryAttr getAttributes()
OldOpGenericAdaptorBase(::mlir::Operation *op)
::std::optional<::mlir::OperationName > odsOpName
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
OldOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
::mlir::RegionRange odsRegions
::mlir::DictionaryAttr odsAttrs
::mlir::RegionRange odsRegions
::std::optional<::mlir::OperationName > odsOpName
ProveDetOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
::mlir::DictionaryAttr odsAttrs
ProveDetOpGenericAdaptorBase(::mlir::Operation *op)
::mlir::DictionaryAttr getAttributes()
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
RequireComputeOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
RequireComputeOpGenericAdaptorBase(::mlir::Operation *op)
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
::std::optional<::mlir::OperationName > odsOpName
::mlir::DictionaryAttr getAttributes()
::mlir::DictionaryAttr odsAttrs
::mlir::RegionRange odsRegions
::mlir::RegionRange odsRegions
::mlir::DictionaryAttr getAttributes()
::mlir::DictionaryAttr odsAttrs
RequireConstrainOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
::std::optional<::mlir::OperationName > odsOpName
RequireConstrainOpGenericAdaptorBase(::mlir::Operation *op)
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
::mlir::RegionRange getRegions()
StepOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
::mlir::DictionaryAttr getAttributes()
::mlir::Region & getRegion()
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
StepOpGenericAdaptorBase(::mlir::Operation *op)
::mlir::DictionaryAttr odsAttrs
::std::optional<::mlir::OperationName > odsOpName
::mlir::RegionRange odsRegions
::mlir::RegionRange odsRegions
::mlir::DictionaryAttr getAttributes()
StepYieldOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
::mlir::DictionaryAttr odsAttrs
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
::std::optional<::mlir::OperationName > odsOpName
StepYieldOpGenericAdaptorBase(::mlir::Operation *op)
::mlir::DictionaryAttr odsAttrs
::std::optional<::mlir::OperationName > odsOpName
::mlir::RegionRange odsRegions
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
VerifAssertOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
VerifAssertOpGenericAdaptorBase(::mlir::Operation *op)
::mlir::DictionaryAttr getAttributes()
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
::mlir::DictionaryAttr odsAttrs
VerifProveOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
::mlir::DictionaryAttr getAttributes()
::std::optional<::mlir::OperationName > odsOpName
VerifProveOpGenericAdaptorBase(::mlir::Operation *op)
::mlir::RegionRange odsRegions
::std::optional<::mlir::OperationName > odsOpName
::mlir::DictionaryAttr getAttributes()
::mlir::RegionRange odsRegions
VerifSMTProveOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
::mlir::DictionaryAttr odsAttrs
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
VerifSMTProveOpGenericAdaptorBase(::mlir::Operation *op)
mlir::DenseMap< std::pair< mlir::SymbolRefAttr, Side >, mlir::Attribute > UnificationMap
Optional result from type unifications.
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
function_typeTy function_type
::mlir::TypeAttr function_typeTy
::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
bool operator==(const Properties &rhs) const
void setMapOpGroupSizes(const ::mlir::DenseI32ArrayAttr &propValue)
::mlir::ArrayAttr templateParamsTy
::mlir::SymbolRefAttr calleeTy
::llvm::ArrayRef< int32_t > getOperandSegmentSizes() const
void setNumDimsPerMap(const ::mlir::DenseI32ArrayAttr &propValue)
auto getMapOpGroupSizes()
bool operator!=(const Properties &rhs) const
numDimsPerMapTy numDimsPerMap
mapOpGroupSizesTy mapOpGroupSizes
std::array< int32_t, 2 > operandSegmentSizesTy
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)
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