[mlir][linalg] Add a builder for `linalg.(indexed_)generic`.
authorAlexander Belyaev <pifon@google.com>
Wed, 10 Jun 2020 19:45:18 +0000 (21:45 +0200)
committerAlexander Belyaev <pifon@google.com>
Wed, 10 Jun 2020 21:52:41 +0000 (23:52 +0200)
Differential Revision: https://reviews.llvm.org/D81610

mlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td

index c13a790..cc7eb5c 100644 (file)
@@ -565,6 +565,21 @@ class GenericOpBase<string mnemonic> : LinalgStructuredBase_Op<mnemonic,
         "No such thing as reference indexing maps for a generic op.");
      }
   }];
+
+  let builders = [
+    OpBuilder<"OpBuilder &builder, OperationState &result, "
+              "ArrayRef<Type> resultTypes, ValueRange args, "
+              "int64_t inputCount, int64_t outputCount, "
+              "ArrayRef<AffineMap> indexingMaps, "
+              "ArrayRef<StringRef> iteratorTypes", [{
+        return build(builder, result, resultTypes, args,
+                     builder.getI64IntegerAttr(inputCount),
+                     builder.getI64IntegerAttr(outputCount),
+                     builder.getAffineMapArrayAttr(indexingMaps),
+                     builder.getStrArrayAttr(iteratorTypes),
+                     /*doc=*/nullptr, /*library_call=*/nullptr);
+  }]>];
+
   let printer = [{ return ::print(p, *this); }];
   let parser = [{ return ::parseGenericOp(parser, result); }];
 }