LLZK 0.1.0
An open-source IR for Zero Knowledge (ZK) circuits
Loading...
Searching...
No Matches
Ops.h.inc
Go to the documentation of this file.
1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2|* *|
3|* Op Declarations *|
4|* *|
5|* Automatically generated file, do not edit! *|
6|* From: Ops.td *|
7|* *|
8\*===----------------------------------------------------------------------===*/
9
10namespace llzk {
11namespace component {
12class CreateStructOp;
13} // namespace component
14} // namespace llzk
15namespace llzk {
16namespace component {
17class MemberDefOp;
18} // namespace component
19} // namespace llzk
20namespace llzk {
21namespace component {
22class MemberReadOp;
23} // namespace component
24} // namespace llzk
25namespace llzk {
26namespace component {
27class MemberWriteOp;
28} // namespace component
29} // namespace llzk
30namespace llzk {
31namespace component {
32class StructDefOp;
33} // namespace component
34} // namespace llzk
35#ifdef GET_OP_CLASSES
36#undef GET_OP_CLASSES
37
38namespace llzk {
39namespace component {
40
41//===----------------------------------------------------------------------===//
42// ::llzk::component::CreateStructOp declarations
43//===----------------------------------------------------------------------===//
44
45namespace detail {
47public:
48protected:
49 ::mlir::DictionaryAttr odsAttrs;
50 ::std::optional<::mlir::OperationName> odsOpName;
51 ::mlir::RegionRange odsRegions;
52public:
53 CreateStructOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
54 odsOpName.emplace("struct.new", odsAttrs.getContext());
55 }
56
57 CreateStructOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
58
59 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
60 return {index, 1};
61 }
62
63 ::mlir::DictionaryAttr getAttributes() {
64 return odsAttrs;
65 }
66
67};
68} // namespace detail
69template <typename RangeT>
71 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
73public:
74 CreateStructOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
75
76 CreateStructOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : CreateStructOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
77
78 CreateStructOpGenericAdaptor(RangeT values, const CreateStructOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
79
80 template <typename LateInst = CreateStructOp, typename = std::enable_if_t<std::is_same_v<LateInst, CreateStructOp>>>
81 CreateStructOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
82
83 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
84 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
85 }
86
87 RangeT getODSOperands(unsigned index) {
88 auto valueRange = getODSOperandIndexAndLength(index);
89 return {std::next(odsOperands.begin(), valueRange.first),
90 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
91 }
92
93 RangeT getOperands() {
94 return odsOperands;
95 }
96
97private:
98 RangeT odsOperands;
99};
100class CreateStructOpAdaptor : public CreateStructOpGenericAdaptor<::mlir::ValueRange> {
101public:
104
105 ::llvm::LogicalResult verify(::mlir::Location loc);
106};
107class CreateStructOp : public ::mlir::Op<CreateStructOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::component::StructType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::ZeroOperands, ::llzk::function::WitnessGen, ::mlir::OpTrait::OpInvariants, ::mlir::OpAsmOpInterface::Trait, ::mlir::SymbolUserOpInterface::Trait> {
108public:
109 using Op::Op;
110 using Op::print;
112 template <typename RangeT>
115 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
116 return {};
117 }
118
119 static constexpr ::llvm::StringLiteral getOperationName() {
120 return ::llvm::StringLiteral("struct.new");
121 }
122
123 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
124 return {index, 1};
125 }
126
127 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
128 auto valueRange = getODSOperandIndexAndLength(index);
129 return {std::next(getOperation()->operand_begin(), valueRange.first),
130 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
131 }
132
133 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
134 return {index, 1};
135 }
136
137 ::mlir::Operation::result_range getODSResults(unsigned index) {
138 auto valueRange = getODSResultIndexAndLength(index);
139 return {std::next(getOperation()->result_begin(), valueRange.first),
140 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
141 }
142
143 ::mlir::TypedValue<::llzk::component::StructType> getResult() {
144 return ::llvm::cast<::mlir::TypedValue<::llzk::component::StructType>>(*getODSResults(0).begin());
145 }
146
147 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result);
148 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes);
149 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
150 ::llvm::LogicalResult verifyInvariantsImpl();
151 ::llvm::LogicalResult verifyInvariants();
152 void getAsmResultNames(::mlir::OpAsmSetValueNameFn setNameFn);
153 ::llvm::LogicalResult verifySymbolUses(::mlir::SymbolTableCollection &symbolTable);
154 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
155 void print(::mlir::OpAsmPrinter &_odsPrinter);
156public:
157};
158} // namespace component
159} // namespace llzk
160MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::component::CreateStructOp)
161
162namespace llzk {
163namespace component {
164
165//===----------------------------------------------------------------------===//
166// ::llzk::component::MemberDefOp declarations
167//===----------------------------------------------------------------------===//
168
169namespace detail {
171public:
172 struct Properties {
173 using columnTy = ::mlir::UnitAttr;
175
176 auto getColumn() {
177 auto &propStorage = this->column;
178 return ::llvm::dyn_cast_or_null<::mlir::UnitAttr>(propStorage);
179 }
180 void setColumn(const ::mlir::UnitAttr &propValue) {
181 this->column = propValue;
182 }
183 using signalTy = ::mlir::UnitAttr;
185
186 auto getSignal() {
187 auto &propStorage = this->signal;
188 return ::llvm::dyn_cast_or_null<::mlir::UnitAttr>(propStorage);
189 }
190 void setSignal(const ::mlir::UnitAttr &propValue) {
191 this->signal = propValue;
192 }
193 using sym_nameTy = ::mlir::StringAttr;
195
196 auto getSymName() {
197 auto &propStorage = this->sym_name;
198 return ::llvm::cast<::mlir::StringAttr>(propStorage);
199 }
200 void setSymName(const ::mlir::StringAttr &propValue) {
201 this->sym_name = propValue;
202 }
203 using typeTy = ::mlir::TypeAttr;
205
206 auto getType() {
207 auto &propStorage = this->type;
208 return ::llvm::cast<::mlir::TypeAttr>(propStorage);
209 }
210 void setType(const ::mlir::TypeAttr &propValue) {
211 this->type = propValue;
212 }
213 bool operator==(const Properties &rhs) const {
214 return
215 rhs.column == this->column &&
216 rhs.signal == this->signal &&
217 rhs.sym_name == this->sym_name &&
218 rhs.type == this->type &&
219 true;
220 }
221 bool operator!=(const Properties &rhs) const {
222 return !(*this == rhs);
223 }
224 };
225protected:
226 ::mlir::DictionaryAttr odsAttrs;
227 ::std::optional<::mlir::OperationName> odsOpName;
229 ::mlir::RegionRange odsRegions;
230public:
231 MemberDefOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
232 odsOpName.emplace("struct.member", odsAttrs.getContext());
233 }
234
236
237 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
238 return {index, 1};
239 }
240
242 return properties;
243 }
244
245 ::mlir::DictionaryAttr getAttributes() {
246 return odsAttrs;
247 }
248
249 ::mlir::StringAttr getSymNameAttr() {
250 auto attr = ::llvm::cast<::mlir::StringAttr>(getProperties().sym_name);
251 return attr;
252 }
253
254 ::llvm::StringRef getSymName();
255 ::mlir::TypeAttr getTypeAttr() {
256 auto attr = ::llvm::cast<::mlir::TypeAttr>(getProperties().type);
257 return attr;
258 }
259
260 ::mlir::Type getType();
261 ::mlir::UnitAttr getColumnAttr();
262 bool getColumn();
263 ::mlir::UnitAttr getSignalAttr();
264 bool getSignal();
265};
266} // namespace detail
267template <typename RangeT>
269 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
271public:
272 MemberDefOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
273
274 MemberDefOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : MemberDefOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
275
276 MemberDefOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : MemberDefOpGenericAdaptor(values, attrs, Properties{}, {}) {}
277
278 MemberDefOpGenericAdaptor(RangeT values, const MemberDefOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
279
280 template <typename LateInst = MemberDefOp, typename = std::enable_if_t<std::is_same_v<LateInst, MemberDefOp>>>
281 MemberDefOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
282
283 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
284 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
285 }
286
287 RangeT getODSOperands(unsigned index) {
288 auto valueRange = getODSOperandIndexAndLength(index);
289 return {std::next(odsOperands.begin(), valueRange.first),
290 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
291 }
292
293 RangeT getOperands() {
294 return odsOperands;
295 }
296
297private:
298 RangeT odsOperands;
299};
300class MemberDefOpAdaptor : public MemberDefOpGenericAdaptor<::mlir::ValueRange> {
301public:
304
305 ::llvm::LogicalResult verify(::mlir::Location loc);
306};
307class MemberDefOp : public ::mlir::Op<MemberDefOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::ZeroOperands, ::mlir::OpTrait::HasParent<::llzk::component::StructDefOp>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::BytecodeOpInterface::Trait, ::mlir::SymbolUserOpInterface::Trait, ::mlir::SymbolOpInterface::Trait> {
308public:
309 using Op::Op;
310 using Op::print;
312 template <typename RangeT>
316 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
317 static ::llvm::StringRef attrNames[] = {::llvm::StringRef("column"), ::llvm::StringRef("signal"), ::llvm::StringRef("sym_name"), ::llvm::StringRef("type")};
318 return ::llvm::ArrayRef(attrNames);
319 }
320
321 ::mlir::StringAttr getColumnAttrName() {
322 return getAttributeNameForIndex(0);
323 }
324
325 static ::mlir::StringAttr getColumnAttrName(::mlir::OperationName name) {
326 return getAttributeNameForIndex(name, 0);
327 }
328
329 ::mlir::StringAttr getSignalAttrName() {
330 return getAttributeNameForIndex(1);
331 }
332
333 static ::mlir::StringAttr getSignalAttrName(::mlir::OperationName name) {
334 return getAttributeNameForIndex(name, 1);
335 }
336
337 ::mlir::StringAttr getSymNameAttrName() {
338 return getAttributeNameForIndex(2);
339 }
340
341 static ::mlir::StringAttr getSymNameAttrName(::mlir::OperationName name) {
342 return getAttributeNameForIndex(name, 2);
343 }
344
345 ::mlir::StringAttr getTypeAttrName() {
346 return getAttributeNameForIndex(3);
347 }
348
349 static ::mlir::StringAttr getTypeAttrName(::mlir::OperationName name) {
350 return getAttributeNameForIndex(name, 3);
351 }
352
353 static constexpr ::llvm::StringLiteral getOperationName() {
354 return ::llvm::StringLiteral("struct.member");
355 }
356
357 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
358 return {index, 1};
359 }
360
361 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
362 auto valueRange = getODSOperandIndexAndLength(index);
363 return {std::next(getOperation()->operand_begin(), valueRange.first),
364 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
365 }
366
367 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
368 return {index, 1};
369 }
370
371 ::mlir::Operation::result_range getODSResults(unsigned index) {
372 auto valueRange = getODSResultIndexAndLength(index);
373 return {std::next(getOperation()->result_begin(), valueRange.first),
374 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
375 }
376
377 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
378 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
379 static llvm::hash_code computePropertiesHash(const Properties &prop);
380 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
381 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
382 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
383 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
384 static ::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
385 void writeProperties(::mlir::DialectBytecodeWriter &writer);
386 ::mlir::StringAttr getSymNameAttr() {
387 return ::llvm::cast<::mlir::StringAttr>(getProperties().sym_name);
388 }
389
390 ::llvm::StringRef getSymName();
391 ::mlir::TypeAttr getTypeAttr() {
392 return ::llvm::cast<::mlir::TypeAttr>(getProperties().type);
393 }
394
395 ::mlir::Type getType();
396 ::mlir::UnitAttr getColumnAttr() {
397 return ::llvm::dyn_cast_or_null<::mlir::UnitAttr>(getProperties().column);
398 }
399
400 bool getColumn();
401 ::mlir::UnitAttr getSignalAttr() {
402 return ::llvm::dyn_cast_or_null<::mlir::UnitAttr>(getProperties().signal);
403 }
404
405 bool getSignal();
406 void setSymNameAttr(::mlir::StringAttr attr) {
407 getProperties().sym_name = attr;
408 }
409
410 void setSymName(::llvm::StringRef attrValue);
411 void setTypeAttr(::mlir::TypeAttr attr) {
412 getProperties().type = attr;
413 }
414
415 void setType(::mlir::Type attrValue);
416 void setColumnAttr(::mlir::UnitAttr attr) {
417 getProperties().column = attr;
418 }
419
420 void setColumn(bool attrValue);
421 void setSignalAttr(::mlir::UnitAttr attr) {
422 getProperties().signal = attr;
423 }
424
425 void setSignal(bool attrValue);
426 ::mlir::Attribute removeColumnAttr() {
427 auto &attr = getProperties().column;
428 attr = {};
429 return attr;
430 }
431
432 ::mlir::Attribute removeSignalAttr() {
433 auto &attr = getProperties().signal;
434 attr = {};
435 return attr;
436 }
437
438 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::StringAttr sym_name, ::mlir::TypeAttr type, bool isSignal = false, bool isColumn = false);
439 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llvm::StringRef sym_name, ::mlir::Type type, bool isSignal = false, bool isColumn = false);
440 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes, bool isSignal = false, bool isColumn = false);
441 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes, bool isSignal = false, bool isColumn = false);
442 ::llvm::LogicalResult verifyInvariantsImpl();
443 ::llvm::LogicalResult verifyInvariants();
444 ::llvm::LogicalResult verifySymbolUses(::mlir::SymbolTableCollection &symbolTable);
445 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
446 void print(::mlir::OpAsmPrinter &_odsPrinter);
447private:
448 ::mlir::StringAttr getAttributeNameForIndex(unsigned index) {
449 return getAttributeNameForIndex((*this)->getName(), index);
450 }
451
452 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name, unsigned index) {
453 assert(index < 4 && "invalid attribute index");
454 assert(name.getStringRef() == getOperationName() && "invalid operation name");
455 assert(name.isRegistered() && "Operation isn't registered, missing a "
456 "dependent dialect loading?");
457 return name.getAttributeNames()[index];
458 }
459
460public:
461 inline bool hasPublicAttr() { return getOperation()->hasAttr(llzk::PublicAttr::name); }
462 void setPublicAttr(bool newValue = true);
463};
464} // namespace component
465} // namespace llzk
466MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::component::MemberDefOp)
467
468namespace llzk {
469namespace component {
470
471//===----------------------------------------------------------------------===//
472// ::llzk::component::MemberReadOp declarations
473//===----------------------------------------------------------------------===//
474
475namespace detail {
477public:
478 struct Properties {
479 using mapOpGroupSizesTy = ::mlir::DenseI32ArrayAttr;
481
483 auto &propStorage = this->mapOpGroupSizes;
484 return ::llvm::cast<::mlir::DenseI32ArrayAttr>(propStorage);
485 }
486 void setMapOpGroupSizes(const ::mlir::DenseI32ArrayAttr &propValue) {
487 this->mapOpGroupSizes = propValue;
488 }
489 using member_nameTy = ::mlir::FlatSymbolRefAttr;
491
493 auto &propStorage = this->member_name;
494 return ::llvm::cast<::mlir::FlatSymbolRefAttr>(propStorage);
495 }
496 void setMemberName(const ::mlir::FlatSymbolRefAttr &propValue) {
497 this->member_name = propValue;
498 }
499 using numDimsPerMapTy = ::mlir::DenseI32ArrayAttr;
501
503 auto &propStorage = this->numDimsPerMap;
504 return ::llvm::dyn_cast_or_null<::mlir::DenseI32ArrayAttr>(propStorage);
505 }
506 void setNumDimsPerMap(const ::mlir::DenseI32ArrayAttr &propValue) {
507 this->numDimsPerMap = propValue;
508 }
509 using tableOffsetTy = ::mlir::Attribute;
511
513 auto &propStorage = this->tableOffset;
514 return ::llvm::dyn_cast_or_null<::mlir::Attribute>(propStorage);
515 }
516 void setTableOffset(const ::mlir::Attribute &propValue) {
517 this->tableOffset = propValue;
518 }
519 bool operator==(const Properties &rhs) const {
520 return
521 rhs.mapOpGroupSizes == this->mapOpGroupSizes &&
522 rhs.member_name == this->member_name &&
523 rhs.numDimsPerMap == this->numDimsPerMap &&
524 rhs.tableOffset == this->tableOffset &&
525 true;
526 }
527 bool operator!=(const Properties &rhs) const {
528 return !(*this == rhs);
529 }
530 };
531protected:
532 ::mlir::DictionaryAttr odsAttrs;
533 ::std::optional<::mlir::OperationName> odsOpName;
535 ::mlir::RegionRange odsRegions;
536public:
537 MemberReadOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
538 odsOpName.emplace("struct.readm", odsAttrs.getContext());
539 }
540
542
543 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize);
545 return properties;
546 }
547
548 ::mlir::DictionaryAttr getAttributes() {
549 return odsAttrs;
550 }
551
552 ::mlir::FlatSymbolRefAttr getMemberNameAttr() {
553 auto attr = ::llvm::cast<::mlir::FlatSymbolRefAttr>(getProperties().member_name);
554 return attr;
555 }
556
557 ::llvm::StringRef getMemberName();
558 ::mlir::Attribute getTableOffsetAttr() {
559 auto attr = ::llvm::dyn_cast_or_null<::mlir::Attribute>(getProperties().tableOffset);
560 return attr;
561 }
562
563 ::std::optional<::mlir::Attribute> getTableOffset();
564 ::mlir::DenseI32ArrayAttr getNumDimsPerMapAttr();
565 ::llvm::ArrayRef<int32_t> getNumDimsPerMap();
566 ::mlir::DenseI32ArrayAttr getMapOpGroupSizesAttr() {
567 auto attr = ::llvm::cast<::mlir::DenseI32ArrayAttr>(getProperties().mapOpGroupSizes);
568 return attr;
569 }
570
571 ::llvm::ArrayRef<int32_t> getMapOpGroupSizes();
572};
573} // namespace detail
574template <typename RangeT>
576 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
578public:
579 MemberReadOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
580
581 MemberReadOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : MemberReadOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
582
583 MemberReadOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : MemberReadOpGenericAdaptor(values, attrs, Properties{}, {}) {}
584
585 MemberReadOpGenericAdaptor(RangeT values, const MemberReadOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
586
587 template <typename LateInst = MemberReadOp, typename = std::enable_if_t<std::is_same_v<LateInst, MemberReadOp>>>
588 MemberReadOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
589
590 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
591 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
592 }
593
594 RangeT getODSOperands(unsigned index) {
595 auto valueRange = getODSOperandIndexAndLength(index);
596 return {std::next(odsOperands.begin(), valueRange.first),
597 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
598 }
599
600 ValueT getComponent() {
601 return (*getODSOperands(0).begin());
602 }
603
604 ::llvm::SmallVector<RangeT> getMapOperands() {
605 auto tblgenTmpOperands = getODSOperands(1);
606 auto sizes = getMapOpGroupSizes();
607
608 ::llvm::SmallVector<RangeT> tblgenTmpOperandGroups;
609 for (int i = 0, e = sizes.size(); i < e; ++i) {
610 tblgenTmpOperandGroups.push_back(tblgenTmpOperands.take_front(sizes[i]));
611 tblgenTmpOperands = tblgenTmpOperands.drop_front(sizes[i]);
612 }
613 return tblgenTmpOperandGroups;
614 }
615
616 RangeT getOperands() {
617 return odsOperands;
618 }
619
620private:
621 RangeT odsOperands;
622};
623class MemberReadOpAdaptor : public MemberReadOpGenericAdaptor<::mlir::ValueRange> {
624public:
627
628 ::llvm::LogicalResult verify(::mlir::Location loc);
629};
630class MemberReadOp : public ::mlir::Op<MemberReadOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::mlir::Type>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::AtLeastNOperands<1>::Impl, ::llzk::VerifySizesForMultiAffineOps<1>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::BytecodeOpInterface::Trait, ::llzk::component::MemberRefOpInterface::Trait, ::mlir::SymbolUserOpInterface::Trait> {
631public:
632 using Op::Op;
633 using Op::print;
635 template <typename RangeT>
639 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
640 static ::llvm::StringRef attrNames[] = {::llvm::StringRef("mapOpGroupSizes"), ::llvm::StringRef("member_name"), ::llvm::StringRef("numDimsPerMap"), ::llvm::StringRef("tableOffset")};
641 return ::llvm::ArrayRef(attrNames);
642 }
643
644 ::mlir::StringAttr getMapOpGroupSizesAttrName() {
645 return getAttributeNameForIndex(0);
646 }
647
648 static ::mlir::StringAttr getMapOpGroupSizesAttrName(::mlir::OperationName name) {
649 return getAttributeNameForIndex(name, 0);
650 }
651
652 ::mlir::StringAttr getMemberNameAttrName() {
653 return getAttributeNameForIndex(1);
654 }
655
656 static ::mlir::StringAttr getMemberNameAttrName(::mlir::OperationName name) {
657 return getAttributeNameForIndex(name, 1);
658 }
659
660 ::mlir::StringAttr getNumDimsPerMapAttrName() {
661 return getAttributeNameForIndex(2);
662 }
663
664 static ::mlir::StringAttr getNumDimsPerMapAttrName(::mlir::OperationName name) {
665 return getAttributeNameForIndex(name, 2);
666 }
667
668 ::mlir::StringAttr getTableOffsetAttrName() {
669 return getAttributeNameForIndex(3);
670 }
671
672 static ::mlir::StringAttr getTableOffsetAttrName(::mlir::OperationName name) {
673 return getAttributeNameForIndex(name, 3);
674 }
675
676 static constexpr ::llvm::StringLiteral getOperationName() {
677 return ::llvm::StringLiteral("struct.readm");
678 }
679
680 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index);
681 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
682 auto valueRange = getODSOperandIndexAndLength(index);
683 return {std::next(getOperation()->operand_begin(), valueRange.first),
684 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
685 }
686
687 ::mlir::TypedValue<::llzk::component::StructType> getComponent() {
688 return ::llvm::cast<::mlir::TypedValue<::llzk::component::StructType>>(*getODSOperands(0).begin());
689 }
690
691 ::mlir::OperandRangeRange getMapOperands() {
692 return getODSOperands(1).split(getMapOpGroupSizesAttr());
693 }
694
695 ::mlir::OpOperand &getComponentMutable() {
696 auto range = getODSOperandIndexAndLength(0);
697 return getOperation()->getOpOperand(range.first);
698 }
699
700 ::mlir::MutableOperandRangeRange getMapOperandsMutable();
701 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
702 return {index, 1};
703 }
704
705 ::mlir::Operation::result_range getODSResults(unsigned index) {
706 auto valueRange = getODSResultIndexAndLength(index);
707 return {std::next(getOperation()->result_begin(), valueRange.first),
708 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
709 }
710
711 ::mlir::TypedValue<::mlir::Type> getVal() {
712 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSResults(0).begin());
713 }
714
715 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
716 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
717 static llvm::hash_code computePropertiesHash(const Properties &prop);
718 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
719 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
720 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
721 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
722 static ::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
723 void writeProperties(::mlir::DialectBytecodeWriter &writer);
724 ::mlir::FlatSymbolRefAttr getMemberNameAttr() {
725 return ::llvm::cast<::mlir::FlatSymbolRefAttr>(getProperties().member_name);
726 }
727
728 ::llvm::StringRef getMemberName();
729 ::mlir::Attribute getTableOffsetAttr() {
730 return ::llvm::dyn_cast_or_null<::mlir::Attribute>(getProperties().tableOffset);
731 }
732
733 ::std::optional<::mlir::Attribute> getTableOffset();
734 ::mlir::DenseI32ArrayAttr getNumDimsPerMapAttr() {
735 return ::llvm::dyn_cast_or_null<::mlir::DenseI32ArrayAttr>(getProperties().numDimsPerMap);
736 }
737
738 ::llvm::ArrayRef<int32_t> getNumDimsPerMap();
739 ::mlir::DenseI32ArrayAttr getMapOpGroupSizesAttr() {
740 return ::llvm::cast<::mlir::DenseI32ArrayAttr>(getProperties().mapOpGroupSizes);
741 }
742
743 ::llvm::ArrayRef<int32_t> getMapOpGroupSizes();
744 void setMemberNameAttr(::mlir::FlatSymbolRefAttr attr) {
745 getProperties().member_name = attr;
746 }
747
748 void setMemberName(::llvm::StringRef attrValue);
749 void setTableOffsetAttr(::mlir::Attribute attr) {
750 getProperties().tableOffset = attr;
751 }
752
753 void setNumDimsPerMapAttr(::mlir::DenseI32ArrayAttr attr) {
754 getProperties().numDimsPerMap = attr;
755 }
756
757 void setNumDimsPerMap(::llvm::ArrayRef<int32_t> attrValue);
758 void setMapOpGroupSizesAttr(::mlir::DenseI32ArrayAttr attr) {
759 getProperties().mapOpGroupSizes = attr;
760 }
761
762 void setMapOpGroupSizes(::llvm::ArrayRef<int32_t> attrValue);
763 ::mlir::Attribute removeTableOffsetAttr() {
764 auto &attr = getProperties().tableOffset;
765 attr = {};
766 return attr;
767 }
768
769 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type resultType, ::mlir::Value component, ::mlir::StringAttr member);
770 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type resultType, ::mlir::Value component, ::mlir::StringAttr member, ::mlir::Attribute dist, ::mlir::ValueRange mapOperands, std::optional<int32_t> numDims);
771 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type resultType, ::mlir::Value component, ::mlir::StringAttr member, ::mlir::SymbolRefAttr dist);
772 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type resultType, ::mlir::Value component, ::mlir::StringAttr member, ::mlir::IntegerAttr dist);
773 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::mlir::ArrayRef<::mlir::NamedAttribute> attrs);
774 static void populateDefaultProperties(::mlir::OperationName opName, Properties &properties);
775 ::llvm::LogicalResult verifyInvariantsImpl();
776 ::llvm::LogicalResult verifyInvariants();
777 ::llvm::LogicalResult verify();
778 bool isRead();
779 ::llvm::LogicalResult verifySymbolUses(::mlir::SymbolTableCollection &symbolTable);
780 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
781 void print(::mlir::OpAsmPrinter &_odsPrinter);
782private:
783 ::mlir::StringAttr getAttributeNameForIndex(unsigned index) {
784 return getAttributeNameForIndex((*this)->getName(), index);
785 }
786
787 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name, unsigned index) {
788 assert(index < 4 && "invalid attribute index");
789 assert(name.getStringRef() == getOperationName() && "invalid operation name");
790 assert(name.isRegistered() && "Operation isn't registered, missing a "
791 "dependent dialect loading?");
792 return name.getAttributeNames()[index];
793 }
794
795public:
797 inline ::mlir::FailureOr<SymbolLookupResult<MemberDefOp>> getMemberDefOp(::mlir::SymbolTableCollection &tables) {
798 return ::llvm::cast<MemberRefOpInterface>(getOperation()).getMemberDefOp(tables);
799 }
800};
801} // namespace component
802} // namespace llzk
803MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::component::MemberReadOp)
804
805namespace llzk {
806namespace component {
807
808//===----------------------------------------------------------------------===//
809// ::llzk::component::MemberWriteOp declarations
810//===----------------------------------------------------------------------===//
811
812namespace detail {
814public:
815 struct Properties {
816 using member_nameTy = ::mlir::FlatSymbolRefAttr;
818
820 auto &propStorage = this->member_name;
821 return ::llvm::cast<::mlir::FlatSymbolRefAttr>(propStorage);
822 }
823 void setMemberName(const ::mlir::FlatSymbolRefAttr &propValue) {
824 this->member_name = propValue;
825 }
826 bool operator==(const Properties &rhs) const {
827 return
828 rhs.member_name == this->member_name &&
829 true;
830 }
831 bool operator!=(const Properties &rhs) const {
832 return !(*this == rhs);
833 }
834 };
835protected:
836 ::mlir::DictionaryAttr odsAttrs;
837 ::std::optional<::mlir::OperationName> odsOpName;
839 ::mlir::RegionRange odsRegions;
840public:
841 MemberWriteOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
842 odsOpName.emplace("struct.writem", odsAttrs.getContext());
843 }
844
846
847 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
848 return {index, 1};
849 }
850
852 return properties;
853 }
854
855 ::mlir::DictionaryAttr getAttributes() {
856 return odsAttrs;
857 }
858
859 ::mlir::FlatSymbolRefAttr getMemberNameAttr() {
860 auto attr = ::llvm::cast<::mlir::FlatSymbolRefAttr>(getProperties().member_name);
861 return attr;
862 }
863
864 ::llvm::StringRef getMemberName();
865};
866} // namespace detail
867template <typename RangeT>
869 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
871public:
872 MemberWriteOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
873
874 MemberWriteOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : MemberWriteOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
875
876 MemberWriteOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : MemberWriteOpGenericAdaptor(values, attrs, Properties{}, {}) {}
877
878 MemberWriteOpGenericAdaptor(RangeT values, const MemberWriteOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
879
880 template <typename LateInst = MemberWriteOp, typename = std::enable_if_t<std::is_same_v<LateInst, MemberWriteOp>>>
881 MemberWriteOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
882
883 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
884 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
885 }
886
887 RangeT getODSOperands(unsigned index) {
888 auto valueRange = getODSOperandIndexAndLength(index);
889 return {std::next(odsOperands.begin(), valueRange.first),
890 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
891 }
892
893 ValueT getComponent() {
894 return (*getODSOperands(0).begin());
895 }
896
897 ValueT getVal() {
898 return (*getODSOperands(1).begin());
899 }
900
901 RangeT getOperands() {
902 return odsOperands;
903 }
904
905private:
906 RangeT odsOperands;
907};
908class MemberWriteOpAdaptor : public MemberWriteOpGenericAdaptor<::mlir::ValueRange> {
909public:
912
913 ::llvm::LogicalResult verify(::mlir::Location loc);
914};
915class MemberWriteOp : public ::mlir::Op<MemberWriteOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::NOperands<2>::Impl, ::llzk::function::WitnessGen, ::mlir::OpTrait::OpInvariants, ::mlir::BytecodeOpInterface::Trait, ::llzk::component::MemberRefOpInterface::Trait, ::mlir::SymbolUserOpInterface::Trait> {
916public:
917 using Op::Op;
918 using Op::print;
920 template <typename RangeT>
924 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
925 static ::llvm::StringRef attrNames[] = {::llvm::StringRef("member_name")};
926 return ::llvm::ArrayRef(attrNames);
927 }
928
929 ::mlir::StringAttr getMemberNameAttrName() {
930 return getAttributeNameForIndex(0);
931 }
932
933 static ::mlir::StringAttr getMemberNameAttrName(::mlir::OperationName name) {
934 return getAttributeNameForIndex(name, 0);
935 }
936
937 static constexpr ::llvm::StringLiteral getOperationName() {
938 return ::llvm::StringLiteral("struct.writem");
939 }
940
941 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
942 return {index, 1};
943 }
944
945 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
946 auto valueRange = getODSOperandIndexAndLength(index);
947 return {std::next(getOperation()->operand_begin(), valueRange.first),
948 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
949 }
950
951 ::mlir::TypedValue<::llzk::component::StructType> getComponent() {
952 return ::llvm::cast<::mlir::TypedValue<::llzk::component::StructType>>(*getODSOperands(0).begin());
953 }
954
955 ::mlir::TypedValue<::mlir::Type> getVal() {
956 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(1).begin());
957 }
958
959 ::mlir::OpOperand &getComponentMutable() {
960 auto range = getODSOperandIndexAndLength(0);
961 return getOperation()->getOpOperand(range.first);
962 }
963
964 ::mlir::OpOperand &getValMutable() {
965 auto range = getODSOperandIndexAndLength(1);
966 return getOperation()->getOpOperand(range.first);
967 }
968
969 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
970 return {index, 1};
971 }
972
973 ::mlir::Operation::result_range getODSResults(unsigned index) {
974 auto valueRange = getODSResultIndexAndLength(index);
975 return {std::next(getOperation()->result_begin(), valueRange.first),
976 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
977 }
978
979 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
980 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
981 static llvm::hash_code computePropertiesHash(const Properties &prop);
982 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
983 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
984 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
985 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
986 static ::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
987 void writeProperties(::mlir::DialectBytecodeWriter &writer);
988 ::mlir::FlatSymbolRefAttr getMemberNameAttr() {
989 return ::llvm::cast<::mlir::FlatSymbolRefAttr>(getProperties().member_name);
990 }
991
992 ::llvm::StringRef getMemberName();
993 void setMemberNameAttr(::mlir::FlatSymbolRefAttr attr) {
994 getProperties().member_name = attr;
995 }
996
997 void setMemberName(::llvm::StringRef attrValue);
998 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value component, ::mlir::FlatSymbolRefAttr member_name, ::mlir::Value val);
999 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value component, ::mlir::FlatSymbolRefAttr member_name, ::mlir::Value val);
1000 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value component, ::llvm::StringRef member_name, ::mlir::Value val);
1001 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value component, ::llvm::StringRef member_name, ::mlir::Value val);
1002 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1003 ::llvm::LogicalResult verifyInvariantsImpl();
1004 ::llvm::LogicalResult verifyInvariants();
1005 bool isRead();
1006 ::llvm::LogicalResult verifySymbolUses(::mlir::SymbolTableCollection &symbolTable);
1007 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1008 void print(::mlir::OpAsmPrinter &_odsPrinter);
1009private:
1010 ::mlir::StringAttr getAttributeNameForIndex(unsigned index) {
1011 return getAttributeNameForIndex((*this)->getName(), index);
1012 }
1013
1014 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name, unsigned index) {
1015 assert(index < 1 && "invalid attribute index");
1016 assert(name.getStringRef() == getOperationName() && "invalid operation name");
1017 assert(name.isRegistered() && "Operation isn't registered, missing a "
1018 "dependent dialect loading?");
1019 return name.getAttributeNames()[index];
1020 }
1021
1022public:
1024 inline ::mlir::FailureOr<SymbolLookupResult<MemberDefOp>> getMemberDefOp(::mlir::SymbolTableCollection &tables) {
1025 return ::llvm::cast<MemberRefOpInterface>(getOperation()).getMemberDefOp(tables);
1026 }
1027};
1028} // namespace component
1029} // namespace llzk
1030MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::component::MemberWriteOp)
1031
1032namespace llzk {
1033namespace component {
1034
1035//===----------------------------------------------------------------------===//
1036// ::llzk::component::StructDefOp declarations
1037//===----------------------------------------------------------------------===//
1038
1039namespace detail {
1041public:
1042 struct Properties {
1043 using const_paramsTy = ::mlir::ArrayAttr;
1045
1047 auto &propStorage = this->const_params;
1048 return ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(propStorage);
1049 }
1050 void setConstParams(const ::mlir::ArrayAttr &propValue) {
1051 this->const_params = propValue;
1052 }
1053 using sym_nameTy = ::mlir::StringAttr;
1055
1056 auto getSymName() {
1057 auto &propStorage = this->sym_name;
1058 return ::llvm::cast<::mlir::StringAttr>(propStorage);
1059 }
1060 void setSymName(const ::mlir::StringAttr &propValue) {
1061 this->sym_name = propValue;
1062 }
1063 bool operator==(const Properties &rhs) const {
1064 return
1065 rhs.const_params == this->const_params &&
1066 rhs.sym_name == this->sym_name &&
1067 true;
1068 }
1069 bool operator!=(const Properties &rhs) const {
1070 return !(*this == rhs);
1071 }
1072 };
1073protected:
1074 ::mlir::DictionaryAttr odsAttrs;
1075 ::std::optional<::mlir::OperationName> odsOpName;
1077 ::mlir::RegionRange odsRegions;
1078public:
1079 StructDefOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
1080 odsOpName.emplace("struct.def", odsAttrs.getContext());
1081 }
1082
1084
1085 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
1086 return {index, 1};
1087 }
1088
1090 return properties;
1091 }
1092
1093 ::mlir::DictionaryAttr getAttributes() {
1094 return odsAttrs;
1095 }
1096
1097 ::mlir::StringAttr getSymNameAttr() {
1098 auto attr = ::llvm::cast<::mlir::StringAttr>(getProperties().sym_name);
1099 return attr;
1100 }
1101
1102 ::llvm::StringRef getSymName();
1103 ::mlir::ArrayAttr getConstParamsAttr() {
1104 auto attr = ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(getProperties().const_params);
1105 return attr;
1106 }
1107
1108 ::std::optional< ::mlir::ArrayAttr > getConstParams();
1109 ::mlir::Region &getBodyRegion() {
1110 return *odsRegions[0];
1111 }
1112
1113 ::mlir::RegionRange getRegions() {
1114 return odsRegions;
1115 }
1116
1117};
1118} // namespace detail
1119template <typename RangeT>
1121 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
1123public:
1124 StructDefOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
1125
1126 StructDefOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : StructDefOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
1127
1128 StructDefOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = nullptr) : StructDefOpGenericAdaptor(values, attrs, Properties{}, {}) {}
1129
1130 StructDefOpGenericAdaptor(RangeT values, const StructDefOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
1131
1132 template <typename LateInst = StructDefOp, typename = std::enable_if_t<std::is_same_v<LateInst, StructDefOp>>>
1133 StructDefOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
1134
1135 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1136 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
1137 }
1138
1139 RangeT getODSOperands(unsigned index) {
1140 auto valueRange = getODSOperandIndexAndLength(index);
1141 return {std::next(odsOperands.begin(), valueRange.first),
1142 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1143 }
1144
1145 RangeT getOperands() {
1146 return odsOperands;
1147 }
1148
1149private:
1150 RangeT odsOperands;
1151};
1152class StructDefOpAdaptor : public StructDefOpGenericAdaptor<::mlir::ValueRange> {
1153public:
1156
1157 ::llvm::LogicalResult verify(::mlir::Location loc);
1158};
1159class StructDefOp : public ::mlir::Op<StructDefOp, ::mlir::OpTrait::OneRegion, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::ZeroOperands, ::mlir::OpTrait::HasParent<::mlir::ModuleOp>::Impl, ::llzk::component::SetFuncAllowAttrs, ::mlir::OpTrait::NoRegionArguments, ::mlir::OpTrait::NoTerminator, ::mlir::OpTrait::SingleBlock, ::mlir::OpTrait::OpInvariants, ::mlir::BytecodeOpInterface::Trait, ::mlir::SymbolOpInterface::Trait, ::mlir::OpTrait::SymbolTable, ::mlir::OpTrait::IsIsolatedFromAbove, ::mlir::SymbolUserOpInterface::Trait, ::mlir::RegionKindInterface::Trait, ::mlir::OpTrait::HasOnlyGraphRegion> {
1160public:
1161 using Op::Op;
1162 using Op::print;
1164 template <typename RangeT>
1168 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
1169 static ::llvm::StringRef attrNames[] = {::llvm::StringRef("const_params"), ::llvm::StringRef("sym_name")};
1170 return ::llvm::ArrayRef(attrNames);
1171 }
1172
1173 ::mlir::StringAttr getConstParamsAttrName() {
1174 return getAttributeNameForIndex(0);
1175 }
1176
1177 static ::mlir::StringAttr getConstParamsAttrName(::mlir::OperationName name) {
1178 return getAttributeNameForIndex(name, 0);
1179 }
1180
1181 ::mlir::StringAttr getSymNameAttrName() {
1182 return getAttributeNameForIndex(1);
1183 }
1184
1185 static ::mlir::StringAttr getSymNameAttrName(::mlir::OperationName name) {
1186 return getAttributeNameForIndex(name, 1);
1187 }
1188
1189 static constexpr ::llvm::StringLiteral getOperationName() {
1190 return ::llvm::StringLiteral("struct.def");
1191 }
1192
1193 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1194 return {index, 1};
1195 }
1196
1197 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
1198 auto valueRange = getODSOperandIndexAndLength(index);
1199 return {std::next(getOperation()->operand_begin(), valueRange.first),
1200 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
1201 }
1202
1203 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
1204 return {index, 1};
1205 }
1206
1207 ::mlir::Operation::result_range getODSResults(unsigned index) {
1208 auto valueRange = getODSResultIndexAndLength(index);
1209 return {std::next(getOperation()->result_begin(), valueRange.first),
1210 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
1211 }
1212
1213 ::mlir::Region &getBodyRegion() {
1214 return (*this)->getRegion(0);
1215 }
1216
1217 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
1218 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
1219 static llvm::hash_code computePropertiesHash(const Properties &prop);
1220 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
1221 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
1222 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
1223 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
1224 static ::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
1225 void writeProperties(::mlir::DialectBytecodeWriter &writer);
1226 ::mlir::StringAttr getSymNameAttr() {
1227 return ::llvm::cast<::mlir::StringAttr>(getProperties().sym_name);
1228 }
1229
1230 ::llvm::StringRef getSymName();
1231 ::mlir::ArrayAttr getConstParamsAttr() {
1232 return ::llvm::dyn_cast_or_null<::mlir::ArrayAttr>(getProperties().const_params);
1233 }
1234
1235 ::std::optional< ::mlir::ArrayAttr > getConstParams();
1236 void setSymNameAttr(::mlir::StringAttr attr) {
1237 getProperties().sym_name = attr;
1238 }
1239
1240 void setSymName(::llvm::StringRef attrValue);
1241 void setConstParamsAttr(::mlir::ArrayAttr attr) {
1242 getProperties().const_params = attr;
1243 }
1244
1245 ::mlir::Attribute removeConstParamsAttr() {
1246 auto &attr = getProperties().const_params;
1247 attr = {};
1248 return attr;
1249 }
1250
1251 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::StringAttr sym_name, /*optional*/::mlir::ArrayAttr const_params);
1252 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::StringAttr sym_name, /*optional*/::mlir::ArrayAttr const_params);
1253 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llvm::StringRef sym_name, /*optional*/::mlir::ArrayAttr const_params);
1254 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::llvm::StringRef sym_name, /*optional*/::mlir::ArrayAttr const_params);
1255 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1256 ::llvm::LogicalResult verifyInvariantsImpl();
1257 ::llvm::LogicalResult verifyInvariants();
1258 ::llvm::LogicalResult verifyRegions();
1259 ::llvm::LogicalResult verifySymbolUses(::mlir::SymbolTableCollection &symbolTable);
1260 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1261 void print(::mlir::OpAsmPrinter &_odsPrinter);
1262private:
1263 ::mlir::StringAttr getAttributeNameForIndex(unsigned index) {
1264 return getAttributeNameForIndex((*this)->getName(), index);
1265 }
1266
1267 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name, unsigned index) {
1268 assert(index < 2 && "invalid attribute index");
1269 assert(name.getStringRef() == getOperationName() && "invalid operation name");
1270 assert(name.isRegistered() && "Operation isn't registered, missing a "
1271 "dependent dialect loading?");
1272 return name.getAttributeNames()[index];
1273 }
1274
1275public:
1278 StructType getType(::std::optional<::mlir::ArrayAttr> constParams = {});
1279 inline StructType getType(::std::optional<::mlir::ArrayAttr> constParams = {}) const {
1280 return const_cast<StructDefOp*>(this)->getType(constParams);
1281 }
1282
1285 MemberDefOp getMemberDef(::mlir::StringAttr memberName);
1286
1288 ::std::vector<MemberDefOp> getMemberDefs();
1289
1291 ::mlir::LogicalResult hasColumns() {
1292 return ::mlir::success(::llvm::any_of(getMemberDefs(), [](MemberDefOp memberOp) {
1293 return memberOp.getColumn();
1294 }));
1295 }
1296
1298 ::mlir::LogicalResult hasSignals() {
1299 return ::mlir::success(::llvm::any_of(getMemberDefs(), [](MemberDefOp memberOp) {
1300 return memberOp.getSignal();
1301 }));
1302 }
1303
1304
1307
1310
1313
1316
1318 bool hasComputeConstrain() { return lookupSymbol(FUNC_NAME_COMPUTE) != nullptr && lookupSymbol(FUNC_NAME_CONSTRAIN) != nullptr; }
1319
1321 ::std::string getHeaderString();
1322
1324 bool hasConstParamsAttr() { return getProperties().const_params != nullptr; };
1325
1327 bool hasParamNamed(::mlir::StringAttr find);
1328 inline bool hasParamNamed(::mlir::FlatSymbolRefAttr find) {
1329 return hasParamNamed(find.getRootReference());
1330 }
1331
1332 //===------------------------------------------------------------------===//
1333 // Utility Methods
1334 //===------------------------------------------------------------------===//
1335
1338 ::mlir::SymbolRefAttr getFullyQualifiedName();
1339
1341 bool isMainComponent();
1342};
1343} // namespace component
1344} // namespace llzk
1345MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::component::StructDefOp)
1346
1347
1348#endif // GET_OP_CLASSES
1349
CreateStructOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:74
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:182
CreateStructOpAdaptor(CreateStructOp op)
Definition Ops.cpp.inc:180
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:83
CreateStructOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:74
CreateStructOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:76
CreateStructOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:81
CreateStructOpGenericAdaptor(RangeT values, const CreateStructOpGenericAdaptorBase &base)
Definition Ops.h.inc:78
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:133
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result)
Definition Ops.cpp.inc:186
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:127
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:123
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:137
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:203
::llvm::LogicalResult verifySymbolUses(::mlir::SymbolTableCollection &symbolTable)
Definition Ops.cpp:735
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:216
void getAsmResultNames(::mlir::OpAsmSetValueNameFn setNameFn)
Definition Ops.cpp:731
CreateStructOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:113
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:119
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:114
::mlir::TypedValue<::llzk::component::StructType > getResult()
Definition Ops.h.inc:143
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:115
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:220
CreateStructOpAdaptor Adaptor
Definition Ops.h.inc:111
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:241
MemberDefOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:272
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:310
MemberDefOpGenericAdaptor(RangeT values, const MemberDefOpGenericAdaptorBase &base)
Definition Ops.h.inc:278
MemberDefOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:272
MemberDefOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:274
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:283
MemberDefOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:281
MemberDefOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition Ops.h.inc:276
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:287
void setSymNameAttr(::mlir::StringAttr attr)
Definition Ops.h.inc:406
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:314
MemberDefOpAdaptor Adaptor
Definition Ops.h.inc:311
::mlir::StringAttr getSymNameAttrName(::mlir::OperationName name)
Definition Ops.h.inc:341
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:361
::mlir::StringAttr getColumnAttrName(::mlir::OperationName name)
Definition Ops.h.inc:325
::llvm::StringRef getSymName()
Definition Ops.cpp.inc:542
void setSignal(bool attrValue)
Definition Ops.cpp.inc:582
::mlir::StringAttr getTypeAttrName()
Definition Ops.h.inc:345
::mlir::StringAttr getColumnAttrName()
Definition Ops.h.inc:321
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:616
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition Ops.cpp.inc:442
MemberDefOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:313
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llvm::StringRef sym_name, ::mlir::Type type, bool isSignal=false, bool isColumn=false)
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:367
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:332
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition Ops.cpp.inc:479
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:489
void setPublicAttr(bool newValue=true)
Definition Ops.cpp:504
::mlir::StringAttr getTypeAttrName(::mlir::OperationName name)
Definition Ops.h.inc:349
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute > attributes, bool isSignal=false, bool isColumn=false)
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:620
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:594
void setColumnAttr(::mlir::UnitAttr attr)
Definition Ops.h.inc:416
::mlir::UnitAttr getSignalAttr()
Definition Ops.h.inc:401
void setTypeAttr(::mlir::TypeAttr attr)
Definition Ops.h.inc:411
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:646
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition Ops.cpp.inc:397
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:353
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)
Definition Ops.cpp.inc:516
void setColumn(bool attrValue)
Definition Ops.cpp.inc:574
::mlir::Attribute removeSignalAttr()
Definition Ops.h.inc:432
::mlir::TypeAttr getTypeAttr()
Definition Ops.h.inc:391
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition Ops.cpp.inc:457
::mlir::Attribute removeColumnAttr()
Definition Ops.h.inc:426
::mlir::StringAttr getSignalAttrName()
Definition Ops.h.inc:329
::mlir::StringAttr getSignalAttrName(::mlir::OperationName name)
Definition Ops.h.inc:333
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:357
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition Ops.cpp.inc:434
::mlir::StringAttr getSymNameAttr()
Definition Ops.h.inc:386
::llvm::LogicalResult verifySymbolUses(::mlir::SymbolTableCollection &symbolTable)
Definition Ops.cpp:535
void writeProperties(::mlir::DialectBytecodeWriter &writer)
Definition Ops.cpp.inc:532
void setType(::mlir::Type attrValue)
Definition Ops.cpp.inc:570
FoldAdaptor::Properties Properties
Definition Ops.h.inc:315
void setSignalAttr(::mlir::UnitAttr attr)
Definition Ops.h.inc:421
void setSymName(::llvm::StringRef attrValue)
Definition Ops.cpp.inc:566
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:371
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:316
::mlir::UnitAttr getColumnAttr()
Definition Ops.h.inc:396
::mlir::StringAttr getSymNameAttrName()
Definition Ops.h.inc:337
MemberReadOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:579
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:730
MemberReadOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:588
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:590
::llvm::SmallVector< RangeT > getMapOperands()
Definition Ops.h.inc:604
MemberReadOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:579
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:594
MemberReadOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:581
MemberReadOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition Ops.h.inc:583
MemberReadOpGenericAdaptor(RangeT values, const MemberReadOpGenericAdaptorBase &base)
Definition Ops.h.inc:585
::mlir::StringAttr getNumDimsPerMapAttrName(::mlir::OperationName name)
Definition Ops.h.inc:664
::mlir::MutableOperandRangeRange getMapOperandsMutable()
Definition Ops.cpp.inc:770
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::mlir::ArrayRef<::mlir::NamedAttribute > attrs)
::mlir::Attribute removeTableOffsetAttr()
Definition Ops.h.inc:763
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition Ops.cpp.inc:886
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition Ops.cpp.inc:923
::mlir::TypedValue<::llzk::component::StructType > getComponent()
Definition Ops.h.inc:687
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition Ops.cpp.inc:878
MemberReadOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:636
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition Ops.cpp.inc:901
void setMapOpGroupSizes(::llvm::ArrayRef< int32_t > attrValue)
Definition Ops.cpp.inc:1014
::mlir::TypedValue<::mlir::Type > getVal()
Definition Ops.h.inc:711
::std::optional<::mlir::Attribute > getTableOffset()
Definition Ops.cpp.inc:991
::mlir::OpOperand & getComponentMutable()
Definition Ops.h.inc:695
::mlir::OperandRangeRange getMapOperands()
Definition Ops.h.inc:691
bool isRead()
Return true if the op is a read, false if it's a write.
Definition Ops.cpp.inc:1211
void setNumDimsPerMapAttr(::mlir::DenseI32ArrayAttr attr)
Definition Ops.h.inc:753
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition Ops.cpp.inc:841
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type resultType, ::mlir::Value component, ::mlir::StringAttr member)
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:1034
static void populateDefaultProperties(::mlir::OperationName opName, Properties &properties)
Definition Ops.cpp.inc:1028
::mlir::FlatSymbolRefAttr getMemberNameAttr()
Definition Ops.h.inc:724
::llvm::ArrayRef< int32_t > getMapOpGroupSizes()
Definition Ops.cpp.inc:1001
::mlir::StringAttr getMemberNameAttrName(::mlir::OperationName name)
Definition Ops.h.inc:656
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:701
::mlir::StringAttr getMapOpGroupSizesAttrName()
Definition Ops.h.inc:644
void setMapOpGroupSizesAttr(::mlir::DenseI32ArrayAttr attr)
Definition Ops.h.inc:758
inline ::mlir::FailureOr< SymbolLookupResult< MemberDefOp > > getMemberDefOp(::mlir::SymbolTableCollection &tables)
Gets the definition for the member referenced in this op.
Definition Ops.h.inc:797
void setNumDimsPerMap(::llvm::ArrayRef< int32_t > attrValue)
Definition Ops.cpp.inc:1010
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:933
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.cpp.inc:752
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:637
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:705
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type resultType, ::mlir::Value component, ::mlir::StringAttr member, ::mlir::Attribute dist, ::mlir::ValueRange mapOperands, std::optional< int32_t > numDims)
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:1082
void setTableOffsetAttr(::mlir::Attribute attr)
Definition Ops.h.inc:749
MemberReadOpAdaptor Adaptor
Definition Ops.h.inc:634
void setMemberNameAttr(::mlir::FlatSymbolRefAttr attr)
Definition Ops.h.inc:744
::llvm::LogicalResult verifySymbolUses(::mlir::SymbolTableCollection &symbolTable)
Definition Ops.cpp:624
::llvm::ArrayRef< int32_t > getNumDimsPerMap()
Definition Ops.cpp.inc:996
::mlir::StringAttr getMapOpGroupSizesAttrName(::mlir::OperationName name)
Definition Ops.h.inc:648
::llvm::StringRef getMemberName()
Definition Ops.cpp.inc:986
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:676
::mlir::StringAttr getTableOffsetAttrName()
Definition Ops.h.inc:668
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:1088
void writeProperties(::mlir::DialectBytecodeWriter &writer)
Definition Ops.cpp.inc:976
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
Definition Ops.cpp.inc:960
::llvm::LogicalResult verify()
Definition Ops.cpp:716
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:681
::mlir::Attribute getTableOffsetAttr()
Definition Ops.h.inc:729
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:639
void setMemberName(::llvm::StringRef attrValue)
Definition Ops.cpp.inc:1006
::mlir::StringAttr getMemberNameAttrName()
Definition Ops.h.inc:652
::mlir::DenseI32ArrayAttr getMapOpGroupSizesAttr()
Definition Ops.h.inc:739
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:1168
::mlir::StringAttr getTableOffsetAttrName(::mlir::OperationName name)
Definition Ops.h.inc:672
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:776
FoldAdaptor::Properties Properties
Definition Ops.h.inc:638
::mlir::DenseI32ArrayAttr getNumDimsPerMapAttr()
Definition Ops.h.inc:734
::mlir::StringAttr getNumDimsPerMapAttrName()
Definition Ops.h.inc:660
MemberWriteOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:872
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:1236
MemberWriteOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:874
MemberWriteOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:872
MemberWriteOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition Ops.h.inc:876
MemberWriteOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:881
MemberWriteOpGenericAdaptor(RangeT values, const MemberWriteOpGenericAdaptorBase &base)
Definition Ops.h.inc:878
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:883
MemberWriteOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:921
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:922
::mlir::OpOperand & getComponentMutable()
Definition Ops.h.inc:959
::mlir::TypedValue<::llzk::component::StructType > getComponent()
Definition Ops.h.inc:951
void setMemberName(::llvm::StringRef attrValue)
Definition Ops.cpp.inc:1332
FoldAdaptor::Properties Properties
Definition Ops.h.inc:923
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition Ops.cpp.inc:1302
inline ::mlir::FailureOr< SymbolLookupResult< MemberDefOp > > getMemberDefOp(::mlir::SymbolTableCollection &tables)
Gets the definition for the member referenced in this op.
Definition Ops.h.inc:1024
::mlir::FlatSymbolRefAttr getMemberNameAttr()
Definition Ops.h.inc:988
::mlir::StringAttr getMemberNameAttrName(::mlir::OperationName name)
Definition Ops.h.inc:933
bool isRead()
Return true if the op is a read, false if it's a write.
Definition Ops.cpp.inc:1508
::llvm::LogicalResult verifySymbolUses(::mlir::SymbolTableCollection &symbolTable)
Definition Ops.cpp:660
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:1406
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:1475
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition Ops.cpp.inc:1295
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:924
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
Definition Ops.cpp.inc:1315
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value component, ::mlir::FlatSymbolRefAttr member_name, ::mlir::Value val)
Definition Ops.cpp.inc:1336
void writeProperties(::mlir::DialectBytecodeWriter &writer)
Definition Ops.cpp.inc:1322
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:937
::llvm::StringRef getMemberName()
Definition Ops.cpp.inc:1327
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition Ops.cpp.inc:1268
void setMemberNameAttr(::mlir::FlatSymbolRefAttr attr)
Definition Ops.h.inc:993
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:945
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:1382
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition Ops.cpp.inc:1289
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:941
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:1245
MemberWriteOpAdaptor Adaptor
Definition Ops.h.inc:919
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:969
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:973
::mlir::TypedValue<::mlir::Type > getVal()
Definition Ops.h.inc:955
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:1306
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:1410
::mlir::OpOperand & getValMutable()
Definition Ops.h.inc:964
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition Ops.cpp.inc:1284
::mlir::StringAttr getMemberNameAttrName()
Definition Ops.h.inc:929
StructDefOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1124
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:1538
StructDefOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs=nullptr)
Definition Ops.h.inc:1128
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:1135
StructDefOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1126
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:1139
StructDefOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:1133
StructDefOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1124
StructDefOpGenericAdaptor(RangeT values, const StructDefOpGenericAdaptorBase &base)
Definition Ops.h.inc:1130
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition Ops.cpp.inc:1611
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition Ops.cpp.inc:1617
::mlir::LogicalResult hasColumns()
Returns whether the struct defines members marked as columns.
Definition Ops.h.inc:1291
StructType getType(::std::optional<::mlir::ArrayAttr > constParams={}) const
Definition Ops.h.inc:1279
StructType getType(::std::optional<::mlir::ArrayAttr > constParams={})
Gets the StructType representing this struct.
::mlir::StringAttr getSymNameAttrName(::mlir::OperationName name)
Definition Ops.h.inc:1185
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition Ops.cpp.inc:1626
::mlir::Region & getBodyRegion()
Definition Ops.h.inc:1213
::llvm::LogicalResult verifySymbolUses(::mlir::SymbolTableCollection &symbolTable)
Definition Ops.cpp:196
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
Definition Ops.cpp.inc:1659
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:1189
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition Ops.cpp.inc:1638
::llzk::function::FuncDefOp getConstrainOrProductFuncOp()
Gets the FuncDefOp that defines the constrain function in this structure, if present,...
Definition Ops.cpp:441
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:1766
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition Ops.cpp.inc:1588
::llvm::StringRef getSymName()
Definition Ops.cpp.inc:1676
::mlir::Attribute removeConstParamsAttr()
Definition Ops.h.inc:1245
void setSymNameAttr(::mlir::StringAttr attr)
Definition Ops.h.inc:1236
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:1193
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:1207
StructDefOpAdaptor Adaptor
Definition Ops.h.inc:1163
::mlir::SymbolRefAttr getFullyQualifiedName()
Return the full name for this struct from the root module, including any surrounding module scopes.
Definition Ops.cpp:190
::std::vector< MemberDefOp > getMemberDefs()
Get all MemberDefOp in this structure.
Definition Ops.cpp:416
FoldAdaptor::Properties Properties
Definition Ops.h.inc:1167
::mlir::StringAttr getConstParamsAttrName()
Definition Ops.h.inc:1173
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:1197
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:1644
bool hasParamNamed(::mlir::FlatSymbolRefAttr find)
Definition Ops.h.inc:1328
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:1770
MemberDefOp getMemberDef(::mlir::StringAttr memberName)
Gets the MemberDefOp that defines the member in this structure with the given name,...
Definition Ops.cpp:405
void writeProperties(::mlir::DialectBytecodeWriter &writer)
Definition Ops.cpp.inc:1669
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:1551
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:1203
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::StringAttr sym_name, ::mlir::ArrayAttr const_params)
Definition Ops.cpp.inc:1690
::llzk::function::FuncDefOp getConstrainFuncOp()
Gets the FuncDefOp that defines the constrain function in this structure, if present,...
Definition Ops.cpp:430
::mlir::StringAttr getSymNameAttr()
Definition Ops.h.inc:1226
::llzk::function::FuncDefOp getComputeOrProductFuncOp()
Gets the FuncDefOp that defines the compute function in this structure, if present,...
Definition Ops.cpp:434
::mlir::StringAttr getConstParamsAttrName(::mlir::OperationName name)
Definition Ops.h.inc:1177
::mlir::LogicalResult hasSignals()
Returns whether the struct defines members marked as signals.
Definition Ops.h.inc:1298
::std::optional< ::mlir::ArrayAttr > getConstParams()
Definition Ops.cpp.inc:1681
void setSymName(::llvm::StringRef attrValue)
Definition Ops.cpp.inc:1686
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:1166
bool hasParamNamed(::mlir::StringAttr find)
Return true iff this StructDefOp has a parameter with the given name.
::llvm::LogicalResult verifyRegions()
Definition Ops.cpp:314
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:1746
::mlir::ArrayAttr getConstParamsAttr()
Definition Ops.h.inc:1231
::llzk::function::FuncDefOp getComputeFuncOp()
Gets the FuncDefOp that defines the compute function in this structure, if present,...
Definition Ops.cpp:426
bool hasComputeConstrain()
Returns true iff this structure defines compute and constrain functions.
Definition Ops.h.inc:1318
::mlir::StringAttr getSymNameAttrName()
Definition Ops.h.inc:1181
bool isMainComponent()
Return true iff this StructDefOp is the main struct. See llzk::MAIN_ATTR_NAME.
Definition Ops.cpp:448
bool hasConstParamsAttr()
Return false iff getConstParamsAttr() returns nullptr
Definition Ops.h.inc:1324
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:1168
StructDefOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:1165
void setConstParamsAttr(::mlir::ArrayAttr attr)
Definition Ops.h.inc:1241
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:1805
::std::string getHeaderString()
Generate header string, in the same format as the assemblyFormat.
Definition Ops.cpp:162
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:50
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.h.inc:59
CreateStructOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:53
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.h.inc:237
MemberDefOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:231
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:227
::std::optional<::mlir::Attribute > getTableOffset()
Definition Ops.cpp.inc:707
MemberReadOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:537
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:533
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.cpp.inc:684
MemberWriteOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:841
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:837
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.h.inc:847
::std::optional< ::mlir::ArrayAttr > getConstParams()
Definition Ops.cpp.inc:1530
StructDefOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:1079
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:1075
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.h.inc:1085
constexpr char FUNC_NAME_COMPUTE[]
Symbol name for the witness generation (and resp.
Definition Constants.h:16
constexpr char FUNC_NAME_CONSTRAIN[]
Definition Constants.h:17
llvm::StringLiteral getOperationName()
Get the operation name, like "constrain.eq" for the given OpClass.
Definition OpHelpers.h:27
void setColumn(const ::mlir::UnitAttr &propValue)
Definition Ops.h.inc:180
void setSymName(const ::mlir::StringAttr &propValue)
Definition Ops.h.inc:200
void setSignal(const ::mlir::UnitAttr &propValue)
Definition Ops.h.inc:190
void setNumDimsPerMap(const ::mlir::DenseI32ArrayAttr &propValue)
Definition Ops.h.inc:506
void setMapOpGroupSizes(const ::mlir::DenseI32ArrayAttr &propValue)
Definition Ops.h.inc:486
void setTableOffset(const ::mlir::Attribute &propValue)
Definition Ops.h.inc:516
void setMemberName(const ::mlir::FlatSymbolRefAttr &propValue)
Definition Ops.h.inc:496
void setMemberName(const ::mlir::FlatSymbolRefAttr &propValue)
Definition Ops.h.inc:823
void setConstParams(const ::mlir::ArrayAttr &propValue)
Definition Ops.h.inc:1050
void setSymName(const ::mlir::StringAttr &propValue)
Definition Ops.h.inc:1060