28static ::llvm::LogicalResult __mlir_ods_local_type_constraint_Ops1(
29 ::mlir::Operation *op, ::mlir::Type type, ::llvm::StringRef valueKind,
30 unsigned valueIndex) {
31 if (!((::llvm::isa<::llzk::felt::FeltType>(type)))) {
32 return op->emitOpError(valueKind) <<
" #" << valueIndex
33 <<
" must be finite field element, but got " << type;
35 return ::mlir::success();
38static ::llvm::LogicalResult __mlir_ods_local_type_constraint_Ops2(
39 ::mlir::Operation *op, ::mlir::Type type, ::llvm::StringRef valueKind,
40 unsigned valueIndex) {
41 if (!((::llvm::isa<::mlir::IndexType>(type)))) {
42 return op->emitOpError(valueKind) <<
" #" << valueIndex
43 <<
" must be index, but got " << type;
45 return ::mlir::success();
48static ::llvm::LogicalResult __mlir_ods_local_type_constraint_Ops3(
49 ::mlir::Operation *op, ::mlir::Type type, ::llvm::StringRef valueKind,
50 unsigned valueIndex) {
51 if (!(((type.isSignlessInteger(1))) || ((::llvm::isa<::mlir::IndexType>(type))))) {
52 return op->emitOpError(valueKind) <<
" #" << valueIndex
53 <<
" must be 1-bit signless integer or index, but got " << type;
55 return ::mlir::success();
58static ::llvm::LogicalResult __mlir_ods_local_attr_constraint_Ops1(
59 ::mlir::Attribute attr, ::llvm::StringRef attrName, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError) {
60 if (attr && !((::llvm::isa<::llzk::cast::OverflowSemanticsAttr>(attr))))
61 return emitError() <<
"attribute '" << attrName
62 <<
"' failed to satisfy constraint: Cast overflow semantics";
63 return ::mlir::success();
65static ::llvm::LogicalResult __mlir_ods_local_attr_constraint_Ops1(
66 ::mlir::Operation *op, ::mlir::Attribute attr, ::llvm::StringRef attrName) {
67 return __mlir_ods_local_attr_constraint_Ops1(attr, attrName, [op]() {
68 return op->emitOpError();
84 auto attr = ::llvm::dyn_cast_or_null<::llzk::cast::OverflowSemanticsAttr>(
getProperties().overflow);
90 return attr.getValue();
99 if (tblgen_overflow && !((::llvm::isa<::llzk::cast::OverflowSemanticsAttr>(tblgen_overflow))))
100 return emitError(loc,
"'cast.toindex' op ""attribute 'overflow' failed to satisfy constraint: Cast overflow semantics");
101 return ::mlir::success();
105 ::mlir::DictionaryAttr dict = ::llvm::dyn_cast<::mlir::DictionaryAttr>(attr);
107 emitError() <<
"expected DictionaryAttr to set properties";
108 return ::mlir::failure();
113 auto attr = dict.get(
"overflow");
115 auto convertedAttr = ::llvm::dyn_cast<std::remove_reference_t<
decltype(propStorage)>>(attr);
117 propStorage = convertedAttr;
119 emitError() <<
"Invalid attribute `overflow` in property conversion: " << attr;
120 return ::mlir::failure();
124 return ::mlir::success();
128 ::mlir::SmallVector<::mlir::NamedAttribute> attrs;
129 ::mlir::Builder odsBuilder{ctx};
132 const auto &propStorage = prop.
overflow;
134 attrs.push_back(odsBuilder.getNamedAttr(
"overflow",
139 return odsBuilder.getDictionaryAttr(attrs);
144 return llvm::hash_combine(
145 llvm::hash_value(prop.
overflow.getAsOpaquePointer()));
149 if (name ==
"overflow")
155 if (name ==
"overflow") {
156 prop.
overflow = ::llvm::dyn_cast_or_null<std::remove_reference_t<
decltype(prop.
overflow)>>(value);
168 if (attr && ::mlir::failed(__mlir_ods_local_attr_constraint_Ops1(attr,
"overflow", emitError)))
169 return ::mlir::failure();
171 return ::mlir::success();
175 auto &prop = state.getOrAddProperties<
Properties>(); (void)prop;
176 if (::mlir::failed(reader.readOptionalAttribute(prop.
overflow)))
177 return ::mlir::failure();
178 return ::mlir::success();
182 auto &prop = getProperties(); (void)prop;
184 writer.writeOptionalAttribute(prop.
overflow);
189 return attr.getValue();
193 getProperties().overflow = ::llzk::cast::OverflowSemanticsAttr::get(::mlir::Builder((*this)->getContext()).getContext(), attrValue);
196void FeltToIndexOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::llzk::cast::OverflowSemanticsAttr overflow, ::mlir::Value value) {
197 odsState.addOperands(value);
199 odsState.getOrAddProperties<
Properties>().overflow = overflow;
201 odsState.addTypes(result);
204void FeltToIndexOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llzk::cast::OverflowSemanticsAttr overflow, ::mlir::Value value) {
205 odsState.addOperands(value);
207 odsState.getOrAddProperties<
Properties>().overflow = overflow;
210 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
212 odsState.location, odsState.operands,
213 odsState.attributes.getDictionary(odsState.getContext()),
214 odsState.getRawProperties(),
215 odsState.regions, inferredReturnTypes)))
216 odsState.addTypes(inferredReturnTypes);
218 ::mlir::detail::reportFatalInferReturnTypesError(odsState);
222void FeltToIndexOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::llzk::cast::OverflowSemanticsAttr overflow, ::mlir::Value value) {
223 odsState.addOperands(value);
225 odsState.getOrAddProperties<
Properties>().overflow = overflow;
227 assert(resultTypes.size() == 1u &&
"mismatched number of results");
228 odsState.addTypes(resultTypes);
232 odsState.addOperands(value);
233 odsState.getOrAddProperties<
Properties>().overflow = ::llzk::cast::OverflowSemanticsAttr::get(odsBuilder.getContext(), overflow);
234 odsState.addTypes(result);
238 odsState.addOperands(value);
239 odsState.getOrAddProperties<
Properties>().overflow = ::llzk::cast::OverflowSemanticsAttr::get(odsBuilder.getContext(), overflow);
241 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
243 odsState.location, odsState.operands,
244 odsState.attributes.getDictionary(odsState.getContext()),
245 odsState.getRawProperties(),
246 odsState.regions, inferredReturnTypes)))
247 odsState.addTypes(inferredReturnTypes);
249 ::mlir::detail::reportFatalInferReturnTypesError(odsState);
254 odsState.addOperands(value);
255 odsState.getOrAddProperties<
Properties>().overflow = ::llzk::cast::OverflowSemanticsAttr::get(odsBuilder.getContext(), overflow);
256 assert(resultTypes.size() == 1u &&
"mismatched number of results");
257 odsState.addTypes(resultTypes);
260void FeltToIndexOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
261 assert(operands.size() == 1u &&
"mismatched number of parameters");
262 odsState.addOperands(operands);
263 odsState.addAttributes(attributes);
264 assert(resultTypes.size() == 1u &&
"mismatched number of return types");
265 odsState.addTypes(resultTypes);
267 if (!attributes.empty()) {
268 ::mlir::OpaqueProperties properties =
270 std::optional<::mlir::RegisteredOperationName> info =
271 odsState.name.getRegisteredInfo();
272 if (failed(info->setOpPropertiesFromAttribute(odsState.name, properties,
273 odsState.attributes.getDictionary(odsState.getContext()),
nullptr)))
274 ::llvm::report_fatal_error(
"Property conversion failed.");
278void FeltToIndexOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
279 assert(operands.size() == 1u &&
"mismatched number of parameters");
280 odsState.addOperands(operands);
281 odsState.addAttributes(attributes);
283 if (!attributes.empty()) {
284 ::mlir::OpaqueProperties properties =
286 std::optional<::mlir::RegisteredOperationName> info =
287 odsState.name.getRegisteredInfo();
288 if (failed(info->setOpPropertiesFromAttribute(odsState.name, properties,
289 odsState.attributes.getDictionary(odsState.getContext()),
nullptr)))
290 ::llvm::report_fatal_error(
"Property conversion failed.");
292 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
294 odsState.location, operands,
295 odsState.attributes.getDictionary(odsState.getContext()),
296 odsState.getRawProperties(),
297 odsState.regions, inferredReturnTypes))) {
298 assert(inferredReturnTypes.size() == 1u &&
"mismatched number of return types");
299 odsState.addTypes(inferredReturnTypes);
301 ::llvm::report_fatal_error(
"Failed to infer result type(s).");
306 ::mlir::Builder odsBuilder(opName.getContext());
312 auto tblgen_overflow = getProperties().overflow; (void)tblgen_overflow;
314 if (::mlir::failed(__mlir_ods_local_attr_constraint_Ops1(*
this, tblgen_overflow,
"overflow")))
315 return ::mlir::failure();
317 unsigned index = 0; (void)index;
320 for (
auto v : valueGroup0) {
321 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops1(*
this, v.getType(),
"operand", index++)))
322 return ::mlir::failure();
326 unsigned index = 0; (void)index;
329 for (
auto v : valueGroup0) {
330 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops2(*
this, v.getType(),
"result", index++)))
331 return ::mlir::failure();
334 return ::mlir::success();
345::llvm::LogicalResult
FeltToIndexOp::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) {
346 inferredReturnTypes.resize(1);
347 ::mlir::Builder odsBuilder(context);
348 ::mlir::Type odsInferredType0 = odsBuilder.getIndexType();
349 inferredReturnTypes[0] = odsInferredType0;
350 return ::mlir::success();
354 ::llzk::cast::OverflowSemanticsAttr overflowAttr;
355 ::mlir::OpAsmParser::UnresolvedOperand valueRawOperand{};
356 ::llvm::ArrayRef<::mlir::OpAsmParser::UnresolvedOperand> valueOperands(&valueRawOperand, 1); ::llvm::SMLoc valueOperandsLoc;
357 (void)valueOperandsLoc;
358 ::mlir::Type valueRawType{};
359 ::llvm::ArrayRef<::mlir::Type> valueTypes(&valueRawType, 1);
362 if (odsResult) return ::mlir::failure();
367 valueOperandsLoc = parser.getCurrentLocation();
368 if (parser.parseOperand(valueRawOperand))
369 return ::mlir::failure();
371 auto odsResult = parseInferredOrParsedType(parser, valueRawType,
true);
372 if (odsResult) return ::mlir::failure();
375 auto loc = parser.getCurrentLocation();(void)loc;
376 if (parser.parseOptionalAttrDict(result.attributes))
377 return ::mlir::failure();
379 return parser.emitError(loc) <<
"'" << result.name.getStringRef() <<
"' op ";
381 return ::mlir::failure();
383 ::mlir::Type odsBuildableType0 = parser.getBuilder().getIndexType();
384 result.addTypes(odsBuildableType0);
385 if (parser.resolveOperands(valueOperands, valueTypes, valueOperandsLoc, result.operands))
386 return ::mlir::failure();
387 return ::mlir::success();
394 printInferredOrParsedType(_odsPrinter, *
this,
getValue().getType(),
true);
395 ::llvm::SmallVector<::llvm::StringRef, 2> elidedAttrs;
396 elidedAttrs.push_back(
"overflow");
398 ::mlir::Builder odsBuilder(getContext());
401 elidedAttrs.push_back(
"overflow");
403 _odsPrinter.printOptionalAttrDict((*this)->getAttrs(), elidedAttrs);
424 auto attr = ::llvm::dyn_cast_or_null<::llzk::cast::OverflowSemanticsAttr>(
getProperties().overflow);
430 return attr.getValue();
439 if (tblgen_overflow && !((::llvm::isa<::llzk::cast::OverflowSemanticsAttr>(tblgen_overflow))))
440 return emitError(loc,
"'cast.tofelt' op ""attribute 'overflow' failed to satisfy constraint: Cast overflow semantics");
441 return ::mlir::success();
445 ::mlir::DictionaryAttr dict = ::llvm::dyn_cast<::mlir::DictionaryAttr>(attr);
447 emitError() <<
"expected DictionaryAttr to set properties";
448 return ::mlir::failure();
453 auto attr = dict.get(
"overflow");
455 auto convertedAttr = ::llvm::dyn_cast<std::remove_reference_t<
decltype(propStorage)>>(attr);
457 propStorage = convertedAttr;
459 emitError() <<
"Invalid attribute `overflow` in property conversion: " << attr;
460 return ::mlir::failure();
464 return ::mlir::success();
468 ::mlir::SmallVector<::mlir::NamedAttribute> attrs;
469 ::mlir::Builder odsBuilder{ctx};
472 const auto &propStorage = prop.
overflow;
474 attrs.push_back(odsBuilder.getNamedAttr(
"overflow",
479 return odsBuilder.getDictionaryAttr(attrs);
484 return llvm::hash_combine(
485 llvm::hash_value(prop.
overflow.getAsOpaquePointer()));
489 if (name ==
"overflow")
495 if (name ==
"overflow") {
496 prop.
overflow = ::llvm::dyn_cast_or_null<std::remove_reference_t<
decltype(prop.
overflow)>>(value);
505::llvm::LogicalResult
IntToFeltOp::verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError) {
508 if (attr && ::mlir::failed(__mlir_ods_local_attr_constraint_Ops1(attr,
"overflow", emitError)))
509 return ::mlir::failure();
511 return ::mlir::success();
515 auto &prop = state.getOrAddProperties<
Properties>(); (void)prop;
516 if (::mlir::failed(reader.readOptionalAttribute(prop.
overflow)))
517 return ::mlir::failure();
518 return ::mlir::success();
522 auto &prop = getProperties(); (void)prop;
524 writer.writeOptionalAttribute(prop.
overflow);
529 return attr.getValue();
533 getProperties().overflow = ::llzk::cast::OverflowSemanticsAttr::get(::mlir::Builder((*this)->getContext()).getContext(), attrValue);
536void IntToFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::llzk::cast::OverflowSemanticsAttr overflow, ::mlir::Value value) {
537 odsState.addOperands(value);
539 odsState.getOrAddProperties<
Properties>().overflow = overflow;
541 odsState.addTypes(result);
544void IntToFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llzk::cast::OverflowSemanticsAttr overflow, ::mlir::Value value) {
545 odsState.addOperands(value);
547 odsState.getOrAddProperties<
Properties>().overflow = overflow;
550 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
552 odsState.location, odsState.operands,
553 odsState.attributes.getDictionary(odsState.getContext()),
554 odsState.getRawProperties(),
555 odsState.regions, inferredReturnTypes)))
556 odsState.addTypes(inferredReturnTypes);
558 ::mlir::detail::reportFatalInferReturnTypesError(odsState);
562void IntToFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::llzk::cast::OverflowSemanticsAttr overflow, ::mlir::Value value) {
563 odsState.addOperands(value);
565 odsState.getOrAddProperties<
Properties>().overflow = overflow;
567 assert(resultTypes.size() == 1u &&
"mismatched number of results");
568 odsState.addTypes(resultTypes);
572 odsState.addOperands(value);
573 odsState.getOrAddProperties<
Properties>().overflow = ::llzk::cast::OverflowSemanticsAttr::get(odsBuilder.getContext(), overflow);
574 odsState.addTypes(result);
578 odsState.addOperands(value);
579 odsState.getOrAddProperties<
Properties>().overflow = ::llzk::cast::OverflowSemanticsAttr::get(odsBuilder.getContext(), overflow);
581 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
583 odsState.location, odsState.operands,
584 odsState.attributes.getDictionary(odsState.getContext()),
585 odsState.getRawProperties(),
586 odsState.regions, inferredReturnTypes)))
587 odsState.addTypes(inferredReturnTypes);
589 ::mlir::detail::reportFatalInferReturnTypesError(odsState);
594 odsState.addOperands(value);
595 odsState.getOrAddProperties<
Properties>().overflow = ::llzk::cast::OverflowSemanticsAttr::get(odsBuilder.getContext(), overflow);
596 assert(resultTypes.size() == 1u &&
"mismatched number of results");
597 odsState.addTypes(resultTypes);
600void IntToFeltOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
601 assert(operands.size() == 1u &&
"mismatched number of parameters");
602 odsState.addOperands(operands);
603 odsState.addAttributes(attributes);
604 assert(resultTypes.size() == 1u &&
"mismatched number of return types");
605 odsState.addTypes(resultTypes);
607 if (!attributes.empty()) {
608 ::mlir::OpaqueProperties properties =
610 std::optional<::mlir::RegisteredOperationName> info =
611 odsState.name.getRegisteredInfo();
612 if (failed(info->setOpPropertiesFromAttribute(odsState.name, properties,
613 odsState.attributes.getDictionary(odsState.getContext()),
nullptr)))
614 ::llvm::report_fatal_error(
"Property conversion failed.");
618void IntToFeltOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
619 assert(operands.size() == 1u &&
"mismatched number of parameters");
620 odsState.addOperands(operands);
621 odsState.addAttributes(attributes);
623 if (!attributes.empty()) {
624 ::mlir::OpaqueProperties properties =
626 std::optional<::mlir::RegisteredOperationName> info =
627 odsState.name.getRegisteredInfo();
628 if (failed(info->setOpPropertiesFromAttribute(odsState.name, properties,
629 odsState.attributes.getDictionary(odsState.getContext()),
nullptr)))
630 ::llvm::report_fatal_error(
"Property conversion failed.");
632 ::llvm::SmallVector<::mlir::Type, 2> inferredReturnTypes;
634 odsState.location, operands,
635 odsState.attributes.getDictionary(odsState.getContext()),
636 odsState.getRawProperties(),
637 odsState.regions, inferredReturnTypes))) {
638 assert(inferredReturnTypes.size() == 1u &&
"mismatched number of return types");
639 odsState.addTypes(inferredReturnTypes);
641 ::llvm::report_fatal_error(
"Failed to infer result type(s).");
646 ::mlir::Builder odsBuilder(opName.getContext());
652 auto tblgen_overflow = getProperties().overflow; (void)tblgen_overflow;
654 if (::mlir::failed(__mlir_ods_local_attr_constraint_Ops1(*
this, tblgen_overflow,
"overflow")))
655 return ::mlir::failure();
657 unsigned index = 0; (void)index;
660 for (
auto v : valueGroup0) {
661 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops3(*
this, v.getType(),
"operand", index++)))
662 return ::mlir::failure();
666 unsigned index = 0; (void)index;
669 for (
auto v : valueGroup0) {
670 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops1(*
this, v.getType(),
"result", index++)))
671 return ::mlir::failure();
674 return ::mlir::success();
685::llvm::LogicalResult
IntToFeltOp::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) {
686 inferredReturnTypes.resize(1);
687 ::mlir::Builder odsBuilder(context);
689 inferredReturnTypes[0] = odsInferredType0;
690 return ::mlir::success();
694 ::llzk::cast::OverflowSemanticsAttr overflowAttr;
695 ::mlir::OpAsmParser::UnresolvedOperand valueRawOperand{};
696 ::llvm::ArrayRef<::mlir::OpAsmParser::UnresolvedOperand> valueOperands(&valueRawOperand, 1); ::llvm::SMLoc valueOperandsLoc;
697 (void)valueOperandsLoc;
698 ::mlir::Type valueRawType{};
699 ::llvm::ArrayRef<::mlir::Type> valueTypes(&valueRawType, 1);
700 ::mlir::Type resultRawType{};
701 ::llvm::ArrayRef<::mlir::Type> resultTypes(&resultRawType, 1);
704 if (odsResult) return ::mlir::failure();
709 valueOperandsLoc = parser.getCurrentLocation();
710 if (parser.parseOperand(valueRawOperand))
711 return ::mlir::failure();
712 if (parser.parseColon())
713 return ::mlir::failure();
717 if (parser.parseCustomTypeWithFallback(type))
718 return ::mlir::failure();
722 auto odsResult = parseInferredOrParsedType(parser, resultRawType,
false);
723 if (odsResult) return ::mlir::failure();
726 auto loc = parser.getCurrentLocation();(void)loc;
727 if (parser.parseOptionalAttrDict(result.attributes))
728 return ::mlir::failure();
730 return parser.emitError(loc) <<
"'" << result.name.getStringRef() <<
"' op ";
732 return ::mlir::failure();
734 result.addTypes(resultTypes);
735 if (parser.resolveOperands(valueOperands, valueTypes, valueOperandsLoc, result.operands))
736 return ::mlir::failure();
737 return ::mlir::success();
744 _odsPrinter <<
' ' <<
":";
748 if (
auto validType = ::llvm::dyn_cast<::mlir::Type>(type))
749 _odsPrinter.printStrippedAttrOrType(validType);
753 printInferredOrParsedType(_odsPrinter, *
this,
getResult().getType(),
false);
754 ::llvm::SmallVector<::llvm::StringRef, 2> elidedAttrs;
755 elidedAttrs.push_back(
"overflow");
757 ::mlir::Builder odsBuilder(getContext());
760 elidedAttrs.push_back(
"overflow");
762 _odsPrinter.printOptionalAttrDict((*this)->getAttrs(), elidedAttrs);
765void IntToFeltOp::getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects) {
::llvm::LogicalResult verify(::mlir::Location loc)
FeltToIndexOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
FeltToIndexOpAdaptor(FeltToIndexOp op)
::mlir::ValueRange getOperands()
static void populateDefaultProperties(::mlir::OperationName opName, Properties &properties)
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
::llvm::LogicalResult verifyInvariants()
::llzk::cast::OverflowSemantics getOverflow()
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::llzk::cast::OverflowSemanticsAttr overflow, ::mlir::Value value)
static llvm::hash_code computePropertiesHash(const Properties &prop)
::mlir::TypedValue<::llzk::felt::FeltType > getValue()
void print(::mlir::OpAsmPrinter &_odsPrinter)
::mlir::StringAttr getOverflowAttrName()
::llzk::cast::OverflowSemanticsAttr getOverflowAttr()
FoldAdaptor::Properties Properties
::mlir::Operation::result_range getODSResults(unsigned index)
void writeProperties(::mlir::DialectBytecodeWriter &writer)
::llvm::LogicalResult canonicalize(FeltToIndexOp op, ::mlir::PatternRewriter &rewriter)
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
static void getCanonicalizationPatterns(::mlir::RewritePatternSet &results, ::mlir::MLIRContext *context)
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
static void printOptionalOverflowSemantics(::mlir::OpAsmPrinter &printer, FeltToIndexOp op, ::llzk::cast::OverflowSemanticsAttr overflow)
::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)
void setOverflow(::llzk::cast::OverflowSemantics attrValue)
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
::mlir::Operation::operand_range getODSOperands(unsigned index)
::llvm::LogicalResult verifyInvariantsImpl()
::mlir::ParseResult parseOptionalOverflowSemantics(::mlir::OpAsmParser &parser, ::llzk::cast::OverflowSemanticsAttr &overflow)
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
::llvm::LogicalResult verify(::mlir::Location loc)
IntToFeltOpAdaptor(IntToFeltOp op)
IntToFeltOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::mlir::ValueRange getOperands()
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
static void populateDefaultProperties(::mlir::OperationName opName, Properties &properties)
void print(::mlir::OpAsmPrinter &_odsPrinter)
void setOverflow(::llzk::cast::OverflowSemantics attrValue)
::llvm::LogicalResult verifyInvariantsImpl()
::llzk::cast::OverflowSemanticsAttr getOverflowAttr()
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
::mlir::StringAttr getOverflowAttrName()
::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)
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::llzk::cast::OverflowSemanticsAttr overflow, ::mlir::Value value)
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
static void getCanonicalizationPatterns(::mlir::RewritePatternSet &results, ::mlir::MLIRContext *context)
static llvm::hash_code computePropertiesHash(const Properties &prop)
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
FoldAdaptor::Properties Properties
static void printOptionalOverflowSemantics(::mlir::OpAsmPrinter &printer, IntToFeltOp op, ::llzk::cast::OverflowSemanticsAttr overflow)
::mlir::Operation::operand_range getODSOperands(unsigned index)
::mlir::ParseResult parseOptionalOverflowSemantics(::mlir::OpAsmParser &parser, ::llzk::cast::OverflowSemanticsAttr &overflow)
::mlir::TypedValue<::llzk::felt::FeltType > getResult()
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
::llzk::cast::OverflowSemantics getOverflow()
void writeProperties(::mlir::DialectBytecodeWriter &writer)
::mlir::Operation::result_range getODSResults(unsigned index)
::llvm::LogicalResult verifyInvariants()
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
::llvm::LogicalResult canonicalize(IntToFeltOp op, ::mlir::PatternRewriter &rewriter)
::mlir::TypedValue<::mlir::Type > getValue()
FeltToIndexOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::mlir::RegionRange odsRegions
::std::optional<::mlir::OperationName > odsOpName
const Properties & getProperties()
::llzk::cast::OverflowSemanticsAttr getOverflowAttr()
::mlir::DictionaryAttr odsAttrs
::llzk::cast::OverflowSemantics getOverflow()
::std::optional<::mlir::OperationName > odsOpName
::mlir::DictionaryAttr odsAttrs
::llzk::cast::OverflowSemantics getOverflow()
::mlir::RegionRange odsRegions
::llzk::cast::OverflowSemanticsAttr getOverflowAttr()
const Properties & getProperties()
IntToFeltOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
static FeltType get(::mlir::MLIRContext *context, ::mlir::StringAttr fieldName)