LLZK 0.1.0
Veridise's ZK Language IR
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 array {
12class ArrayLengthOp;
13} // namespace array
14} // namespace llzk
15namespace llzk {
16namespace array {
17class CreateArrayOp;
18} // namespace array
19} // namespace llzk
20namespace llzk {
21namespace array {
22class ExtractArrayOp;
23} // namespace array
24} // namespace llzk
25namespace llzk {
26namespace array {
27class InsertArrayOp;
28} // namespace array
29} // namespace llzk
30namespace llzk {
31namespace array {
32class ReadArrayOp;
33} // namespace array
34} // namespace llzk
35namespace llzk {
36namespace array {
37class WriteArrayOp;
38} // namespace array
39} // namespace llzk
40#ifdef GET_OP_CLASSES
41#undef GET_OP_CLASSES
42
43namespace llzk {
44namespace array {
45
46//===----------------------------------------------------------------------===//
47// ::llzk::array::ArrayLengthOp declarations
48//===----------------------------------------------------------------------===//
49
50namespace detail {
52public:
53protected:
54 ::mlir::DictionaryAttr odsAttrs;
55 ::std::optional<::mlir::OperationName> odsOpName;
56 ::mlir::RegionRange odsRegions;
57public:
58 ArrayLengthOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
59 odsOpName.emplace("array.len", odsAttrs.getContext());
60 }
61
62 ArrayLengthOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
63
64 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize) {
65 return {index, 1};
66 }
67
68 ::mlir::DictionaryAttr getAttributes() {
69 return odsAttrs;
70 }
71
72};
73} // namespace detail
74template <typename RangeT>
76 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
78public:
79 ArrayLengthOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
80
81 ArrayLengthOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : ArrayLengthOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
82
83 ArrayLengthOpGenericAdaptor(RangeT values, const ArrayLengthOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
84
85 template <typename LateInst = ArrayLengthOp, typename = std::enable_if_t<std::is_same_v<LateInst, ArrayLengthOp>>>
86 ArrayLengthOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
87
88 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
89 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
90 }
91
92 RangeT getODSOperands(unsigned index) {
93 auto valueRange = getODSOperandIndexAndLength(index);
94 return {std::next(odsOperands.begin(), valueRange.first),
95 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
96 }
97
98 ValueT getArrRef() {
99 return (*getODSOperands(0).begin());
100 }
101
102 ValueT getDim() {
103 return (*getODSOperands(1).begin());
104 }
105
106 RangeT getOperands() {
107 return odsOperands;
108 }
109
110private:
111 RangeT odsOperands;
112};
113class ArrayLengthOpAdaptor : public ArrayLengthOpGenericAdaptor<::mlir::ValueRange> {
114public:
117
118 ::llvm::LogicalResult verify(::mlir::Location loc);
119};
120class ArrayLengthOp : public ::mlir::Op<ArrayLengthOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::mlir::IndexType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::NOperands<2>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::SymbolUserOpInterface::Trait, ::llzk::array::ArrayRefOpInterface::Trait, ::mlir::InferTypeOpInterface::Trait> {
121public:
122 using Op::Op;
123 using Op::print;
125 template <typename RangeT>
128 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
129 return {};
130 }
131
132 static constexpr ::llvm::StringLiteral getOperationName() {
133 return ::llvm::StringLiteral("array.len");
134 }
135
136 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
137 return {index, 1};
138 }
139
140 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
141 auto valueRange = getODSOperandIndexAndLength(index);
142 return {std::next(getOperation()->operand_begin(), valueRange.first),
143 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
144 }
145
146 ::mlir::TypedValue<::llzk::array::ArrayType> getArrRef() {
147 return ::llvm::cast<::mlir::TypedValue<::llzk::array::ArrayType>>(*getODSOperands(0).begin());
148 }
149
150 ::mlir::TypedValue<::mlir::IndexType> getDim() {
151 return ::llvm::cast<::mlir::TypedValue<::mlir::IndexType>>(*getODSOperands(1).begin());
152 }
153
154 ::mlir::OpOperand &getArrRefMutable() {
155 auto range = getODSOperandIndexAndLength(0);
156 return getOperation()->getOpOperand(range.first);
157 }
158
159 ::mlir::OpOperand &getDimMutable() {
160 auto range = getODSOperandIndexAndLength(1);
161 return getOperation()->getOpOperand(range.first);
162 }
163
164 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
165 return {index, 1};
166 }
167
168 ::mlir::Operation::result_range getODSResults(unsigned index) {
169 auto valueRange = getODSResultIndexAndLength(index);
170 return {std::next(getOperation()->result_begin(), valueRange.first),
171 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
172 }
173
174 ::mlir::TypedValue<::mlir::IndexType> getLength() {
175 return ::llvm::cast<::mlir::TypedValue<::mlir::IndexType>>(*getODSResults(0).begin());
176 }
177
178 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type length, ::mlir::Value arr_ref, ::mlir::Value dim);
179 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value arr_ref, ::mlir::Value dim);
180 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value arr_ref, ::mlir::Value dim);
181 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
182 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
183 ::llvm::LogicalResult verifyInvariantsImpl();
184 ::llvm::LogicalResult verifyInvariants();
185 static ::llvm::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location> location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type>&inferredReturnTypes);
186 ::llvm::LogicalResult verifySymbolUses(::mlir::SymbolTableCollection &symbolTable);
187 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
188 void print(::mlir::OpAsmPrinter &_odsPrinter);
189 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
190public:
192 inline ::llzk::array::ArrayType getArrRefType() {
193 return ::llvm::cast<ArrayRefOpInterface>(getOperation()).getArrRefType();
194 }
195};
196} // namespace array
197} // namespace llzk
198MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::array::ArrayLengthOp)
199
200namespace llzk {
201namespace array {
202
203//===----------------------------------------------------------------------===//
204// ::llzk::array::CreateArrayOp declarations
205//===----------------------------------------------------------------------===//
206
207namespace detail {
209public:
210 struct Properties {
211 using mapOpGroupSizesTy = ::mlir::DenseI32ArrayAttr;
213
215 auto &propStorage = this->mapOpGroupSizes;
216 return ::llvm::cast<::mlir::DenseI32ArrayAttr>(propStorage);
217 }
218 void setMapOpGroupSizes(const ::mlir::DenseI32ArrayAttr &propValue) {
219 this->mapOpGroupSizes = propValue;
220 }
221 using numDimsPerMapTy = ::mlir::DenseI32ArrayAttr;
223
225 auto &propStorage = this->numDimsPerMap;
226 return ::llvm::dyn_cast_or_null<::mlir::DenseI32ArrayAttr>(propStorage);
227 }
228 void setNumDimsPerMap(const ::mlir::DenseI32ArrayAttr &propValue) {
229 this->numDimsPerMap = propValue;
230 }
231 using operandSegmentSizesTy = std::array<int32_t, 2>;
233 ::llvm::ArrayRef<int32_t> getOperandSegmentSizes() const {
234 auto &propStorage = this->operandSegmentSizes;
235 return propStorage;
236 }
237 void setOperandSegmentSizes(::llvm::ArrayRef<int32_t> propValue) {
238 auto &propStorage = this->operandSegmentSizes;
239 ::llvm::copy(propValue, propStorage.begin());
240 }
241 bool operator==(const Properties &rhs) const {
242 return
243 rhs.mapOpGroupSizes == this->mapOpGroupSizes &&
244 rhs.numDimsPerMap == this->numDimsPerMap &&
245 rhs.operandSegmentSizes == this->operandSegmentSizes &&
246 true;
247 }
248 bool operator!=(const Properties &rhs) const {
249 return !(*this == rhs);
250 }
251 };
252protected:
253 ::mlir::DictionaryAttr odsAttrs;
254 ::std::optional<::mlir::OperationName> odsOpName;
256 ::mlir::RegionRange odsRegions;
257public:
258 CreateArrayOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), properties(properties), odsRegions(regions) { if (odsAttrs)
259 odsOpName.emplace("array.new", odsAttrs.getContext());
260 }
261
263
264 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize);
266 return properties;
267 }
268
269 ::mlir::DictionaryAttr getAttributes() {
270 return odsAttrs;
271 }
272
273 ::mlir::DenseI32ArrayAttr getNumDimsPerMapAttr();
274 ::llvm::ArrayRef<int32_t> getNumDimsPerMap();
275 ::mlir::DenseI32ArrayAttr getMapOpGroupSizesAttr() {
276 auto attr = ::llvm::cast<::mlir::DenseI32ArrayAttr>(getProperties().mapOpGroupSizes);
277 return attr;
278 }
279
280 ::llvm::ArrayRef<int32_t> getMapOpGroupSizes();
281};
282} // namespace detail
283template <typename RangeT>
285 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
287public:
288 CreateArrayOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
289
290 CreateArrayOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : CreateArrayOpGenericAdaptor(values, attrs, (properties ? *properties.as<Properties *>() : Properties{}), regions) {}
291
292 CreateArrayOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs) : CreateArrayOpGenericAdaptor(values, attrs, Properties{}, {}) {}
293
294 CreateArrayOpGenericAdaptor(RangeT values, const CreateArrayOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
295
296 template <typename LateInst = CreateArrayOp, typename = std::enable_if_t<std::is_same_v<LateInst, CreateArrayOp>>>
297 CreateArrayOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
298
299 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
300 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
301 }
302
303 RangeT getODSOperands(unsigned index) {
304 auto valueRange = getODSOperandIndexAndLength(index);
305 return {std::next(odsOperands.begin(), valueRange.first),
306 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
307 }
308
309 RangeT getElements() {
310 return getODSOperands(0);
311 }
312
313 ::llvm::SmallVector<RangeT> getMapOperands() {
314 auto tblgenTmpOperands = getODSOperands(1);
315 auto sizes = getMapOpGroupSizes();
316
317 ::llvm::SmallVector<RangeT> tblgenTmpOperandGroups;
318 for (int i = 0, e = sizes.size(); i < e; ++i) {
319 tblgenTmpOperandGroups.push_back(tblgenTmpOperands.take_front(sizes[i]));
320 tblgenTmpOperands = tblgenTmpOperands.drop_front(sizes[i]);
321 }
322 return tblgenTmpOperandGroups;
323 }
324
325 RangeT getOperands() {
326 return odsOperands;
327 }
328
329private:
330 RangeT odsOperands;
331};
332class CreateArrayOpAdaptor : public CreateArrayOpGenericAdaptor<::mlir::ValueRange> {
333public:
336
337 ::llvm::LogicalResult verify(::mlir::Location loc);
338};
339class CreateArrayOp : public ::mlir::Op<CreateArrayOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::array::ArrayType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::VariadicOperands, ::mlir::OpTrait::AttrSizedOperandSegments, ::llzk::VerifySizesForMultiAffineOps<1>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::BytecodeOpInterface::Trait, ::mlir::ConditionallySpeculatable::Trait, ::mlir::OpTrait::AlwaysSpeculatableImplTrait, ::mlir::MemoryEffectOpInterface::Trait, ::mlir::SymbolUserOpInterface::Trait, ::mlir::OpAsmOpInterface::Trait, ::mlir::PromotableAllocationOpInterface::Trait, ::mlir::DestructurableAllocationOpInterface::Trait> {
340public:
341 using Op::Op;
342 using Op::print;
344 template <typename RangeT>
348 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
349 static ::llvm::StringRef attrNames[] = {::llvm::StringRef("mapOpGroupSizes"), ::llvm::StringRef("numDimsPerMap"), ::llvm::StringRef("operandSegmentSizes")};
350 return ::llvm::ArrayRef(attrNames);
351 }
352
353 ::mlir::StringAttr getMapOpGroupSizesAttrName() {
354 return getAttributeNameForIndex(0);
355 }
356
357 static ::mlir::StringAttr getMapOpGroupSizesAttrName(::mlir::OperationName name) {
358 return getAttributeNameForIndex(name, 0);
359 }
360
361 ::mlir::StringAttr getNumDimsPerMapAttrName() {
362 return getAttributeNameForIndex(1);
363 }
364
365 static ::mlir::StringAttr getNumDimsPerMapAttrName(::mlir::OperationName name) {
366 return getAttributeNameForIndex(name, 1);
367 }
368
369 ::mlir::StringAttr getOperandSegmentSizesAttrName() {
370 return (*this)->getName().getAttributeNames().back();
371 }
372
373 static ::mlir::StringAttr getOperandSegmentSizesAttrName(::mlir::OperationName name) {
374 return name.getAttributeNames().back();
375 }
376
377 static constexpr ::llvm::StringLiteral getOperationName() {
378 return ::llvm::StringLiteral("array.new");
379 }
380
381 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index);
382 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
383 auto valueRange = getODSOperandIndexAndLength(index);
384 return {std::next(getOperation()->operand_begin(), valueRange.first),
385 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
386 }
387
388 ::mlir::Operation::operand_range getElements() {
389 return getODSOperands(0);
390 }
391
392 ::mlir::OperandRangeRange getMapOperands() {
393 return getODSOperands(1).split(getMapOpGroupSizesAttr());
394 }
395
396 ::mlir::MutableOperandRange getElementsMutable();
397 ::mlir::MutableOperandRangeRange getMapOperandsMutable();
398 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
399 return {index, 1};
400 }
401
402 ::mlir::Operation::result_range getODSResults(unsigned index) {
403 auto valueRange = getODSResultIndexAndLength(index);
404 return {std::next(getOperation()->result_begin(), valueRange.first),
405 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
406 }
407
408 ::mlir::TypedValue<::llzk::array::ArrayType> getResult() {
409 return ::llvm::cast<::mlir::TypedValue<::llzk::array::ArrayType>>(*getODSResults(0).begin());
410 }
411
412 static ::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
413 static ::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop);
414 static llvm::hash_code computePropertiesHash(const Properties &prop);
415 static std::optional<mlir::Attribute> getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name);
416 static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value);
417 static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs);
418 static ::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
419 static ::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state);
420 void writeProperties(::mlir::DialectBytecodeWriter &writer);
421 ::mlir::DenseI32ArrayAttr getNumDimsPerMapAttr() {
422 return ::llvm::dyn_cast_or_null<::mlir::DenseI32ArrayAttr>(getProperties().numDimsPerMap);
423 }
424
425 ::llvm::ArrayRef<int32_t> getNumDimsPerMap();
426 ::mlir::DenseI32ArrayAttr getMapOpGroupSizesAttr() {
427 return ::llvm::cast<::mlir::DenseI32ArrayAttr>(getProperties().mapOpGroupSizes);
428 }
429
430 ::llvm::ArrayRef<int32_t> getMapOpGroupSizes();
431 void setNumDimsPerMapAttr(::mlir::DenseI32ArrayAttr attr) {
432 getProperties().numDimsPerMap = attr;
433 }
434
435 void setNumDimsPerMap(::llvm::ArrayRef<int32_t> attrValue);
436 void setMapOpGroupSizesAttr(::mlir::DenseI32ArrayAttr attr) {
437 getProperties().mapOpGroupSizes = attr;
438 }
439
440 void setMapOpGroupSizes(::llvm::ArrayRef<int32_t> attrValue);
441 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llzk::array::ArrayType result, ::mlir::ValueRange elements = {});
442 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llzk::array::ArrayType result, ::llvm::ArrayRef<::mlir::ValueRange> mapOperands, ::mlir::DenseI32ArrayAttr numDimsPerMap);
443 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llzk::array::ArrayType result, ::llvm::ArrayRef<::mlir::ValueRange> mapOperands, ::llvm::ArrayRef<int32_t> numDimsPerMap);
444 static void populateDefaultProperties(::mlir::OperationName opName, Properties &properties);
445 ::llvm::LogicalResult verifyInvariantsImpl();
446 ::llvm::LogicalResult verifyInvariants();
447 ::llvm::LogicalResult verify();
448 ::llvm::LogicalResult verifySymbolUses(::mlir::SymbolTableCollection &symbolTable);
449 void getAsmResultNames(::mlir::OpAsmSetValueNameFn setNameFn);
450 ::llvm::SmallVector<::mlir::MemorySlot> getPromotableSlots();
451 ::mlir::Value getDefaultValue(const ::mlir::MemorySlot &slot, ::mlir::OpBuilder &builder);
452 void handleBlockArgument(const ::mlir::MemorySlot &slot, ::mlir::BlockArgument argument, ::mlir::OpBuilder &builder);
453 ::std::optional<::mlir::PromotableAllocationOpInterface> handlePromotionComplete(const ::mlir::MemorySlot &slot, ::mlir::Value defaultValue, ::mlir::OpBuilder &builder);
454 ::llvm::SmallVector<::mlir::DestructurableMemorySlot> getDestructurableSlots();
455 ::llvm::DenseMap<::mlir::Attribute, ::mlir::MemorySlot> destructure(const ::mlir::DestructurableMemorySlot &slot, const ::llvm::SmallPtrSetImpl<::mlir::Attribute> &usedIndices, ::mlir::OpBuilder &builder, ::mlir::SmallVectorImpl<::mlir::DestructurableAllocationOpInterface> &newAllocators);
456 ::std::optional<::mlir::DestructurableAllocationOpInterface> handleDestructuringComplete(const ::mlir::DestructurableMemorySlot &slot, ::mlir::OpBuilder &builder);
457 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
458 static ::llvm::LogicalResult setPropertiesFromParsedAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError);
459 void print(::mlir::OpAsmPrinter &_odsPrinter);
460 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> &effects);
461private:
462 ::mlir::StringAttr getAttributeNameForIndex(unsigned index) {
463 return getAttributeNameForIndex((*this)->getName(), index);
464 }
465
466 static ::mlir::StringAttr getAttributeNameForIndex(::mlir::OperationName name, unsigned index) {
467 assert(index < 2 && "invalid attribute index");
468 assert(name.getStringRef() == getOperationName() && "invalid operation name");
469 assert(name.isRegistered() && "Operation isn't registered, missing a "
470 "dependent dialect loading?");
471 return name.getAttributeNames()[index];
472 }
473
474public:
475 static ::mlir::ParseResult parseInferredArrayType(::mlir::OpAsmParser &parser,
476 ::llvm::SmallVector<::mlir::Type,1> &elementsTypes,
477 ::mlir::ArrayRef<::mlir::OpAsmParser::UnresolvedOperand> elements,
478 ::mlir::Type resultType
479 );
480 static void printInferredArrayType(::mlir::OpAsmPrinter &printer, CreateArrayOp,
481 ::mlir::TypeRange, ::mlir::OperandRange, ::mlir::Type
482 );
483 private:
484 static ::llvm::SmallVector<::mlir::Type> resultTypeToElementsTypes(::mlir::Type resultType);
485};
486} // namespace array
487} // namespace llzk
488MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::array::CreateArrayOp)
489
490namespace llzk {
491namespace array {
492
493//===----------------------------------------------------------------------===//
494// ::llzk::array::ExtractArrayOp declarations
495//===----------------------------------------------------------------------===//
496
497namespace detail {
499public:
500protected:
501 ::mlir::DictionaryAttr odsAttrs;
502 ::std::optional<::mlir::OperationName> odsOpName;
503 ::mlir::RegionRange odsRegions;
504public:
505 ExtractArrayOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
506 odsOpName.emplace("array.extract", odsAttrs.getContext());
507 }
508
509 ExtractArrayOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
510
511 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize);
512 ::mlir::DictionaryAttr getAttributes() {
513 return odsAttrs;
514 }
515
516};
517} // namespace detail
518template <typename RangeT>
520 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
522public:
523 ExtractArrayOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
524
525 ExtractArrayOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : ExtractArrayOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
526
527 ExtractArrayOpGenericAdaptor(RangeT values, const ExtractArrayOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
528
529 template <typename LateInst = ExtractArrayOp, typename = std::enable_if_t<std::is_same_v<LateInst, ExtractArrayOp>>>
530 ExtractArrayOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
531
532 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
533 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
534 }
535
536 RangeT getODSOperands(unsigned index) {
537 auto valueRange = getODSOperandIndexAndLength(index);
538 return {std::next(odsOperands.begin(), valueRange.first),
539 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
540 }
541
542 ValueT getArrRef() {
543 return (*getODSOperands(0).begin());
544 }
545
546 RangeT getIndices() {
547 return getODSOperands(1);
548 }
549
550 RangeT getOperands() {
551 return odsOperands;
552 }
553
554private:
555 RangeT odsOperands;
556};
557class ExtractArrayOpAdaptor : public ExtractArrayOpGenericAdaptor<::mlir::ValueRange> {
558public:
561
562 ::llvm::LogicalResult verify(::mlir::Location loc);
563};
564class ExtractArrayOp : public ::mlir::Op<ExtractArrayOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::llzk::array::ArrayType>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::AtLeastNOperands<1>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::InferTypeOpInterface::Trait, ::mlir::OpTrait::InferTypeOpAdaptor, ::mlir::SymbolUserOpInterface::Trait, ::llzk::array::ArrayRefOpInterface::Trait, ::llzk::array::ArrayAccessOpInterface::Trait> {
565public:
566 using Op::Op;
567 using Op::print;
569 template <typename RangeT>
572 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
573 return {};
574 }
575
576 static constexpr ::llvm::StringLiteral getOperationName() {
577 return ::llvm::StringLiteral("array.extract");
578 }
579
580 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index);
581 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
582 auto valueRange = getODSOperandIndexAndLength(index);
583 return {std::next(getOperation()->operand_begin(), valueRange.first),
584 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
585 }
586
587 ::mlir::TypedValue<::llzk::array::ArrayType> getArrRef() {
588 return ::llvm::cast<::mlir::TypedValue<::llzk::array::ArrayType>>(*getODSOperands(0).begin());
589 }
590
591 ::mlir::Operation::operand_range getIndices() {
592 return getODSOperands(1);
593 }
594
595 ::mlir::OpOperand &getArrRefMutable() {
596 auto range = getODSOperandIndexAndLength(0);
597 return getOperation()->getOpOperand(range.first);
598 }
599
600 ::mlir::MutableOperandRange getIndicesMutable();
601 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
602 return {index, 1};
603 }
604
605 ::mlir::Operation::result_range getODSResults(unsigned index) {
606 auto valueRange = getODSResultIndexAndLength(index);
607 return {std::next(getOperation()->result_begin(), valueRange.first),
608 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
609 }
610
611 ::mlir::TypedValue<::llzk::array::ArrayType> getResult() {
612 return ::llvm::cast<::mlir::TypedValue<::llzk::array::ArrayType>>(*getODSResults(0).begin());
613 }
614
615 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value arr_ref, ::mlir::ValueRange indices);
616 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value arr_ref, ::mlir::ValueRange indices);
617 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value arr_ref, ::mlir::ValueRange indices);
618 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
619 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
620 ::llvm::LogicalResult verifyInvariantsImpl();
621 ::llvm::LogicalResult verifyInvariants();
622 static ::llvm::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location> location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type>&inferredReturnTypes);
623 ::llvm::LogicalResult verifySymbolUses(::mlir::SymbolTableCollection &symbolTable);
624 bool isRead();
625 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
626 void print(::mlir::OpAsmPrinter &_odsPrinter);
627public:
628 static ::llvm::LogicalResult
629 inferReturnTypes(::mlir::MLIRContext *context,
630 std::optional<::mlir::Location> location,
631 Adaptor adaptor,
632 ::llvm::SmallVectorImpl<::mlir::Type> &inferredReturnTypes);
633
634 static bool isCompatibleReturnTypes(::mlir::TypeRange l, ::mlir::TypeRange r);
635
636
638 inline ::llzk::array::ArrayType getArrRefType() {
639 return ::llvm::cast<ArrayAccessOpInterface>(getOperation()).getArrRefType();
640 }
641};
642} // namespace array
643} // namespace llzk
644MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::array::ExtractArrayOp)
645
646namespace llzk {
647namespace array {
648
649//===----------------------------------------------------------------------===//
650// ::llzk::array::InsertArrayOp declarations
651//===----------------------------------------------------------------------===//
652
653namespace detail {
655public:
656protected:
657 ::mlir::DictionaryAttr odsAttrs;
658 ::std::optional<::mlir::OperationName> odsOpName;
659 ::mlir::RegionRange odsRegions;
660public:
661 InsertArrayOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
662 odsOpName.emplace("array.insert", odsAttrs.getContext());
663 }
664
665 InsertArrayOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
666
667 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize);
668 ::mlir::DictionaryAttr getAttributes() {
669 return odsAttrs;
670 }
671
672};
673} // namespace detail
674template <typename RangeT>
676 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
678public:
679 InsertArrayOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
680
681 InsertArrayOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : InsertArrayOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
682
683 InsertArrayOpGenericAdaptor(RangeT values, const InsertArrayOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
684
685 template <typename LateInst = InsertArrayOp, typename = std::enable_if_t<std::is_same_v<LateInst, InsertArrayOp>>>
686 InsertArrayOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
687
688 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
689 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
690 }
691
692 RangeT getODSOperands(unsigned index) {
693 auto valueRange = getODSOperandIndexAndLength(index);
694 return {std::next(odsOperands.begin(), valueRange.first),
695 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
696 }
697
698 ValueT getArrRef() {
699 return (*getODSOperands(0).begin());
700 }
701
702 RangeT getIndices() {
703 return getODSOperands(1);
704 }
705
706 ValueT getRvalue() {
707 return (*getODSOperands(2).begin());
708 }
709
710 RangeT getOperands() {
711 return odsOperands;
712 }
713
714private:
715 RangeT odsOperands;
716};
717class InsertArrayOpAdaptor : public InsertArrayOpGenericAdaptor<::mlir::ValueRange> {
718public:
721
722 ::llvm::LogicalResult verify(::mlir::Location loc);
723};
724class InsertArrayOp : public ::mlir::Op<InsertArrayOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::AtLeastNOperands<2>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::SymbolUserOpInterface::Trait, ::llzk::array::ArrayRefOpInterface::Trait, ::llzk::array::ArrayAccessOpInterface::Trait> {
725public:
726 using Op::Op;
727 using Op::print;
729 template <typename RangeT>
732 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
733 return {};
734 }
735
736 static constexpr ::llvm::StringLiteral getOperationName() {
737 return ::llvm::StringLiteral("array.insert");
738 }
739
740 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index);
741 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
742 auto valueRange = getODSOperandIndexAndLength(index);
743 return {std::next(getOperation()->operand_begin(), valueRange.first),
744 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
745 }
746
747 ::mlir::TypedValue<::llzk::array::ArrayType> getArrRef() {
748 return ::llvm::cast<::mlir::TypedValue<::llzk::array::ArrayType>>(*getODSOperands(0).begin());
749 }
750
751 ::mlir::Operation::operand_range getIndices() {
752 return getODSOperands(1);
753 }
754
755 ::mlir::TypedValue<::llzk::array::ArrayType> getRvalue() {
756 return ::llvm::cast<::mlir::TypedValue<::llzk::array::ArrayType>>(*getODSOperands(2).begin());
757 }
758
759 ::mlir::OpOperand &getArrRefMutable() {
760 auto range = getODSOperandIndexAndLength(0);
761 return getOperation()->getOpOperand(range.first);
762 }
763
764 ::mlir::MutableOperandRange getIndicesMutable();
765 ::mlir::OpOperand &getRvalueMutable() {
766 auto range = getODSOperandIndexAndLength(2);
767 return getOperation()->getOpOperand(range.first);
768 }
769
770 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
771 return {index, 1};
772 }
773
774 ::mlir::Operation::result_range getODSResults(unsigned index) {
775 auto valueRange = getODSResultIndexAndLength(index);
776 return {std::next(getOperation()->result_begin(), valueRange.first),
777 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
778 }
779
780 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value arr_ref, ::mlir::ValueRange indices, ::mlir::Value rvalue);
781 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value arr_ref, ::mlir::ValueRange indices, ::mlir::Value rvalue);
782 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
783 ::llvm::LogicalResult verifyInvariantsImpl();
784 ::llvm::LogicalResult verifyInvariants();
785 ::llvm::LogicalResult verify();
786 ::llvm::LogicalResult verifySymbolUses(::mlir::SymbolTableCollection &symbolTable);
787 bool isRead();
788 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
789 void print(::mlir::OpAsmPrinter &_odsPrinter);
790public:
792 inline ::llzk::array::ArrayType getArrRefType() {
793 return ::llvm::cast<ArrayAccessOpInterface>(getOperation()).getArrRefType();
794 }
795};
796} // namespace array
797} // namespace llzk
798MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::array::InsertArrayOp)
799
800namespace llzk {
801namespace array {
802
803//===----------------------------------------------------------------------===//
804// ::llzk::array::ReadArrayOp declarations
805//===----------------------------------------------------------------------===//
806
807namespace detail {
809public:
810protected:
811 ::mlir::DictionaryAttr odsAttrs;
812 ::std::optional<::mlir::OperationName> odsOpName;
813 ::mlir::RegionRange odsRegions;
814public:
815 ReadArrayOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
816 odsOpName.emplace("array.read", odsAttrs.getContext());
817 }
818
819 ReadArrayOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
820
821 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize);
822 ::mlir::DictionaryAttr getAttributes() {
823 return odsAttrs;
824 }
825
826};
827} // namespace detail
828template <typename RangeT>
830 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
832public:
833 ReadArrayOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
834
835 ReadArrayOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : ReadArrayOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
836
837 ReadArrayOpGenericAdaptor(RangeT values, const ReadArrayOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
838
839 template <typename LateInst = ReadArrayOp, typename = std::enable_if_t<std::is_same_v<LateInst, ReadArrayOp>>>
840 ReadArrayOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
841
842 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
843 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
844 }
845
846 RangeT getODSOperands(unsigned index) {
847 auto valueRange = getODSOperandIndexAndLength(index);
848 return {std::next(odsOperands.begin(), valueRange.first),
849 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
850 }
851
852 ValueT getArrRef() {
853 return (*getODSOperands(0).begin());
854 }
855
856 RangeT getIndices() {
857 return getODSOperands(1);
858 }
859
860 RangeT getOperands() {
861 return odsOperands;
862 }
863
864private:
865 RangeT odsOperands;
866};
867class ReadArrayOpAdaptor : public ReadArrayOpGenericAdaptor<::mlir::ValueRange> {
868public:
871
872 ::llvm::LogicalResult verify(::mlir::Location loc);
873};
874class ReadArrayOp : public ::mlir::Op<ReadArrayOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::OneResult, ::mlir::OpTrait::OneTypedResult<::mlir::Type>::Impl, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::AtLeastNOperands<1>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::InferTypeOpInterface::Trait, ::mlir::OpTrait::InferTypeOpAdaptor, ::mlir::DestructurableAccessorOpInterface::Trait, ::mlir::PromotableMemOpInterface::Trait, ::mlir::SymbolUserOpInterface::Trait, ::llzk::array::ArrayRefOpInterface::Trait, ::llzk::array::ArrayAccessOpInterface::Trait> {
875public:
876 using Op::Op;
877 using Op::print;
879 template <typename RangeT>
882 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
883 return {};
884 }
885
886 static constexpr ::llvm::StringLiteral getOperationName() {
887 return ::llvm::StringLiteral("array.read");
888 }
889
890 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index);
891 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
892 auto valueRange = getODSOperandIndexAndLength(index);
893 return {std::next(getOperation()->operand_begin(), valueRange.first),
894 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
895 }
896
897 ::mlir::TypedValue<::llzk::array::ArrayType> getArrRef() {
898 return ::llvm::cast<::mlir::TypedValue<::llzk::array::ArrayType>>(*getODSOperands(0).begin());
899 }
900
901 ::mlir::Operation::operand_range getIndices() {
902 return getODSOperands(1);
903 }
904
905 ::mlir::OpOperand &getArrRefMutable() {
906 auto range = getODSOperandIndexAndLength(0);
907 return getOperation()->getOpOperand(range.first);
908 }
909
910 ::mlir::MutableOperandRange getIndicesMutable();
911 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
912 return {index, 1};
913 }
914
915 ::mlir::Operation::result_range getODSResults(unsigned index) {
916 auto valueRange = getODSResultIndexAndLength(index);
917 return {std::next(getOperation()->result_begin(), valueRange.first),
918 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
919 }
920
921 ::mlir::TypedValue<::mlir::Type> getResult() {
922 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSResults(0).begin());
923 }
924
925 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value arr_ref, ::mlir::ValueRange indices);
926 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value arr_ref, ::mlir::ValueRange indices);
927 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value arr_ref, ::mlir::ValueRange indices);
928 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
929 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
930 ::llvm::LogicalResult verifyInvariantsImpl();
931 ::llvm::LogicalResult verifyInvariants();
932 ::llvm::LogicalResult verify();
933 static ::llvm::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location> location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type>&inferredReturnTypes);
934 bool canRewire(const ::mlir::DestructurableMemorySlot &slot, ::llvm::SmallPtrSetImpl<::mlir::Attribute> &usedIndices, ::mlir::SmallVectorImpl<::mlir::MemorySlot> &mustBeSafelyUsed, const ::mlir::DataLayout &dataLayout);
935 ::mlir::DeletionKind rewire(const ::mlir::DestructurableMemorySlot &slot, ::llvm::DenseMap<::mlir::Attribute, ::mlir::MemorySlot> &subslots, ::mlir::OpBuilder &builder, const ::mlir::DataLayout &dataLayout);
936 bool loadsFrom(const ::mlir::MemorySlot &slot);
937 bool storesTo(const ::mlir::MemorySlot &slot);
938 ::mlir::Value getStored(const ::mlir::MemorySlot &slot, ::mlir::OpBuilder &builder, ::mlir::Value reachingDef, const ::mlir::DataLayout &dataLayout);
939 bool canUsesBeRemoved(const ::mlir::MemorySlot &slot, const ::llvm::SmallPtrSetImpl<::mlir::OpOperand *> &blockingUses, ::llvm::SmallVectorImpl<::mlir::OpOperand *> &newBlockingUses, const ::mlir::DataLayout &datalayout);
940 ::mlir::DeletionKind removeBlockingUses(const ::mlir::MemorySlot &slot, const ::llvm::SmallPtrSetImpl<mlir::OpOperand *> &blockingUses, ::mlir::OpBuilder &builder, ::mlir::Value reachingDefinition, const ::mlir::DataLayout &dataLayout);
941 ::llvm::LogicalResult verifySymbolUses(::mlir::SymbolTableCollection &symbolTable);
942 bool isRead();
943 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
944 void print(::mlir::OpAsmPrinter &_odsPrinter);
945public:
946 static ::llvm::LogicalResult
947 inferReturnTypes(::mlir::MLIRContext *context,
948 std::optional<::mlir::Location> location,
949 Adaptor adaptor,
950 ::llvm::SmallVectorImpl<::mlir::Type> &inferredReturnTypes);
951
952 static bool isCompatibleReturnTypes(::mlir::TypeRange l, ::mlir::TypeRange r);
953
954
956 inline ::llzk::array::ArrayType getArrRefType() {
957 return ::llvm::cast<ArrayAccessOpInterface>(getOperation()).getArrRefType();
958 }
959};
960} // namespace array
961} // namespace llzk
962MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::array::ReadArrayOp)
963
964namespace llzk {
965namespace array {
966
967//===----------------------------------------------------------------------===//
968// ::llzk::array::WriteArrayOp declarations
969//===----------------------------------------------------------------------===//
970
971namespace detail {
973public:
974protected:
975 ::mlir::DictionaryAttr odsAttrs;
976 ::std::optional<::mlir::OperationName> odsOpName;
977 ::mlir::RegionRange odsRegions;
978public:
979 WriteArrayOpGenericAdaptorBase(::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : odsAttrs(attrs), odsRegions(regions) { if (odsAttrs)
980 odsOpName.emplace("array.write", odsAttrs.getContext());
981 }
982
983 WriteArrayOpGenericAdaptorBase(::mlir::Operation *op) : odsAttrs(op->getRawDictionaryAttrs()), odsOpName(op->getName()), odsRegions(op->getRegions()) {}
984
985 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize);
986 ::mlir::DictionaryAttr getAttributes() {
987 return odsAttrs;
988 }
989
990};
991} // namespace detail
992template <typename RangeT>
994 using ValueT = ::llvm::detail::ValueOfRange<RangeT>;
996public:
997 WriteArrayOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs = {}, const ::mlir::EmptyProperties &properties = {}, ::mlir::RegionRange regions = {}) : Base(attrs, properties, regions), odsOperands(values) {}
998
999 WriteArrayOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions = {}) : WriteArrayOpGenericAdaptor(values, attrs, (properties ? *properties.as<::mlir::EmptyProperties *>() : ::mlir::EmptyProperties{}), regions) {}
1000
1001 WriteArrayOpGenericAdaptor(RangeT values, const WriteArrayOpGenericAdaptorBase &base) : Base(base), odsOperands(values) {}
1002
1003 template <typename LateInst = WriteArrayOp, typename = std::enable_if_t<std::is_same_v<LateInst, WriteArrayOp>>>
1004 WriteArrayOpGenericAdaptor(RangeT values, LateInst op) : Base(op), odsOperands(values) {}
1005
1006 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index) {
1007 return Base::getODSOperandIndexAndLength(index, odsOperands.size());
1008 }
1009
1010 RangeT getODSOperands(unsigned index) {
1011 auto valueRange = getODSOperandIndexAndLength(index);
1012 return {std::next(odsOperands.begin(), valueRange.first),
1013 std::next(odsOperands.begin(), valueRange.first + valueRange.second)};
1014 }
1015
1016 ValueT getArrRef() {
1017 return (*getODSOperands(0).begin());
1018 }
1019
1020 RangeT getIndices() {
1021 return getODSOperands(1);
1022 }
1023
1024 ValueT getRvalue() {
1025 return (*getODSOperands(2).begin());
1026 }
1027
1028 RangeT getOperands() {
1029 return odsOperands;
1030 }
1031
1032private:
1033 RangeT odsOperands;
1034};
1035class WriteArrayOpAdaptor : public WriteArrayOpGenericAdaptor<::mlir::ValueRange> {
1036public:
1039
1040 ::llvm::LogicalResult verify(::mlir::Location loc);
1041};
1042class WriteArrayOp : public ::mlir::Op<WriteArrayOp, ::mlir::OpTrait::ZeroRegions, ::mlir::OpTrait::ZeroResults, ::mlir::OpTrait::ZeroSuccessors, ::mlir::OpTrait::AtLeastNOperands<2>::Impl, ::mlir::OpTrait::OpInvariants, ::mlir::DestructurableAccessorOpInterface::Trait, ::mlir::PromotableMemOpInterface::Trait, ::mlir::SymbolUserOpInterface::Trait, ::llzk::array::ArrayRefOpInterface::Trait, ::llzk::array::ArrayAccessOpInterface::Trait> {
1043public:
1044 using Op::Op;
1045 using Op::print;
1047 template <typename RangeT>
1050 static ::llvm::ArrayRef<::llvm::StringRef> getAttributeNames() {
1051 return {};
1052 }
1053
1054 static constexpr ::llvm::StringLiteral getOperationName() {
1055 return ::llvm::StringLiteral("array.write");
1056 }
1057
1058 std::pair<unsigned, unsigned> getODSOperandIndexAndLength(unsigned index);
1059 ::mlir::Operation::operand_range getODSOperands(unsigned index) {
1060 auto valueRange = getODSOperandIndexAndLength(index);
1061 return {std::next(getOperation()->operand_begin(), valueRange.first),
1062 std::next(getOperation()->operand_begin(), valueRange.first + valueRange.second)};
1063 }
1064
1065 ::mlir::TypedValue<::llzk::array::ArrayType> getArrRef() {
1066 return ::llvm::cast<::mlir::TypedValue<::llzk::array::ArrayType>>(*getODSOperands(0).begin());
1067 }
1068
1069 ::mlir::Operation::operand_range getIndices() {
1070 return getODSOperands(1);
1071 }
1072
1073 ::mlir::TypedValue<::mlir::Type> getRvalue() {
1074 return ::llvm::cast<::mlir::TypedValue<::mlir::Type>>(*getODSOperands(2).begin());
1075 }
1076
1077 ::mlir::OpOperand &getArrRefMutable() {
1078 auto range = getODSOperandIndexAndLength(0);
1079 return getOperation()->getOpOperand(range.first);
1080 }
1081
1082 ::mlir::MutableOperandRange getIndicesMutable();
1083 ::mlir::OpOperand &getRvalueMutable() {
1084 auto range = getODSOperandIndexAndLength(2);
1085 return getOperation()->getOpOperand(range.first);
1086 }
1087
1088 std::pair<unsigned, unsigned> getODSResultIndexAndLength(unsigned index) {
1089 return {index, 1};
1090 }
1091
1092 ::mlir::Operation::result_range getODSResults(unsigned index) {
1093 auto valueRange = getODSResultIndexAndLength(index);
1094 return {std::next(getOperation()->result_begin(), valueRange.first),
1095 std::next(getOperation()->result_begin(), valueRange.first + valueRange.second)};
1096 }
1097
1098 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value arr_ref, ::mlir::ValueRange indices, ::mlir::Value rvalue);
1099 static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value arr_ref, ::mlir::ValueRange indices, ::mlir::Value rvalue);
1100 static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes = {});
1101 ::llvm::LogicalResult verifyInvariantsImpl();
1102 ::llvm::LogicalResult verifyInvariants();
1103 ::llvm::LogicalResult verify();
1104 bool canRewire(const ::mlir::DestructurableMemorySlot &slot, ::llvm::SmallPtrSetImpl<::mlir::Attribute> &usedIndices, ::mlir::SmallVectorImpl<::mlir::MemorySlot> &mustBeSafelyUsed, const ::mlir::DataLayout &dataLayout);
1105 ::mlir::DeletionKind rewire(const ::mlir::DestructurableMemorySlot &slot, ::llvm::DenseMap<::mlir::Attribute, ::mlir::MemorySlot> &subslots, ::mlir::OpBuilder &builder, const ::mlir::DataLayout &dataLayout);
1106 bool loadsFrom(const ::mlir::MemorySlot &slot);
1107 bool storesTo(const ::mlir::MemorySlot &slot);
1108 ::mlir::Value getStored(const ::mlir::MemorySlot &slot, ::mlir::OpBuilder &builder, ::mlir::Value reachingDef, const ::mlir::DataLayout &dataLayout);
1109 bool canUsesBeRemoved(const ::mlir::MemorySlot &slot, const ::llvm::SmallPtrSetImpl<::mlir::OpOperand *> &blockingUses, ::llvm::SmallVectorImpl<::mlir::OpOperand *> &newBlockingUses, const ::mlir::DataLayout &datalayout);
1110 ::mlir::DeletionKind removeBlockingUses(const ::mlir::MemorySlot &slot, const ::llvm::SmallPtrSetImpl<mlir::OpOperand *> &blockingUses, ::mlir::OpBuilder &builder, ::mlir::Value reachingDefinition, const ::mlir::DataLayout &dataLayout);
1111 ::llvm::LogicalResult verifySymbolUses(::mlir::SymbolTableCollection &symbolTable);
1112 bool isRead();
1113 static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
1114 void print(::mlir::OpAsmPrinter &_odsPrinter);
1115public:
1117 inline ::llzk::array::ArrayType getArrRefType() {
1118 return ::llvm::cast<ArrayAccessOpInterface>(getOperation()).getArrRefType();
1119 }
1120};
1121} // namespace array
1122} // namespace llzk
1123MLIR_DECLARE_EXPLICIT_TYPE_ID(::llzk::array::WriteArrayOp)
1124
1125
1126#endif // GET_OP_CLASSES
1127
MlirStringRef name
Definition Poly.cpp:48
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:108
ArrayLengthOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:79
ArrayLengthOpAdaptor(ArrayLengthOp op)
Definition Ops.cpp.inc:106
ArrayLengthOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:79
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:92
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:88
ArrayLengthOpGenericAdaptor(RangeT values, const ArrayLengthOpGenericAdaptorBase &base)
Definition Ops.h.inc:83
ArrayLengthOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:86
ArrayLengthOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:81
::mlir::TypedValue<::mlir::IndexType > getLength()
Definition Ops.h.inc:174
inline ::llzk::array::ArrayType getArrRefType()
Gets the type of the referenced base array.
Definition Ops.h.inc:192
::mlir::OpOperand & getArrRefMutable()
Definition Ops.h.inc:154
::mlir::TypedValue<::llzk::array::ArrayType > getArrRef()
Definition Ops.h.inc:146
::llvm::LogicalResult verifySymbolUses(::mlir::SymbolTableCollection &symbolTable)
Definition Ops.cpp:468
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:168
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:164
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:132
::llvm::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
Definition Ops.cpp.inc:199
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:268
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:249
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:140
::mlir::OpOperand & getDimMutable()
Definition Ops.h.inc:159
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type length, ::mlir::Value arr_ref, ::mlir::Value dim)
Definition Ops.cpp.inc:112
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:195
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:207
ArrayLengthOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:126
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:167
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:127
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:128
ArrayLengthOpAdaptor Adaptor
Definition Ops.h.inc:124
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:136
::mlir::TypedValue<::mlir::IndexType > getDim()
Definition Ops.h.inc:150
CreateArrayOpAdaptor(CreateArrayOp op)
Definition Ops.cpp.inc:310
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:312
CreateArrayOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:288
CreateArrayOpGenericAdaptor(RangeT values, const CreateArrayOpGenericAdaptorBase &base)
Definition Ops.h.inc:294
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:299
CreateArrayOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:297
CreateArrayOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:288
::llvm::SmallVector< RangeT > getMapOperands()
Definition Ops.h.inc:313
CreateArrayOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs)
Definition Ops.h.inc:292
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:303
CreateArrayOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:290
static void printInferredArrayType(::mlir::OpAsmPrinter &printer, CreateArrayOp, ::mlir::TypeRange, ::mlir::OperandRange, ::mlir::Type)
Definition Ops.cpp:94
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llzk::array::ArrayType result, ::llvm::ArrayRef<::mlir::ValueRange > mapOperands, ::mlir::DenseI32ArrayAttr numDimsPerMap)
void writeProperties(::mlir::DialectBytecodeWriter &writer)
Definition Ops.cpp.inc:521
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.cpp.inc:325
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:398
static void populateInherentAttrs(::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs)
Definition Ops.cpp.inc:465
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:706
CreateArrayOpAdaptor Adaptor
Definition Ops.h.inc:343
void setNumDimsPerMapAttr(::mlir::DenseI32ArrayAttr attr)
Definition Ops.h.inc:431
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llzk::array::ArrayType result, ::mlir::ValueRange elements={})
::mlir::StringAttr getOperandSegmentSizesAttrName(::mlir::OperationName name)
Definition Ops.h.inc:373
void setMapOpGroupSizesAttr(::mlir::DenseI32ArrayAttr attr)
Definition Ops.h.inc:436
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:348
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Definition Ops.cpp.inc:729
::mlir::TypedValue<::llzk::array::ArrayType > getResult()
Definition Ops.h.inc:408
::llvm::LogicalResult setPropertiesFromParsedAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:678
::llvm::LogicalResult verifyInherentAttrs(::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:472
::mlir::ParseResult parseInferredArrayType(::mlir::OpAsmParser &parser, ::llvm::SmallVector<::mlir::Type, 1 > &elementsTypes, ::mlir::ArrayRef<::mlir::OpAsmParser::UnresolvedOperand > elements, ::mlir::Type resultType)
Definition Ops.cpp:81
::llvm::SmallVector<::mlir::DestructurableMemorySlot > getDestructurableSlots()
Required by DestructurableAllocationOpInterface / SROA pass.
Definition Ops.cpp:119
::mlir::MutableOperandRangeRange getMapOperandsMutable()
Definition Ops.cpp.inc:340
::std::optional<::mlir::PromotableAllocationOpInterface > handlePromotionComplete(const ::mlir::MemorySlot &slot, ::mlir::Value defaultValue, ::mlir::OpBuilder &builder)
Required by PromotableAllocationOpInterface / mem2reg pass.
Definition Ops.cpp:193
void setNumDimsPerMap(::llvm::ArrayRef< int32_t > attrValue)
Definition Ops.cpp.inc:551
static std::optional< mlir::Attribute > getInherentAttr(::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name)
Definition Ops.cpp.inc:435
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:570
::mlir::StringAttr getNumDimsPerMapAttrName()
Definition Ops.h.inc:361
::llvm::LogicalResult setPropertiesFromAttr(Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError)
Definition Ops.cpp.inc:346
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:402
::std::optional<::mlir::DestructurableAllocationOpInterface > handleDestructuringComplete(const ::mlir::DestructurableMemorySlot &slot, ::mlir::OpBuilder &builder)
Required by DestructurableAllocationOpInterface / SROA pass.
Definition Ops.cpp:162
static llvm::hash_code computePropertiesHash(const Properties &prop)
Definition Ops.cpp.inc:425
::llvm::LogicalResult verify()
Definition Ops.cpp:100
::mlir::StringAttr getOperandSegmentSizesAttrName()
Definition Ops.h.inc:369
::mlir::StringAttr getMapOpGroupSizesAttrName(::mlir::OperationName name)
Definition Ops.h.inc:357
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:346
::mlir::Value getDefaultValue(const ::mlir::MemorySlot &slot, ::mlir::OpBuilder &builder)
Required by PromotableAllocationOpInterface / mem2reg pass.
Definition Ops.cpp:185
::llvm::SmallVector<::mlir::MemorySlot > getPromotableSlots()
Required by PromotableAllocationOpInterface / mem2reg pass.
Definition Ops.cpp:171
::llvm::DenseMap<::mlir::Attribute, ::mlir::MemorySlot > destructure(const ::mlir::DestructurableMemorySlot &slot, const ::llvm::SmallPtrSetImpl<::mlir::Attribute > &usedIndices, ::mlir::OpBuilder &builder, ::mlir::SmallVectorImpl<::mlir::DestructurableAllocationOpInterface > &newAllocators)
Required by DestructurableAllocationOpInterface / SROA pass.
Definition Ops.cpp:132
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:382
::mlir::StringAttr getNumDimsPerMapAttrName(::mlir::OperationName name)
Definition Ops.h.inc:365
::mlir::DenseI32ArrayAttr getNumDimsPerMapAttr()
Definition Ops.h.inc:421
::llvm::LogicalResult readProperties(::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state)
Definition Ops.cpp.inc:487
::llvm::ArrayRef< int32_t > getNumDimsPerMap()
Definition Ops.cpp.inc:541
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:377
void getAsmResultNames(::mlir::OpAsmSetValueNameFn setNameFn)
Definition Ops.cpp:71
::llvm::ArrayRef< int32_t > getMapOpGroupSizes()
Definition Ops.cpp.inc:546
::mlir::Attribute getPropertiesAsAttr(::mlir::MLIRContext *ctx, const Properties &prop)
Definition Ops.cpp.inc:394
void handleBlockArgument(const ::mlir::MemorySlot &slot, ::mlir::BlockArgument argument, ::mlir::OpBuilder &builder)
Required by PromotableAllocationOpInterface / mem2reg pass.
Definition Ops.cpp:190
::mlir::OperandRangeRange getMapOperands()
Definition Ops.h.inc:392
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:611
FoldAdaptor::Properties Properties
Definition Ops.h.inc:347
::mlir::StringAttr getMapOpGroupSizesAttrName()
Definition Ops.h.inc:353
::mlir::DenseI32ArrayAttr getMapOpGroupSizesAttr()
Definition Ops.h.inc:426
::mlir::MutableOperandRange getElementsMutable()
Definition Ops.cpp.inc:334
::mlir::Operation::operand_range getElements()
Definition Ops.h.inc:388
::llvm::LogicalResult verifySymbolUses(::mlir::SymbolTableCollection &symbolTable)
Definition Ops.cpp:66
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:617
static void setInherentAttr(Properties &prop, llvm::StringRef name, mlir::Attribute value)
Definition Ops.cpp.inc:445
static void populateDefaultProperties(::mlir::OperationName opName, Properties &properties)
Definition Ops.cpp.inc:564
void setMapOpGroupSizes(::llvm::ArrayRef< int32_t > attrValue)
Definition Ops.cpp.inc:555
CreateArrayOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:345
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:765
ExtractArrayOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:523
ExtractArrayOpAdaptor(ExtractArrayOp op)
Definition Ops.cpp.inc:763
ExtractArrayOpGenericAdaptor(RangeT values, const ExtractArrayOpGenericAdaptorBase &base)
Definition Ops.h.inc:527
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:532
ExtractArrayOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:523
ExtractArrayOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:525
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:536
ExtractArrayOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:530
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:605
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value arr_ref, ::mlir::ValueRange indices)
Definition Ops.cpp.inc:793
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:601
static bool isCompatibleReturnTypes(::mlir::TypeRange l, ::mlir::TypeRange r)
Definition Ops.cpp:418
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:880
::llvm::LogicalResult verifySymbolUses(::mlir::SymbolTableCollection &symbolTable)
Definition Ops.cpp:381
::mlir::MutableOperandRange getIndicesMutable()
Definition Ops.cpp.inc:787
bool isRead()
Return true if the op is a read, false if it's a write.
Definition Ops.cpp.inc:964
ExtractArrayOpAdaptor Adaptor
Definition Ops.h.inc:568
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:572
ExtractArrayOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:570
::llvm::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
::llvm::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, std::optional<::mlir::Location > location, Adaptor adaptor, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:848
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:571
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:876
inline ::llzk::array::ArrayType getArrRefType()
Gets the type of the referenced base array.
Definition Ops.h.inc:638
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:932
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.cpp.inc:769
::mlir::Operation::operand_range getIndices()
Definition Ops.h.inc:591
::mlir::TypedValue<::llzk::array::ArrayType > getResult()
Definition Ops.h.inc:611
::mlir::TypedValue<::llzk::array::ArrayType > getArrRef()
Definition Ops.h.inc:587
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:581
::mlir::OpOperand & getArrRefMutable()
Definition Ops.h.inc:595
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:576
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:1000
InsertArrayOpAdaptor(InsertArrayOp op)
Definition Ops.cpp.inc:998
InsertArrayOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:679
InsertArrayOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:681
InsertArrayOpGenericAdaptor(RangeT values, const InsertArrayOpGenericAdaptorBase &base)
Definition Ops.h.inc:683
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:688
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:692
InsertArrayOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:686
InsertArrayOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:679
inline ::llzk::array::ArrayType getArrRefType()
Gets the type of the referenced base array.
Definition Ops.h.inc:792
::mlir::Operation::operand_range getIndices()
Definition Ops.h.inc:751
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:1050
bool isRead()
Return true if the op is a read, false if it's a write.
Definition Ops.cpp.inc:1178
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:1075
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:736
::llvm::LogicalResult verify()
Definition Ops.cpp:433
::mlir::TypedValue<::llzk::array::ArrayType > getRvalue()
Definition Ops.h.inc:755
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:741
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:1081
::mlir::OpOperand & getArrRefMutable()
Definition Ops.h.inc:759
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:1146
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:731
::mlir::TypedValue<::llzk::array::ArrayType > getArrRef()
Definition Ops.h.inc:747
::mlir::OpOperand & getRvalueMutable()
Definition Ops.h.inc:765
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:732
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.cpp.inc:1004
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:770
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value arr_ref, ::mlir::ValueRange indices, ::mlir::Value rvalue)
Definition Ops.cpp.inc:1028
InsertArrayOpAdaptor Adaptor
Definition Ops.h.inc:728
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:774
::llvm::LogicalResult verifySymbolUses(::mlir::SymbolTableCollection &symbolTable)
Definition Ops.cpp:426
InsertArrayOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:730
::mlir::MutableOperandRange getIndicesMutable()
Definition Ops.cpp.inc:1022
ReadArrayOpAdaptor(ReadArrayOp op)
Definition Ops.cpp.inc:1212
ReadArrayOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:833
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:1214
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:846
ReadArrayOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:840
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:842
ReadArrayOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:833
ReadArrayOpGenericAdaptor(RangeT values, const ReadArrayOpGenericAdaptorBase &base)
Definition Ops.h.inc:837
ReadArrayOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:835
::mlir::OpOperand & getArrRefMutable()
Definition Ops.h.inc:905
::mlir::Value getStored(const ::mlir::MemorySlot &slot, ::mlir::OpBuilder &builder, ::mlir::Value reachingDef, const ::mlir::DataLayout &dataLayout)
Required by PromotableAllocationOpInterface / mem2reg pass.
Definition Ops.cpp.inc:1456
::mlir::DeletionKind removeBlockingUses(const ::mlir::MemorySlot &slot, const ::llvm::SmallPtrSetImpl< mlir::OpOperand * > &blockingUses, ::mlir::OpBuilder &builder, ::mlir::Value reachingDefinition, const ::mlir::DataLayout &dataLayout)
Required by PromotableMemOpInterface / mem2reg pass.
Definition Ops.cpp:332
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:1297
::mlir::DeletionKind rewire(const ::mlir::DestructurableMemorySlot &slot, ::llvm::DenseMap<::mlir::Attribute, ::mlir::MemorySlot > &subslots, ::mlir::OpBuilder &builder, const ::mlir::DataLayout &dataLayout)
Required by DestructurableAllocationOpInterface / SROA pass.
Definition Ops.cpp.inc:1438
inline ::llzk::array::ArrayType getArrRefType()
Gets the type of the referenced base array.
Definition Ops.h.inc:956
::llvm::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, std::optional<::mlir::Location > location, Adaptor adaptor, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
::mlir::TypedValue<::mlir::Type > getResult()
Definition Ops.h.inc:921
::mlir::TypedValue<::llzk::array::ArrayType > getArrRef()
Definition Ops.h.inc:897
bool storesTo(const ::mlir::MemorySlot &slot)
Required by PromotableMemOpInterface / mem2reg pass.
Definition Ops.cpp.inc:1451
::mlir::Operation::operand_range getIndices()
Definition Ops.h.inc:901
::llvm::LogicalResult inferReturnTypes(::mlir::MLIRContext *context, ::std::optional<::mlir::Location > location, ::mlir::ValueRange operands, ::mlir::DictionaryAttr attributes, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions, ::llvm::SmallVectorImpl<::mlir::Type > &inferredReturnTypes)
bool loadsFrom(const ::mlir::MemorySlot &slot)
Required by PromotableMemOpInterface / mem2reg pass.
Definition Ops.cpp.inc:1446
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:1333
bool isRead()
Return true if the op is a read, false if it's a write.
Definition Ops.cpp.inc:1462
::llvm::LogicalResult verify()
Definition Ops.cpp:313
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:882
::llvm::LogicalResult verifySymbolUses(::mlir::SymbolTableCollection &symbolTable)
Definition Ops.cpp:293
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type result, ::mlir::Value arr_ref, ::mlir::ValueRange indices)
Definition Ops.cpp.inc:1242
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:881
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:911
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:1388
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:915
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:891
bool canRewire(const ::mlir::DestructurableMemorySlot &slot, ::llvm::SmallPtrSetImpl<::mlir::Attribute > &usedIndices, ::mlir::SmallVectorImpl<::mlir::MemorySlot > &mustBeSafelyUsed, const ::mlir::DataLayout &dataLayout)
Required by DestructurableAllocationOpInterface / SROA pass.
Definition Ops.cpp.inc:1429
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:886
static bool isCompatibleReturnTypes(::mlir::TypeRange l, ::mlir::TypeRange r)
Definition Ops.cpp:309
ReadArrayOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:880
bool canUsesBeRemoved(const ::mlir::MemorySlot &slot, const ::llvm::SmallPtrSetImpl<::mlir::OpOperand * > &blockingUses, ::llvm::SmallVectorImpl<::mlir::OpOperand * > &newBlockingUses, const ::mlir::DataLayout &datalayout)
Required by PromotableMemOpInterface / mem2reg pass.
Definition Ops.cpp:319
ReadArrayOpAdaptor Adaptor
Definition Ops.h.inc:878
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.cpp.inc:1218
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:1327
::mlir::MutableOperandRange getIndicesMutable()
Definition Ops.cpp.inc:1236
::llvm::LogicalResult verify(::mlir::Location loc)
Definition Ops.cpp.inc:1498
WriteArrayOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:997
WriteArrayOpAdaptor(WriteArrayOp op)
Definition Ops.cpp.inc:1496
RangeT getODSOperands(unsigned index)
Definition Ops.h.inc:1010
WriteArrayOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:997
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.h.inc:1006
WriteArrayOpGenericAdaptor(RangeT values, LateInst op)
Definition Ops.h.inc:1004
WriteArrayOpGenericAdaptor(RangeT values, ::mlir::DictionaryAttr attrs, ::mlir::OpaqueProperties properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:999
WriteArrayOpGenericAdaptor(RangeT values, const WriteArrayOpGenericAdaptorBase &base)
Definition Ops.h.inc:1001
::mlir::OpOperand & getRvalueMutable()
Definition Ops.h.inc:1083
::mlir::DeletionKind rewire(const ::mlir::DestructurableMemorySlot &slot, ::llvm::DenseMap<::mlir::Attribute, ::mlir::MemorySlot > &subslots, ::mlir::OpBuilder &builder, const ::mlir::DataLayout &dataLayout)
Required by DestructurableAllocationOpInterface / SROA pass.
Definition Ops.cpp.inc:1687
bool isRead()
Return true if the op is a read, false if it's a write.
Definition Ops.cpp.inc:1711
bool loadsFrom(const ::mlir::MemorySlot &slot)
Required by PromotableMemOpInterface / mem2reg pass.
Definition Ops.cpp.inc:1695
WriteArrayOpAdaptor Adaptor
Definition Ops.h.inc:1046
::llvm::LogicalResult verifyInvariants()
Definition Ops.cpp.inc:1575
::mlir::Operation::result_range getODSResults(unsigned index)
Definition Ops.h.inc:1092
::llvm::LogicalResult verify()
Definition Ops.cpp:352
::mlir::Operation::operand_range getIndices()
Definition Ops.h.inc:1069
::mlir::Value getStored(const ::mlir::MemorySlot &slot, ::mlir::OpBuilder &builder, ::mlir::Value reachingDef, const ::mlir::DataLayout &dataLayout)
Required by PromotableAllocationOpInterface / mem2reg pass.
Definition Ops.cpp.inc:1705
void print(::mlir::OpAsmPrinter &_odsPrinter)
Definition Ops.cpp.inc:1646
bool canRewire(const ::mlir::DestructurableMemorySlot &slot, ::llvm::SmallPtrSetImpl<::mlir::Attribute > &usedIndices, ::mlir::SmallVectorImpl<::mlir::MemorySlot > &mustBeSafelyUsed, const ::mlir::DataLayout &dataLayout)
Required by DestructurableAllocationOpInterface / SROA pass.
Definition Ops.cpp.inc:1678
::llvm::LogicalResult verifyInvariantsImpl()
Definition Ops.cpp.inc:1548
WriteArrayOpGenericAdaptor< RangeT > GenericAdaptor
Definition Ops.h.inc:1048
::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result)
Definition Ops.cpp.inc:1581
static constexpr ::llvm::StringLiteral getOperationName()
Definition Ops.h.inc:1054
static ::llvm::ArrayRef<::llvm::StringRef > getAttributeNames()
Definition Ops.h.inc:1050
inline ::llzk::array::ArrayType getArrRefType()
Gets the type of the referenced base array.
Definition Ops.h.inc:1117
GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute > > FoldAdaptor
Definition Ops.h.inc:1049
bool storesTo(const ::mlir::MemorySlot &slot)
Required by PromotableMemOpInterface / mem2reg pass.
Definition Ops.cpp.inc:1700
bool canUsesBeRemoved(const ::mlir::MemorySlot &slot, const ::llvm::SmallPtrSetImpl<::mlir::OpOperand * > &blockingUses, ::llvm::SmallVectorImpl<::mlir::OpOperand * > &newBlockingUses, const ::mlir::DataLayout &datalayout)
Required by PromotableMemOpInterface / mem2reg pass.
Definition Ops.cpp:358
static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Value arr_ref, ::mlir::ValueRange indices, ::mlir::Value rvalue)
Definition Ops.cpp.inc:1526
::mlir::DeletionKind removeBlockingUses(const ::mlir::MemorySlot &slot, const ::llvm::SmallPtrSetImpl< mlir::OpOperand * > &blockingUses, ::mlir::OpBuilder &builder, ::mlir::Value reachingDefinition, const ::mlir::DataLayout &dataLayout)
Required by PromotableMemOpInterface / mem2reg pass.
Definition Ops.cpp:371
std::pair< unsigned, unsigned > getODSResultIndexAndLength(unsigned index)
Definition Ops.h.inc:1088
::mlir::MutableOperandRange getIndicesMutable()
Definition Ops.cpp.inc:1520
::mlir::OpOperand & getArrRefMutable()
Definition Ops.h.inc:1077
::mlir::Operation::operand_range getODSOperands(unsigned index)
Definition Ops.h.inc:1059
::mlir::TypedValue<::llzk::array::ArrayType > getArrRef()
Definition Ops.h.inc:1065
::llvm::LogicalResult verifySymbolUses(::mlir::SymbolTableCollection &symbolTable)
Definition Ops.cpp:345
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index)
Definition Ops.cpp.inc:1502
::mlir::TypedValue<::mlir::Type > getRvalue()
Definition Ops.h.inc:1073
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.h.inc:64
ArrayLengthOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:58
ArrayLengthOpGenericAdaptorBase(::mlir::Operation *op)
Definition Ops.h.inc:62
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:55
::mlir::DenseI32ArrayAttr getMapOpGroupSizesAttr()
Definition Ops.h.inc:275
::llvm::ArrayRef< int32_t > getMapOpGroupSizes()
Definition Ops.cpp.inc:304
::llvm::ArrayRef< int32_t > getNumDimsPerMap()
Definition Ops.cpp.inc:299
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.cpp.inc:285
CreateArrayOpGenericAdaptorBase(::mlir::DictionaryAttr attrs, const Properties &properties, ::mlir::RegionRange regions={})
Definition Ops.h.inc:258
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:254
ExtractArrayOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:505
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:502
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.cpp.inc:744
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.cpp.inc:979
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:658
InsertArrayOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:661
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:812
ReadArrayOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:815
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.cpp.inc:1193
ReadArrayOpGenericAdaptorBase(::mlir::Operation *op)
Definition Ops.h.inc:819
std::pair< unsigned, unsigned > getODSOperandIndexAndLength(unsigned index, unsigned odsOperandsSize)
Definition Ops.cpp.inc:1477
WriteArrayOpGenericAdaptorBase(::mlir::Operation *op)
Definition Ops.h.inc:983
WriteArrayOpGenericAdaptorBase(::mlir::DictionaryAttr attrs={}, const ::mlir::EmptyProperties &properties={}, ::mlir::RegionRange regions={})
Definition Ops.h.inc:979
::std::optional<::mlir::OperationName > odsOpName
Definition Ops.h.inc:976
llvm::StringLiteral getOperationName()
Get the operation name, like "constrain.eq" for the given OpClass.
Definition OpHelpers.h:27
void setMapOpGroupSizes(const ::mlir::DenseI32ArrayAttr &propValue)
Definition Ops.h.inc:218
::llvm::ArrayRef< int32_t > getOperandSegmentSizes() const
Definition Ops.h.inc:233
void setNumDimsPerMap(const ::mlir::DenseI32ArrayAttr &propValue)
Definition Ops.h.inc:228
void setOperandSegmentSizes(::llvm::ArrayRef< int32_t > propValue)
Definition Ops.h.inc:237