[PATCH] D73684: [MLIR][Linalg] Lower linalg.generic to ploops.

Alex Zinenko via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jan 30 03:05:41 PST 2020


ftynse added a comment.

What happens when you have non-parallel loops in the generic op? Can we have a test for this case (even if there's no transform happening, just make sure we bail out instead of generating incorrectly parallel loop?)



================
Comment at: mlir/include/mlir/Dialect/Linalg/Passes.h:38
+/// std.load/std.store accesses.
+std::unique_ptr<OpPassBase<FuncOp>> createConvertLinalgToParallelLoopsPass();
+
----------------
Given that we have parallel loops to sequential loops, does it make sense to keep Linalg to sequential loops?


================
Comment at: mlir/include/mlir/Dialect/LoopOps/LoopOps.td:179
   let results = (outs Variadic<AnyType>:$results);
-  let regions = (region SizedRegion<1>:$body);
+  let regions = (region SizedRegion<1>:$region);
+
----------------
Any specific reason for this rename?  I find "body" to be a better name than 'region".


================
Comment at: mlir/lib/Dialect/LoopOps/LoopOps.cpp:235
+  ForOp::ensureTerminator(*bodyRegion, *builder, result.location);
+  for (size_t i = 0; i < steps.size(); ++i) {
+    bodyRegion->front().addArgument(builder->getIndexType());
----------------
Ultra-nit: drop trivial braces


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D73684/new/

https://reviews.llvm.org/D73684





More information about the llvm-commits mailing list