[mlir][Linalg] Allow distribution `scf.parallel` loops generated in
authorMaheshRavishankar <ravishankarm@google.com>
Mon, 10 Aug 2020 21:39:02 +0000 (14:39 -0700)
committerMaheshRavishankar <ravishankarm@google.com>
Mon, 10 Aug 2020 21:52:17 +0000 (14:52 -0700)
commit41d4120017f99386a62a9c0aac25fd2a369d0e02
tree36ba63b74f1b22b9766ed3d753069ddb4d25c213
parentaae349e2760e5e5986b34ca5ca9f2672377c41bf
[mlir][Linalg] Allow distribution `scf.parallel` loops generated in
Linalg to processors.

This changes adds infrastructure to distribute the loops generated in
Linalg to processors at the time of generation. This addresses use
case where the instantiation of loop is done just to distribute
them. The option to distribute is added to TilingOptions for now and
will allow specifying the distribution as a transformation option,
just like tiling and promotion are specified as options.

Differential Revision: https://reviews.llvm.org/D85147
mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
mlir/include/mlir/Dialect/Linalg/Utils/Utils.h
mlir/lib/Dialect/Linalg/Transforms/Tiling.cpp
mlir/lib/Dialect/Linalg/Utils/Utils.cpp
mlir/test/Dialect/Linalg/tile-and-distribute.mlir [new file with mode: 0644]
mlir/test/lib/Transforms/TestLinalgTransforms.cpp