31static ::llvm::LogicalResult __mlir_ods_local_type_constraint_Ops1(
32 ::mlir::Operation *op, ::mlir::Type type, ::llvm::StringRef valueKind,
33 unsigned valueIndex) {
34 if (!((::llvm::isa<::llzk::component::StructType>(type)))) {
35 return op->emitOpError(valueKind) <<
" #" << valueIndex
36 <<
" must be circuit component, but got " << type;
38 return ::mlir::success();
41static ::llvm::LogicalResult __mlir_ods_local_type_constraint_Ops2(
42 ::mlir::Operation *op, ::mlir::Type type, ::llvm::StringRef valueKind,
43 unsigned valueIndex) {
44 if (!((::llvm::isa<::mlir::IndexType>(type)))) {
45 return op->emitOpError(valueKind) <<
" #" << valueIndex
46 <<
" must be variadic of index, but got " << type;
48 return ::mlir::success();
51static ::llvm::LogicalResult __mlir_ods_local_type_constraint_Ops3(
52 ::mlir::Operation *op, ::mlir::Type type, ::llvm::StringRef valueKind,
53 unsigned valueIndex) {
55 return op->emitOpError(valueKind) <<
" #" << valueIndex
56 <<
" must be a valid LLZK type, but got " << type;
58 return ::mlir::success();
61static ::llvm::LogicalResult __mlir_ods_local_attr_constraint_Ops1(
62 ::mlir::Attribute attr, ::llvm::StringRef attrName, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError) {
63 if (attr && !((::llvm::isa<::mlir::StringAttr>(attr))))
64 return emitError() <<
"attribute '" << attrName
65 <<
"' failed to satisfy constraint: string attribute";
66 return ::mlir::success();
68static ::llvm::LogicalResult __mlir_ods_local_attr_constraint_Ops1(
69 ::mlir::Operation *op, ::mlir::Attribute attr, ::llvm::StringRef attrName) {
70 return __mlir_ods_local_attr_constraint_Ops1(attr, attrName, [op]() {
71 return op->emitOpError();
75static ::llvm::LogicalResult __mlir_ods_local_attr_constraint_Ops2(
76 ::mlir::Attribute attr, ::llvm::StringRef attrName, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError) {
77 if (attr && !(((::llvm::isa<::mlir::TypeAttr>(attr))) && ((::llvm::isa<::mlir::Type>(::llvm::cast<::mlir::TypeAttr>(attr).getValue()))) && ((
::llzk::isValidType(::llvm::cast<::mlir::TypeAttr>(attr).getValue())))))
78 return emitError() <<
"attribute '" << attrName
79 <<
"' failed to satisfy constraint: type attribute of a valid LLZK type";
80 return ::mlir::success();
82static ::llvm::LogicalResult __mlir_ods_local_attr_constraint_Ops2(
83 ::mlir::Operation *op, ::mlir::Attribute attr, ::llvm::StringRef attrName) {
84 return __mlir_ods_local_attr_constraint_Ops2(attr, attrName, [op]() {
85 return op->emitOpError();
89static ::llvm::LogicalResult __mlir_ods_local_attr_constraint_Ops3(
90 ::mlir::Attribute attr, ::llvm::StringRef attrName, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError) {
91 if (attr && !((::llvm::isa<::mlir::UnitAttr>(attr))))
92 return emitError() <<
"attribute '" << attrName
93 <<
"' failed to satisfy constraint: unit attribute";
94 return ::mlir::success();
96static ::llvm::LogicalResult __mlir_ods_local_attr_constraint_Ops3(
97 ::mlir::Operation *op, ::mlir::Attribute attr, ::llvm::StringRef attrName) {
98 return __mlir_ods_local_attr_constraint_Ops3(attr, attrName, [op]() {
99 return op->emitOpError();
103static ::llvm::LogicalResult __mlir_ods_local_attr_constraint_Ops4(
104 ::mlir::Attribute attr, ::llvm::StringRef attrName, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError) {
105 if (attr && !((::llvm::isa<::mlir::FlatSymbolRefAttr>(attr))))
106 return emitError() <<
"attribute '" << attrName
107 <<
"' failed to satisfy constraint: flat symbol reference attribute";
108 return ::mlir::success();
110static ::llvm::LogicalResult __mlir_ods_local_attr_constraint_Ops4(
111 ::mlir::Operation *op, ::mlir::Attribute attr, ::llvm::StringRef attrName) {
112 return __mlir_ods_local_attr_constraint_Ops4(attr, attrName, [op]() {
113 return op->emitOpError();
117static ::llvm::LogicalResult __mlir_ods_local_attr_constraint_Ops5(
118 ::mlir::Attribute attr, ::llvm::StringRef attrName, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError) {
119 if (attr && !(((::llvm::isa<::mlir::SymbolRefAttr>(attr))) || (((::llvm::isa<::mlir::IntegerAttr>(attr))) && ((::llvm::isa<::mlir::IndexType>(::llvm::cast<::mlir::IntegerAttr>(attr).getType())))) || ((::llvm::isa<::mlir::AffineMapAttr>(attr)))))
120 return emitError() <<
"attribute '" << attrName
121 <<
"' failed to satisfy constraint: symbol reference attribute or index attribute or AffineMap attribute";
122 return ::mlir::success();
124static ::llvm::LogicalResult __mlir_ods_local_attr_constraint_Ops5(
125 ::mlir::Operation *op, ::mlir::Attribute attr, ::llvm::StringRef attrName) {
126 return __mlir_ods_local_attr_constraint_Ops5(attr, attrName, [op]() {
127 return op->emitOpError();
131static ::llvm::LogicalResult __mlir_ods_local_attr_constraint_Ops6(
132 ::mlir::Attribute attr, ::llvm::StringRef attrName, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError) {
133 if (attr && !((::llvm::isa<::mlir::DenseI32ArrayAttr>(attr))))
134 return emitError() <<
"attribute '" << attrName
135 <<
"' failed to satisfy constraint: i32 dense array attribute";
136 return ::mlir::success();
138static ::llvm::LogicalResult __mlir_ods_local_attr_constraint_Ops6(
139 ::mlir::Operation *op, ::mlir::Attribute attr, ::llvm::StringRef attrName) {
140 return __mlir_ods_local_attr_constraint_Ops6(attr, attrName, [op]() {
141 return op->emitOpError();
145static ::llvm::LogicalResult __mlir_ods_local_region_constraint_Ops1(
146 ::mlir::Operation *op, ::mlir::Region ®ion, ::llvm::StringRef regionName,
147 unsigned regionIndex) {
148 if (!((::llvm::hasNItems(region, 1)))) {
149 return op->emitOpError(
"region #") << regionIndex
150 << (regionName.empty() ?
" " :
" ('" + regionName +
"') ")
151 <<
"failed to verify constraint: region with 1 blocks";
153 return ::mlir::success();
169 return ::mlir::success();
173 odsState.addTypes(result);
176void CreateStructOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes) {
177 assert(resultTypes.size() == 1u &&
"mismatched number of results");
178 odsState.addTypes(resultTypes);
181void CreateStructOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
182 assert(operands.size() == 0u &&
"mismatched number of parameters");
183 odsState.addOperands(operands);
184 odsState.addAttributes(attributes);
185 assert(resultTypes.size() == 1u &&
"mismatched number of return types");
186 odsState.addTypes(resultTypes);
191 unsigned index = 0; (void)index;
194 for (
auto v : valueGroup0) {
195 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops1(*
this, v.getType(),
"result", index++)))
196 return ::mlir::failure();
199 return ::mlir::success();
207 ::mlir::Type resultRawType{};
208 ::llvm::ArrayRef<::mlir::Type> resultTypes(&resultRawType, 1);
209 if (parser.parseColon())
210 return ::mlir::failure();
214 if (parser.parseCustomTypeWithFallback(type))
215 return ::mlir::failure();
216 resultRawType = type;
219 auto loc = parser.getCurrentLocation();(void)loc;
220 if (parser.parseOptionalAttrDict(result.attributes))
221 return ::mlir::failure();
223 result.addTypes(resultTypes);
224 return ::mlir::success();
228 _odsPrinter <<
' ' <<
":";
232 if (
auto validType = ::llvm::dyn_cast<::llzk::component::StructType>(type))
233 _odsPrinter.printStrippedAttrOrType(validType);
237 ::llvm::SmallVector<::llvm::StringRef, 2> elidedAttrs;
238 _odsPrinter.printOptionalAttrDict((*this)->getAttrs(), elidedAttrs);
257 return attr.getValue();
262 return ::llvm::cast<::mlir::Type>(attr.getValue());
266 auto attr = ::llvm::dyn_cast_or_null<::mlir::UnitAttr>(
getProperties().column);
268 attr = ((
false) ? ::mlir::Builder(
odsAttrs.getContext()).getUnitAttr() :
nullptr);
275 return ((
false) ? ::mlir::Builder(
odsAttrs.getContext()).getUnitAttr() :
nullptr) !=
nullptr;
276 return attr !=
nullptr;
280 auto attr = ::llvm::dyn_cast_or_null<::mlir::UnitAttr>(
getProperties().signal);
282 attr = ((
false) ? ::mlir::Builder(
odsAttrs.getContext()).getUnitAttr() :
nullptr);
289 return ((
false) ? ::mlir::Builder(
odsAttrs.getContext()).getUnitAttr() :
nullptr) !=
nullptr;
290 return attr !=
nullptr;
300 if (!tblgen_sym_name)
return emitError(loc,
"'struct.member' op ""requires attribute 'sym_name'");
302 if (!tblgen_type)
return emitError(loc,
"'struct.member' op ""requires attribute 'type'");
304 if (tblgen_sym_name && !((::llvm::isa<::mlir::StringAttr>(tblgen_sym_name))))
305 return emitError(loc,
"'struct.member' op ""attribute 'sym_name' failed to satisfy constraint: string attribute");
307 if (tblgen_type && !(((::llvm::isa<::mlir::TypeAttr>(tblgen_type))) && ((::llvm::isa<::mlir::Type>(::llvm::cast<::mlir::TypeAttr>(tblgen_type).getValue()))) && ((
::llzk::isValidType(::llvm::cast<::mlir::TypeAttr>(tblgen_type).getValue())))))
308 return emitError(loc,
"'struct.member' op ""attribute 'type' failed to satisfy constraint: type attribute of a valid LLZK type");
310 if (tblgen_column && !((::llvm::isa<::mlir::UnitAttr>(tblgen_column))))
311 return emitError(loc,
"'struct.member' op ""attribute 'column' failed to satisfy constraint: unit attribute");
313 if (tblgen_signal && !((::llvm::isa<::mlir::UnitAttr>(tblgen_signal))))
314 return emitError(loc,
"'struct.member' op ""attribute 'signal' failed to satisfy constraint: unit attribute");
315 return ::mlir::success();
319 ::mlir::DictionaryAttr dict = ::llvm::dyn_cast<::mlir::DictionaryAttr>(attr);
321 emitError() <<
"expected DictionaryAttr to set properties";
322 return ::mlir::failure();
326 auto &propStorage = prop.
column;
327 auto attr = dict.get(
"column");
329 auto convertedAttr = ::llvm::dyn_cast<std::remove_reference_t<
decltype(propStorage)>>(attr);
331 propStorage = convertedAttr;
333 emitError() <<
"Invalid attribute `column` in property conversion: " << attr;
334 return ::mlir::failure();
340 auto &propStorage = prop.
signal;
341 auto attr = dict.get(
"signal");
343 auto convertedAttr = ::llvm::dyn_cast<std::remove_reference_t<
decltype(propStorage)>>(attr);
345 propStorage = convertedAttr;
347 emitError() <<
"Invalid attribute `signal` in property conversion: " << attr;
348 return ::mlir::failure();
355 auto attr = dict.get(
"sym_name");
357 auto convertedAttr = ::llvm::dyn_cast<std::remove_reference_t<
decltype(propStorage)>>(attr);
359 propStorage = convertedAttr;
361 emitError() <<
"Invalid attribute `sym_name` in property conversion: " << attr;
362 return ::mlir::failure();
368 auto &propStorage = prop.
type;
369 auto attr = dict.get(
"type");
371 auto convertedAttr = ::llvm::dyn_cast<std::remove_reference_t<
decltype(propStorage)>>(attr);
373 propStorage = convertedAttr;
375 emitError() <<
"Invalid attribute `type` in property conversion: " << attr;
376 return ::mlir::failure();
380 return ::mlir::success();
384 ::mlir::SmallVector<::mlir::NamedAttribute> attrs;
385 ::mlir::Builder odsBuilder{ctx};
388 const auto &propStorage = prop.
column;
390 attrs.push_back(odsBuilder.getNamedAttr(
"column",
395 const auto &propStorage = prop.
signal;
397 attrs.push_back(odsBuilder.getNamedAttr(
"signal",
402 const auto &propStorage = prop.
sym_name;
404 attrs.push_back(odsBuilder.getNamedAttr(
"sym_name",
409 const auto &propStorage = prop.
type;
411 attrs.push_back(odsBuilder.getNamedAttr(
"type",
416 return odsBuilder.getDictionaryAttr(attrs);
421 return llvm::hash_combine(
422 llvm::hash_value(prop.
column.getAsOpaquePointer()),
423 llvm::hash_value(prop.
signal.getAsOpaquePointer()),
424 llvm::hash_value(prop.
sym_name.getAsOpaquePointer()),
425 llvm::hash_value(prop.
type.getAsOpaquePointer()));
429 if (name ==
"column")
432 if (name ==
"signal")
435 if (name ==
"sym_name")
444 if (name ==
"column") {
445 prop.
column = ::llvm::dyn_cast_or_null<std::remove_reference_t<
decltype(prop.
column)>>(value);
449 if (name ==
"signal") {
450 prop.
signal = ::llvm::dyn_cast_or_null<std::remove_reference_t<
decltype(prop.
signal)>>(value);
454 if (name ==
"sym_name") {
455 prop.
sym_name = ::llvm::dyn_cast_or_null<std::remove_reference_t<
decltype(prop.
sym_name)>>(value);
459 if (name ==
"type") {
460 prop.
type = ::llvm::dyn_cast_or_null<std::remove_reference_t<
decltype(prop.
type)>>(value);
472 if (prop.
type) attrs.append(
"type", prop.
type);
475::llvm::LogicalResult
MemberDefOp::verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError) {
478 if (attr && ::mlir::failed(__mlir_ods_local_attr_constraint_Ops3(attr,
"column", emitError)))
479 return ::mlir::failure();
484 if (attr && ::mlir::failed(__mlir_ods_local_attr_constraint_Ops3(attr,
"signal", emitError)))
485 return ::mlir::failure();
490 if (attr && ::mlir::failed(__mlir_ods_local_attr_constraint_Ops1(attr,
"sym_name", emitError)))
491 return ::mlir::failure();
496 if (attr && ::mlir::failed(__mlir_ods_local_attr_constraint_Ops2(attr,
"type", emitError)))
497 return ::mlir::failure();
499 return ::mlir::success();
503 auto &prop = state.getOrAddProperties<
Properties>(); (void)prop;
504 if (::mlir::failed(reader.readOptionalAttribute(prop.
column)))
505 return ::mlir::failure();
507 if (::mlir::failed(reader.readOptionalAttribute(prop.
signal)))
508 return ::mlir::failure();
510 if (::mlir::failed(reader.readAttribute(prop.
sym_name)))
511 return ::mlir::failure();
513 if (::mlir::failed(reader.readAttribute(prop.
type)))
514 return ::mlir::failure();
515 return ::mlir::success();
519 auto &prop = getProperties(); (void)prop;
521 writer.writeOptionalAttribute(prop.
column);
523 writer.writeOptionalAttribute(prop.
signal);
524 writer.writeAttribute(prop.
sym_name);
525 writer.writeAttribute(prop.
type);
530 return attr.getValue();
535 return ::llvm::cast<::mlir::Type>(attr.getValue());
541 return ((
false) ? ::mlir::Builder((*this)->getContext()).getUnitAttr() :
nullptr) !=
nullptr;
542 return attr !=
nullptr;
548 return ((
false) ? ::mlir::Builder((*this)->getContext()).getUnitAttr() :
nullptr) !=
nullptr;
549 return attr !=
nullptr;
553 getProperties().sym_name = ::mlir::Builder((*this)->getContext()).getStringAttr(attrValue);
557 getProperties().type = ::mlir::TypeAttr::get(attrValue);
561 auto &odsProp = getProperties().column;
563 odsProp = ((attrValue) ? ::mlir::Builder((*this)->getContext()).getUnitAttr() :
nullptr);
569 auto &odsProp = getProperties().signal;
571 odsProp = ((attrValue) ? ::mlir::Builder((*this)->getContext()).getUnitAttr() :
nullptr);
576void MemberDefOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes,
bool isSignal,
bool isColumn) {
577 build(odsBuilder, odsState, {}, {}, attributes, isSignal, isColumn);
581 auto tblgen_column = getProperties().column; (void)tblgen_column;
582 auto tblgen_signal = getProperties().signal; (void)tblgen_signal;
583 auto tblgen_sym_name = getProperties().sym_name; (void)tblgen_sym_name;
584 if (!tblgen_sym_name)
return emitOpError(
"requires attribute 'sym_name'");
585 auto tblgen_type = getProperties().type; (void)tblgen_type;
586 if (!tblgen_type)
return emitOpError(
"requires attribute 'type'");
588 if (::mlir::failed(__mlir_ods_local_attr_constraint_Ops1(*
this, tblgen_sym_name,
"sym_name")))
589 return ::mlir::failure();
591 if (::mlir::failed(__mlir_ods_local_attr_constraint_Ops2(*
this, tblgen_type,
"type")))
592 return ::mlir::failure();
594 if (::mlir::failed(__mlir_ods_local_attr_constraint_Ops3(*
this, tblgen_column,
"column")))
595 return ::mlir::failure();
597 if (::mlir::failed(__mlir_ods_local_attr_constraint_Ops3(*
this, tblgen_signal,
"signal")))
598 return ::mlir::failure();
599 return ::mlir::success();
604 return ::mlir::success();
605 return ::mlir::failure();
609 ::mlir::StringAttr sym_nameAttr;
610 ::mlir::TypeAttr typeAttr;
612 if (parser.parseSymbolName(sym_nameAttr))
613 return ::mlir::failure();
615 if (parser.parseColon())
616 return ::mlir::failure();
618 if (parser.parseCustomAttributeWithFallback(typeAttr, parser.getBuilder().getType<::mlir::NoneType>())) {
619 return ::mlir::failure();
623 auto loc = parser.getCurrentLocation();(void)loc;
624 if (parser.parseOptionalAttrDict(result.attributes))
625 return ::mlir::failure();
627 return parser.emitError(loc) <<
"'" << result.name.getStringRef() <<
"' op ";
629 return ::mlir::failure();
631 return ::mlir::success();
637 _odsPrinter <<
' ' <<
":";
639 _odsPrinter.printAttributeWithoutType(
getTypeAttr());
640 ::llvm::SmallVector<::llvm::StringRef, 2> elidedAttrs;
641 elidedAttrs.push_back(
"sym_name");
642 elidedAttrs.push_back(
"type");
644 ::mlir::Builder odsBuilder(getContext());
646 if(attr && (attr == ((
false) ? odsBuilder.getUnitAttr() :
nullptr)))
647 elidedAttrs.push_back(
"column");
650 ::mlir::Builder odsBuilder(getContext());
652 if(attr && (attr == ((
false) ? odsBuilder.getUnitAttr() :
nullptr)))
653 elidedAttrs.push_back(
"signal");
655 _odsPrinter.printOptionalAttrDict((*this)->getAttrs(), elidedAttrs);
673 bool isVariadic[] = {
false,
true};
674 int prevVariadicCount = 0;
675 for (
unsigned i = 0; i < index; ++i)
676 if (isVariadic[i]) ++prevVariadicCount;
680 int variadicSize = (odsOperandsSize - 1) / 1;
685 int start = index + (variadicSize - 1) * prevVariadicCount;
686 int size = isVariadic[index] ? variadicSize : 1;
687 return {start, size};
692 return attr.getValue();
697 return attr ? ::std::optional<::mlir::Attribute>(attr) : (::std::nullopt);
701 auto attr = ::llvm::dyn_cast_or_null<::mlir::DenseI32ArrayAttr>(
getProperties().numDimsPerMap);
720 if (!tblgen_mapOpGroupSizes)
return emitError(loc,
"'struct.readm' op ""requires attribute 'mapOpGroupSizes'");
722 if (!tblgen_member_name)
return emitError(loc,
"'struct.readm' op ""requires attribute 'member_name'");
726 if (tblgen_member_name && !((::llvm::isa<::mlir::FlatSymbolRefAttr>(tblgen_member_name))))
727 return emitError(loc,
"'struct.readm' op ""attribute 'member_name' failed to satisfy constraint: flat symbol reference attribute");
729 if (tblgen_tableOffset && !(((::llvm::isa<::mlir::SymbolRefAttr>(tblgen_tableOffset))) || (((::llvm::isa<::mlir::IntegerAttr>(tblgen_tableOffset))) && ((::llvm::isa<::mlir::IndexType>(::llvm::cast<::mlir::IntegerAttr>(tblgen_tableOffset).getType())))) || ((::llvm::isa<::mlir::AffineMapAttr>(tblgen_tableOffset)))))
730 return emitError(loc,
"'struct.readm' op ""attribute 'tableOffset' failed to satisfy constraint: symbol reference attribute or index attribute or AffineMap attribute");
732 if (tblgen_numDimsPerMap && !((::llvm::isa<::mlir::DenseI32ArrayAttr>(tblgen_numDimsPerMap))))
733 return emitError(loc,
"'struct.readm' op ""attribute 'numDimsPerMap' failed to satisfy constraint: i32 dense array attribute");
735 if (tblgen_mapOpGroupSizes && !((::llvm::isa<::mlir::DenseI32ArrayAttr>(tblgen_mapOpGroupSizes))))
736 return emitError(loc,
"'struct.readm' op ""attribute 'mapOpGroupSizes' failed to satisfy constraint: i32 dense array attribute");
737 return ::mlir::success();
741 bool isVariadic[] = {
false,
true};
742 int prevVariadicCount = 0;
743 for (
unsigned i = 0; i < index; ++i)
744 if (isVariadic[i]) ++prevVariadicCount;
748 int variadicSize = (getOperation()->getNumOperands() - 1) / 1;
753 int start = index + (variadicSize - 1) * prevVariadicCount;
754 int size = isVariadic[index] ? variadicSize : 1;
755 return {start, size};
760 auto mutableRange = ::mlir::MutableOperandRange(getOperation(), range.first, range.second);
765 ::mlir::DictionaryAttr dict = ::llvm::dyn_cast<::mlir::DictionaryAttr>(attr);
767 emitError() <<
"expected DictionaryAttr to set properties";
768 return ::mlir::failure();
773 auto attr = dict.get(
"mapOpGroupSizes");
775 auto convertedAttr = ::llvm::dyn_cast<std::remove_reference_t<
decltype(propStorage)>>(attr);
777 propStorage = convertedAttr;
779 emitError() <<
"Invalid attribute `mapOpGroupSizes` in property conversion: " << attr;
780 return ::mlir::failure();
787 auto attr = dict.get(
"member_name");
789 auto convertedAttr = ::llvm::dyn_cast<std::remove_reference_t<
decltype(propStorage)>>(attr);
791 propStorage = convertedAttr;
793 emitError() <<
"Invalid attribute `member_name` in property conversion: " << attr;
794 return ::mlir::failure();
801 auto attr = dict.get(
"numDimsPerMap");
803 auto convertedAttr = ::llvm::dyn_cast<std::remove_reference_t<
decltype(propStorage)>>(attr);
805 propStorage = convertedAttr;
807 emitError() <<
"Invalid attribute `numDimsPerMap` in property conversion: " << attr;
808 return ::mlir::failure();
815 auto attr = dict.get(
"tableOffset");
817 auto convertedAttr = ::llvm::dyn_cast<std::remove_reference_t<
decltype(propStorage)>>(attr);
819 propStorage = convertedAttr;
821 emitError() <<
"Invalid attribute `tableOffset` in property conversion: " << attr;
822 return ::mlir::failure();
826 return ::mlir::success();
830 ::mlir::SmallVector<::mlir::NamedAttribute> attrs;
831 ::mlir::Builder odsBuilder{ctx};
836 attrs.push_back(odsBuilder.getNamedAttr(
"mapOpGroupSizes",
843 attrs.push_back(odsBuilder.getNamedAttr(
"member_name",
850 attrs.push_back(odsBuilder.getNamedAttr(
"numDimsPerMap",
857 attrs.push_back(odsBuilder.getNamedAttr(
"tableOffset",
862 return odsBuilder.getDictionaryAttr(attrs);
867 return llvm::hash_combine(
869 llvm::hash_value(prop.
member_name.getAsOpaquePointer()),
871 llvm::hash_value(prop.
tableOffset.getAsOpaquePointer()));
875 if (name ==
"mapOpGroupSizes")
878 if (name ==
"member_name")
881 if (name ==
"numDimsPerMap")
884 if (name ==
"tableOffset")
890 if (name ==
"mapOpGroupSizes") {
895 if (name ==
"member_name") {
900 if (name ==
"numDimsPerMap") {
905 if (name ==
"tableOffset") {
921::llvm::LogicalResult
MemberReadOp::verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError) {
924 if (attr && ::mlir::failed(__mlir_ods_local_attr_constraint_Ops6(attr,
"mapOpGroupSizes", emitError)))
925 return ::mlir::failure();
930 if (attr && ::mlir::failed(__mlir_ods_local_attr_constraint_Ops4(attr,
"member_name", emitError)))
931 return ::mlir::failure();
936 if (attr && ::mlir::failed(__mlir_ods_local_attr_constraint_Ops6(attr,
"numDimsPerMap", emitError)))
937 return ::mlir::failure();
942 if (attr && ::mlir::failed(__mlir_ods_local_attr_constraint_Ops5(attr,
"tableOffset", emitError)))
943 return ::mlir::failure();
945 return ::mlir::success();
949 auto &prop = state.getOrAddProperties<
Properties>(); (void)prop;
951 return ::mlir::failure();
953 if (::mlir::failed(reader.readAttribute(prop.
member_name)))
954 return ::mlir::failure();
956 if (::mlir::failed(reader.readOptionalAttribute(prop.
numDimsPerMap)))
957 return ::mlir::failure();
959 if (::mlir::failed(reader.readOptionalAttribute(prop.
tableOffset)))
960 return ::mlir::failure();
961 return ::mlir::success();
965 auto &prop = getProperties(); (void)prop;
976 return attr.getValue();
981 return attr ? ::std::optional<::mlir::Attribute>(attr) : (::std::nullopt);
995 getProperties().member_name = ::mlir::SymbolRefAttr::get(::mlir::Builder((*this)->getContext()).getContext(), attrValue);
999 getProperties().numDimsPerMap = ::mlir::Builder((*this)->getContext()).getDenseI32ArrayAttr(attrValue);
1003 getProperties().mapOpGroupSizes = ::mlir::Builder((*this)->getContext()).getDenseI32ArrayAttr(attrValue);
1006void MemberReadOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type resultType, ::mlir::Value
component, ::mlir::StringAttr member, ::mlir::SymbolRefAttr dist) {
1007 build(odsBuilder, odsState, resultType,
component, member, dist, ::mlir::ValueRange(), std::nullopt);
1011void MemberReadOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type resultType, ::mlir::Value
component, ::mlir::StringAttr member, ::mlir::IntegerAttr dist) {
1012 build(odsBuilder, odsState, resultType,
component, member, dist, ::mlir::ValueRange(), std::nullopt);
1017 ::mlir::Builder odsBuilder(opName.getContext());
1019 properties.
numDimsPerMap = odsBuilder.getDenseI32ArrayAttr({});
1023 auto tblgen_mapOpGroupSizes = getProperties().mapOpGroupSizes; (void)tblgen_mapOpGroupSizes;
1024 if (!tblgen_mapOpGroupSizes)
return emitOpError(
"requires attribute 'mapOpGroupSizes'");
1025 auto tblgen_member_name = getProperties().member_name; (void)tblgen_member_name;
1026 if (!tblgen_member_name)
return emitOpError(
"requires attribute 'member_name'");
1027 auto tblgen_numDimsPerMap = getProperties().numDimsPerMap; (void)tblgen_numDimsPerMap;
1028 auto tblgen_tableOffset = getProperties().tableOffset; (void)tblgen_tableOffset;
1030 if (::mlir::failed(__mlir_ods_local_attr_constraint_Ops4(*
this, tblgen_member_name,
"member_name")))
1031 return ::mlir::failure();
1033 if (::mlir::failed(__mlir_ods_local_attr_constraint_Ops5(*
this, tblgen_tableOffset,
"tableOffset")))
1034 return ::mlir::failure();
1036 if (::mlir::failed(__mlir_ods_local_attr_constraint_Ops6(*
this, tblgen_numDimsPerMap,
"numDimsPerMap")))
1037 return ::mlir::failure();
1039 if (::mlir::failed(__mlir_ods_local_attr_constraint_Ops6(*
this, tblgen_mapOpGroupSizes,
"mapOpGroupSizes")))
1040 return ::mlir::failure();
1042 unsigned index = 0; (void)index;
1045 for (
auto v : valueGroup0) {
1046 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops1(*
this, v.getType(),
"operand", index++)))
1047 return ::mlir::failure();
1050 if (::mlir::failed(::mlir::OpTrait::impl::verifyValueSizeAttr(*
this,
"mapOpGroupSizes",
"mapOperands", valueGroup1.size())))
1051 return ::mlir::failure();
1053 for (
auto v : valueGroup1) {
1054 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops2(*
this, v.getType(),
"operand", index++)))
1055 return ::mlir::failure();
1059 unsigned index = 0; (void)index;
1062 for (
auto v : valueGroup0) {
1063 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops3(*
this, v.getType(),
"result", index++)))
1064 return ::mlir::failure();
1067 return ::mlir::success();
1072 return ::mlir::success();
1073 return ::mlir::failure();
1077 ::mlir::OpAsmParser::UnresolvedOperand componentRawOperand{};
1078 ::llvm::ArrayRef<::mlir::OpAsmParser::UnresolvedOperand> componentOperands(&componentRawOperand, 1); ::llvm::SMLoc componentOperandsLoc;
1079 (void)componentOperandsLoc;
1080 ::mlir::FlatSymbolRefAttr member_nameAttr;
1081 ::llvm::SmallVector<::mlir::OpAsmParser::UnresolvedOperand, 4> mapOperandsOperands;
1082 llvm::SmallVector<int32_t> mapOperandsOperandGroupSizes;
1083 ::llvm::SMLoc mapOperandsOperandsLoc;
1084 (void)mapOperandsOperandsLoc;
1085 ::mlir::DenseI32ArrayAttr numDimsPerMapAttr;
1086 ::mlir::Type componentRawType{};
1087 ::llvm::ArrayRef<::mlir::Type> componentTypes(&componentRawType, 1);
1088 ::mlir::Type valRawType{};
1089 ::llvm::ArrayRef<::mlir::Type> valTypes(&valRawType, 1);
1091 componentOperandsLoc = parser.getCurrentLocation();
1092 if (parser.parseOperand(componentRawOperand))
1093 return ::mlir::failure();
1094 if (parser.parseLSquare())
1095 return ::mlir::failure();
1097 if (parser.parseCustomAttributeWithFallback(member_nameAttr, parser.getBuilder().getType<::mlir::NoneType>())) {
1098 return ::mlir::failure();
1101 if (parser.parseRSquare())
1102 return ::mlir::failure();
1103 if (::mlir::succeeded(parser.parseOptionalLBrace())) {
1105 mapOperandsOperandsLoc = parser.getCurrentLocation();
1106 ::llvm::SmallVector<::llvm::SmallVector<::mlir::OpAsmParser::UnresolvedOperand>> mapOperandsOperandGroups;
1108 if (odsResult) return ::mlir::failure();
1109 for (
const auto &subRange : mapOperandsOperandGroups) {
1110 mapOperandsOperands.append(subRange.begin(), subRange.end());
1111 mapOperandsOperandGroupSizes.push_back(subRange.size());
1113 if (numDimsPerMapAttr)
1116 if (parser.parseRBrace())
1117 return ::mlir::failure();
1119 if (parser.parseColon())
1120 return ::mlir::failure();
1124 if (parser.parseCustomTypeWithFallback(type))
1125 return ::mlir::failure();
1126 componentRawType = type;
1128 if (parser.parseComma())
1129 return ::mlir::failure();
1133 if (parser.parseCustomTypeWithFallback(type))
1134 return ::mlir::failure();
1138 auto loc = parser.getCurrentLocation();(void)loc;
1139 if (parser.parseOptionalAttrDict(result.attributes))
1140 return ::mlir::failure();
1142 return parser.emitError(loc) <<
"'" << result.name.getStringRef() <<
"' op ";
1144 return ::mlir::failure();
1146 result.getOrAddProperties<
MemberReadOp::Properties>().mapOpGroupSizes = parser.getBuilder().getDenseI32ArrayAttr(mapOperandsOperandGroupSizes);
1147 ::mlir::Type odsBuildableType0 = parser.getBuilder().getIndexType();
1148 result.addTypes(valTypes);
1149 if (parser.resolveOperands(componentOperands, componentTypes, componentOperandsLoc, result.operands))
1150 return ::mlir::failure();
1151 if (parser.resolveOperands(mapOperandsOperands, odsBuildableType0, mapOperandsOperandsLoc, result.operands))
1152 return ::mlir::failure();
1153 return ::mlir::success();
1163 _odsPrinter <<
' ' <<
"{";
1167 _odsPrinter <<
' ' <<
":";
1171 if (
auto validType = ::llvm::dyn_cast<::llzk::component::StructType>(type))
1172 _odsPrinter.printStrippedAttrOrType(validType);
1174 _odsPrinter << type;
1179 auto type =
getVal().getType();
1180 if (
auto validType = ::llvm::dyn_cast<::mlir::Type>(type))
1181 _odsPrinter.printStrippedAttrOrType(validType);
1183 _odsPrinter << type;
1185 ::llvm::SmallVector<::llvm::StringRef, 2> elidedAttrs;
1186 elidedAttrs.push_back(
"mapOpGroupSizes");
1187 elidedAttrs.push_back(
"member_name");
1188 elidedAttrs.push_back(
"numDimsPerMap");
1190 ::mlir::Builder odsBuilder(getContext());
1192 if(attr && (attr == odsBuilder.getDenseI32ArrayAttr({})))
1193 elidedAttrs.push_back(
"numDimsPerMap");
1195 _odsPrinter.printOptionalAttrDict((*this)->getAttrs(), elidedAttrs);
1207namespace component {
1218 return attr.getValue();
1226 if (!tblgen_member_name)
return emitError(loc,
"'struct.writem' op ""requires attribute 'member_name'");
1228 if (tblgen_member_name && !((::llvm::isa<::mlir::FlatSymbolRefAttr>(tblgen_member_name))))
1229 return emitError(loc,
"'struct.writem' op ""attribute 'member_name' failed to satisfy constraint: flat symbol reference attribute");
1230 return ::mlir::success();
1234 ::mlir::DictionaryAttr dict = ::llvm::dyn_cast<::mlir::DictionaryAttr>(attr);
1236 emitError() <<
"expected DictionaryAttr to set properties";
1237 return ::mlir::failure();
1242 auto attr = dict.get(
"member_name");
1244 auto convertedAttr = ::llvm::dyn_cast<std::remove_reference_t<
decltype(propStorage)>>(attr);
1245 if (convertedAttr) {
1246 propStorage = convertedAttr;
1248 emitError() <<
"Invalid attribute `member_name` in property conversion: " << attr;
1249 return ::mlir::failure();
1253 return ::mlir::success();
1257 ::mlir::SmallVector<::mlir::NamedAttribute> attrs;
1258 ::mlir::Builder odsBuilder{ctx};
1263 attrs.push_back(odsBuilder.getNamedAttr(
"member_name",
1268 return odsBuilder.getDictionaryAttr(attrs);
1273 return llvm::hash_combine(
1274 llvm::hash_value(prop.
member_name.getAsOpaquePointer()));
1278 if (name ==
"member_name")
1280 return std::nullopt;
1284 if (name ==
"member_name") {
1297 if (attr && ::mlir::failed(__mlir_ods_local_attr_constraint_Ops4(attr,
"member_name", emitError)))
1298 return ::mlir::failure();
1300 return ::mlir::success();
1304 auto &prop = state.getOrAddProperties<
Properties>(); (void)prop;
1305 if (::mlir::failed(reader.readAttribute(prop.
member_name)))
1306 return ::mlir::failure();
1307 return ::mlir::success();
1311 auto &prop = getProperties(); (void)prop;
1317 return attr.getValue();
1321 getProperties().member_name = ::mlir::SymbolRefAttr::get(::mlir::Builder((*this)->getContext()).getContext(), attrValue);
1324void MemberWriteOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value
component, ::mlir::FlatSymbolRefAttr member_name, ::mlir::Value val) {
1326 odsState.addOperands(val);
1327 odsState.getOrAddProperties<
Properties>().member_name = member_name;
1330void MemberWriteOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value
component, ::mlir::FlatSymbolRefAttr member_name, ::mlir::Value val) {
1332 odsState.addOperands(val);
1333 odsState.getOrAddProperties<
Properties>().member_name = member_name;
1334 assert(resultTypes.size() == 0u &&
"mismatched number of results");
1335 odsState.addTypes(resultTypes);
1338void MemberWriteOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value
component, ::llvm::StringRef member_name, ::mlir::Value val) {
1340 odsState.addOperands(val);
1341 odsState.getOrAddProperties<
Properties>().member_name = ::mlir::SymbolRefAttr::get(odsBuilder.getContext(), member_name);
1344void MemberWriteOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value
component, ::llvm::StringRef member_name, ::mlir::Value val) {
1346 odsState.addOperands(val);
1347 odsState.getOrAddProperties<
Properties>().member_name = ::mlir::SymbolRefAttr::get(odsBuilder.getContext(), member_name);
1348 assert(resultTypes.size() == 0u &&
"mismatched number of results");
1349 odsState.addTypes(resultTypes);
1352void MemberWriteOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
1353 assert(operands.size() == 2u &&
"mismatched number of parameters");
1354 odsState.addOperands(operands);
1355 odsState.addAttributes(attributes);
1356 assert(resultTypes.size() == 0u &&
"mismatched number of return types");
1357 odsState.addTypes(resultTypes);
1359 if (!attributes.empty()) {
1360 ::mlir::OpaqueProperties properties =
1362 std::optional<::mlir::RegisteredOperationName> info =
1363 odsState.name.getRegisteredInfo();
1364 if (failed(info->setOpPropertiesFromAttribute(odsState.name, properties,
1365 odsState.attributes.getDictionary(odsState.getContext()),
nullptr)))
1366 ::llvm::report_fatal_error(
"Property conversion failed.");
1371 auto tblgen_member_name = getProperties().member_name; (void)tblgen_member_name;
1372 if (!tblgen_member_name)
return emitOpError(
"requires attribute 'member_name'");
1374 if (::mlir::failed(__mlir_ods_local_attr_constraint_Ops4(*
this, tblgen_member_name,
"member_name")))
1375 return ::mlir::failure();
1377 unsigned index = 0; (void)index;
1380 for (
auto v : valueGroup0) {
1381 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops1(*
this, v.getType(),
"operand", index++)))
1382 return ::mlir::failure();
1386 for (
auto v : valueGroup1) {
1387 if (::mlir::failed(__mlir_ods_local_type_constraint_Ops3(*
this, v.getType(),
"operand", index++)))
1388 return ::mlir::failure();
1391 return ::mlir::success();
1399 ::mlir::OpAsmParser::UnresolvedOperand componentRawOperand{};
1400 ::llvm::ArrayRef<::mlir::OpAsmParser::UnresolvedOperand> componentOperands(&componentRawOperand, 1); ::llvm::SMLoc componentOperandsLoc;
1401 (void)componentOperandsLoc;
1402 ::mlir::FlatSymbolRefAttr member_nameAttr;
1403 ::mlir::OpAsmParser::UnresolvedOperand valRawOperand{};
1404 ::llvm::ArrayRef<::mlir::OpAsmParser::UnresolvedOperand> valOperands(&valRawOperand, 1); ::llvm::SMLoc valOperandsLoc;
1405 (void)valOperandsLoc;
1406 ::mlir::Type componentRawType{};
1407 ::llvm::ArrayRef<::mlir::Type> componentTypes(&componentRawType, 1);
1408 ::mlir::Type valRawType{};
1409 ::llvm::ArrayRef<::mlir::Type> valTypes(&valRawType, 1);
1411 componentOperandsLoc = parser.getCurrentLocation();
1412 if (parser.parseOperand(componentRawOperand))
1413 return ::mlir::failure();
1414 if (parser.parseLSquare())
1415 return ::mlir::failure();
1417 if (parser.parseCustomAttributeWithFallback(member_nameAttr, parser.getBuilder().getType<::mlir::NoneType>())) {
1418 return ::mlir::failure();
1421 if (parser.parseRSquare())
1422 return ::mlir::failure();
1423 if (parser.parseEqual())
1424 return ::mlir::failure();
1426 valOperandsLoc = parser.getCurrentLocation();
1427 if (parser.parseOperand(valRawOperand))
1428 return ::mlir::failure();
1429 if (parser.parseColon())
1430 return ::mlir::failure();
1434 if (parser.parseCustomTypeWithFallback(type))
1435 return ::mlir::failure();
1436 componentRawType = type;
1438 if (parser.parseComma())
1439 return ::mlir::failure();
1443 if (parser.parseCustomTypeWithFallback(type))
1444 return ::mlir::failure();
1448 auto loc = parser.getCurrentLocation();(void)loc;
1449 if (parser.parseOptionalAttrDict(result.attributes))
1450 return ::mlir::failure();
1452 return parser.emitError(loc) <<
"'" << result.name.getStringRef() <<
"' op ";
1454 return ::mlir::failure();
1456 if (parser.resolveOperands(componentOperands, componentTypes, componentOperandsLoc, result.operands))
1457 return ::mlir::failure();
1458 if (parser.resolveOperands(valOperands, valTypes, valOperandsLoc, result.operands))
1459 return ::mlir::failure();
1460 return ::mlir::success();
1469 _odsPrinter <<
' ' <<
"=";
1472 _odsPrinter <<
' ' <<
":";
1476 if (
auto validType = ::llvm::dyn_cast<::llzk::component::StructType>(type))
1477 _odsPrinter.printStrippedAttrOrType(validType);
1479 _odsPrinter << type;
1484 auto type =
getVal().getType();
1485 if (
auto validType = ::llvm::dyn_cast<::mlir::Type>(type))
1486 _odsPrinter.printStrippedAttrOrType(validType);
1488 _odsPrinter << type;
1490 ::llvm::SmallVector<::llvm::StringRef, 2> elidedAttrs;
1491 elidedAttrs.push_back(
"member_name");
1492 _odsPrinter.printOptionalAttrDict((*this)->getAttrs(), elidedAttrs);
1504namespace component {
1515 return attr.getValue();
1523 if (!tblgen_sym_name)
return emitError(loc,
"'struct.def' op ""requires attribute 'sym_name'");
1525 if (tblgen_sym_name && !((::llvm::isa<::mlir::StringAttr>(tblgen_sym_name))))
1526 return emitError(loc,
"'struct.def' op ""attribute 'sym_name' failed to satisfy constraint: string attribute");
1527 return ::mlir::success();
1531 ::mlir::DictionaryAttr dict = ::llvm::dyn_cast<::mlir::DictionaryAttr>(attr);
1533 emitError() <<
"expected DictionaryAttr to set properties";
1534 return ::mlir::failure();
1539 auto attr = dict.get(
"sym_name");
1541 auto convertedAttr = ::llvm::dyn_cast<std::remove_reference_t<
decltype(propStorage)>>(attr);
1542 if (convertedAttr) {
1543 propStorage = convertedAttr;
1545 emitError() <<
"Invalid attribute `sym_name` in property conversion: " << attr;
1546 return ::mlir::failure();
1550 return ::mlir::success();
1554 ::mlir::SmallVector<::mlir::NamedAttribute> attrs;
1555 ::mlir::Builder odsBuilder{ctx};
1558 const auto &propStorage = prop.
sym_name;
1560 attrs.push_back(odsBuilder.getNamedAttr(
"sym_name",
1565 return odsBuilder.getDictionaryAttr(attrs);
1570 return llvm::hash_combine(
1571 llvm::hash_value(prop.
sym_name.getAsOpaquePointer()));
1575 if (name ==
"sym_name")
1577 return std::nullopt;
1581 if (name ==
"sym_name") {
1582 prop.
sym_name = ::llvm::dyn_cast_or_null<std::remove_reference_t<
decltype(prop.
sym_name)>>(value);
1591::llvm::LogicalResult
StructDefOp::verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError) {
1594 if (attr && ::mlir::failed(__mlir_ods_local_attr_constraint_Ops1(attr,
"sym_name", emitError)))
1595 return ::mlir::failure();
1597 return ::mlir::success();
1602 return attr.getValue();
1606 getProperties().sym_name = ::mlir::Builder((*this)->getContext()).getStringAttr(attrValue);
1609void StructDefOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::StringAttr sym_name) {
1610 odsState.getOrAddProperties<
Properties>().sym_name = sym_name;
1611 (void)odsState.addRegion();
1614void StructDefOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::StringAttr sym_name) {
1615 odsState.getOrAddProperties<
Properties>().sym_name = sym_name;
1616 (void)odsState.addRegion();
1617 assert(resultTypes.size() == 0u &&
"mismatched number of results");
1618 odsState.addTypes(resultTypes);
1621void StructDefOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llvm::StringRef sym_name) {
1622 odsState.getOrAddProperties<
Properties>().sym_name = odsBuilder.getStringAttr(sym_name);
1623 (void)odsState.addRegion();
1626void StructDefOp::build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::llvm::StringRef sym_name) {
1627 odsState.getOrAddProperties<
Properties>().sym_name = odsBuilder.getStringAttr(sym_name);
1628 (void)odsState.addRegion();
1629 assert(resultTypes.size() == 0u &&
"mismatched number of results");
1630 odsState.addTypes(resultTypes);
1633void StructDefOp::build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes) {
1634 assert(operands.size() == 0u &&
"mismatched number of parameters");
1635 odsState.addOperands(operands);
1636 odsState.addAttributes(attributes);
1637 for (
unsigned i = 0; i != 1; ++i)
1638 (
void)odsState.addRegion();
1639 assert(resultTypes.size() == 0u &&
"mismatched number of return types");
1640 odsState.addTypes(resultTypes);
1642 if (!attributes.empty()) {
1643 ::mlir::OpaqueProperties properties =
1645 std::optional<::mlir::RegisteredOperationName> info =
1646 odsState.name.getRegisteredInfo();
1647 if (failed(info->setOpPropertiesFromAttribute(odsState.name, properties,
1648 odsState.attributes.getDictionary(odsState.getContext()),
nullptr)))
1649 ::llvm::report_fatal_error(
"Property conversion failed.");
1654 auto tblgen_sym_name = getProperties().sym_name; (void)tblgen_sym_name;
1655 if (!tblgen_sym_name)
return emitOpError(
"requires attribute 'sym_name'");
1657 if (::mlir::failed(__mlir_ods_local_attr_constraint_Ops1(*
this, tblgen_sym_name,
"sym_name")))
1658 return ::mlir::failure();
1660 unsigned index = 0; (void)index;
1662 for (
auto ®ion : ::llvm::MutableArrayRef((*this)->getRegion(0)))
1663 if (::mlir::failed(__mlir_ods_local_region_constraint_Ops1(*
this, region,
"bodyRegion", index++)))
1664 return ::mlir::failure();
1666 return ::mlir::success();
1674 ::mlir::StringAttr sym_nameAttr;
1675 std::unique_ptr<::mlir::Region> bodyRegionRegion = std::make_unique<::mlir::Region>();
1677 if (parser.parseSymbolName(sym_nameAttr))
1678 return ::mlir::failure();
1681 if (parser.parseRegion(*bodyRegionRegion))
1682 return ::mlir::failure();
1684 if (bodyRegionRegion->empty()) bodyRegionRegion->emplaceBlock();
1686 auto loc = parser.getCurrentLocation();(void)loc;
1687 if (parser.parseOptionalAttrDict(result.attributes))
1688 return ::mlir::failure();
1690 return parser.emitError(loc) <<
"'" << result.name.getStringRef() <<
"' op ";
1692 return ::mlir::failure();
1694 result.addRegion(std::move(bodyRegionRegion));
1695 return ::mlir::success();
1703 ::llvm::SmallVector<::llvm::StringRef, 2> elidedAttrs;
1704 elidedAttrs.push_back(
"sym_name");
1705 _odsPrinter.printOptionalAttrDict((*this)->getAttrs(), elidedAttrs);
CreateStructOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
::llvm::LogicalResult verify(::mlir::Location loc)
CreateStructOpAdaptor(CreateStructOp op)
::mlir::ValueRange getOperands()
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result)
::mlir::Operation::result_range getODSResults(unsigned index)
::llvm::LogicalResult verifyInvariantsImpl()
::llvm::LogicalResult verifyInvariants()
::mlir::TypedValue<::llzk::component::StructType > getResult()
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
void print(::mlir::OpAsmPrinter &_odsPrinter)
MemberDefOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::llvm::LogicalResult verify(::mlir::Location loc)
MemberDefOpAdaptor(MemberDefOp op)
::mlir::ValueRange getOperands()
::llvm::StringRef getSymName()
void setSignal(bool attrValue)
::mlir::StringAttr getTypeAttrName()
::mlir::StringAttr getColumnAttrName()
::llvm::LogicalResult verifyInvariants()
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
::llvm::LogicalResult verifyInvariantsImpl()
::mlir::UnitAttr getSignalAttr()
void print(::mlir::OpAsmPrinter &_odsPrinter)
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::StringAttr sym_name, ::mlir::TypeAttr type, bool isSignal=false, bool isColumn=false)
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
void setColumn(bool attrValue)
::mlir::TypeAttr getTypeAttr()
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
::mlir::StringAttr getSignalAttrName()
static llvm::hash_code computePropertiesHash(const Properties &prop)
::mlir::StringAttr getSymNameAttr()
void writeProperties(::mlir::DialectBytecodeWriter &writer)
void setType(::mlir::Type attrValue)
::llvm::LogicalResult verify()
FoldAdaptor::Properties Properties
void setSymName(::llvm::StringRef attrValue)
::mlir::UnitAttr getColumnAttr()
::mlir::StringAttr getSymNameAttrName()
MemberReadOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
MemberReadOpAdaptor(MemberReadOp op)
::llvm::LogicalResult verify(::mlir::Location loc)
::mlir::ValueRange getOperands()
::mlir::MutableOperandRangeRange getMapOperandsMutable()
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
::mlir::TypedValue<::llzk::component::StructType > getComponent()
static llvm::hash_code computePropertiesHash(const Properties &prop)
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
void setMapOpGroupSizes(::llvm::ArrayRef< int32_t > attrValue)
::mlir::TypedValue<::mlir::Type > getVal()
::std::optional<::mlir::Attribute > getTableOffset()
::mlir::OperandRangeRange getMapOperands()
bool isRead()
Return true if the op is a read, false if it's a write.
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type resultType, ::mlir::Value component, ::mlir::StringAttr member)
::llvm::LogicalResult verifyInvariantsImpl()
static void populateDefaultProperties(::mlir::OperationName opName, Properties &properties)
::mlir::FlatSymbolRefAttr getMemberNameAttr()
::llvm::ArrayRef< int32_t > getMapOpGroupSizes()
::mlir::StringAttr getMapOpGroupSizesAttrName()
void setNumDimsPerMap(::llvm::ArrayRef< int32_t > attrValue)
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
::mlir::Operation::result_range getODSResults(unsigned index)
::llvm::LogicalResult verifyInvariants()
::llvm::ArrayRef< int32_t > getNumDimsPerMap()
::llvm::StringRef getMemberName()
::mlir::StringAttr getTableOffsetAttrName()
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
void writeProperties(::mlir::DialectBytecodeWriter &writer)
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
::llvm::LogicalResult verify()
::mlir::Operation::operand_range getODSOperands(unsigned index)
::mlir::Attribute getTableOffsetAttr()
void setMemberName(::llvm::StringRef attrValue)
::mlir::StringAttr getMemberNameAttrName()
::mlir::DenseI32ArrayAttr getMapOpGroupSizesAttr()
void print(::mlir::OpAsmPrinter &_odsPrinter)
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
FoldAdaptor::Properties Properties
::mlir::DenseI32ArrayAttr getNumDimsPerMapAttr()
::mlir::StringAttr getNumDimsPerMapAttrName()
MemberWriteOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::llvm::LogicalResult verify(::mlir::Location loc)
MemberWriteOpAdaptor(MemberWriteOp op)
::mlir::ValueRange getOperands()
::mlir::TypedValue<::llzk::component::StructType > getComponent()
void setMemberName(::llvm::StringRef attrValue)
FoldAdaptor::Properties Properties
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
::mlir::FlatSymbolRefAttr getMemberNameAttr()
bool isRead()
Return true if the op is a read, false if it's a write.
::llvm::LogicalResult verifyInvariants()
void print(::mlir::OpAsmPrinter &_odsPrinter)
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value component, ::mlir::FlatSymbolRefAttr member_name, ::mlir::Value val)
void writeProperties(::mlir::DialectBytecodeWriter &writer)
::llvm::StringRef getMemberName()
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
::mlir::Operation::operand_range getODSOperands(unsigned index)
::llvm::LogicalResult verifyInvariantsImpl()
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
::mlir::TypedValue<::mlir::Type > getVal()
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
static llvm::hash_code computePropertiesHash(const Properties &prop)
::mlir::StringAttr getMemberNameAttrName()
StructDefOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
StructDefOpAdaptor(StructDefOp op)
::llvm::LogicalResult verify(::mlir::Location loc)
::mlir::ValueRange getOperands()
static llvm::hash_code computePropertiesHash(const Properties &prop)
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::StringAttr sym_name)
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
::mlir::Region & getBodyRegion()
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
::llvm::LogicalResult verifyInvariants()
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
::llvm::StringRef getSymName()
FoldAdaptor::Properties Properties
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
::mlir::StringAttr getSymNameAttr()
void setSymName(::llvm::StringRef attrValue)
::llvm::LogicalResult verifyInvariantsImpl()
::mlir::StringAttr getSymNameAttrName()
void print(::mlir::OpAsmPrinter &_odsPrinter)
::mlir::RegionRange odsRegions
::mlir::StringAttr getSymNameAttr()
::llvm::StringRef getSymName()
const Properties & getProperties()
::mlir::UnitAttr getColumnAttr()
::mlir::DictionaryAttr odsAttrs
::mlir::UnitAttr getSignalAttr()
MemberDefOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::std::optional<::mlir::OperationName > odsOpName
::mlir::TypeAttr getTypeAttr()
::mlir::DictionaryAttr odsAttrs
const Properties & getProperties()
::mlir::RegionRange odsRegions
::std::optional<::mlir::Attribute > getTableOffset()
::llvm::ArrayRef< int32_t > getNumDimsPerMap()
::mlir::DenseI32ArrayAttr getMapOpGroupSizesAttr()
::mlir::Attribute getTableOffsetAttr()
::llvm::ArrayRef< int32_t > getMapOpGroupSizes()
MemberReadOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::std::optional<::mlir::OperationName > odsOpName
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
::llvm::StringRef getMemberName()
::mlir::FlatSymbolRefAttr getMemberNameAttr()
::mlir::DenseI32ArrayAttr getNumDimsPerMapAttr()
MemberWriteOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::llvm::StringRef getMemberName()
::std::optional<::mlir::OperationName > odsOpName
::mlir::DictionaryAttr odsAttrs
const Properties & getProperties()
::mlir::FlatSymbolRefAttr getMemberNameAttr()
::mlir::RegionRange odsRegions
::mlir::RegionRange getRegions()
::mlir::RegionRange odsRegions
::mlir::DictionaryAttr odsAttrs
StructDefOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
::mlir::StringAttr getSymNameAttr()
::std::optional<::mlir::OperationName > odsOpName
::llvm::StringRef getSymName()
const Properties & getProperties()
bool isValidType(Type type)
void printMultiDimAndSymbolList(mlir::OpAsmPrinter &printer, mlir::Operation *op, mlir::OperandRangeRange multiMapOperands, mlir::DenseI32ArrayAttr numDimsPerMap)
mlir::ParseResult parseMultiDimAndSymbolList(mlir::OpAsmParser &parser, mlir::SmallVector< mlir::SmallVector< mlir::OpAsmParser::UnresolvedOperand > > &multiMapOperands, mlir::DenseI32ArrayAttr &numDimsPerMap)
mapOpGroupSizesTy mapOpGroupSizes
numDimsPerMapTy numDimsPerMap
tableOffsetTy tableOffset
member_nameTy member_name
member_nameTy member_name