[mlir][vector] First step of vector distribution transformation
authorThomas Raoux <thomasraoux@google.com>
Wed, 30 Sep 2020 19:58:24 +0000 (12:58 -0700)
committerThomas Raoux <thomasraoux@google.com>
Wed, 30 Sep 2020 20:14:55 +0000 (13:14 -0700)
commitdd14e5825209386129770296f9bc3a14ab0b4592
tree51b7e4e2307ad8b546a180f268053bac0f2f542b
parente9b38841619f20a6f4c8657880fd487083ba499a
[mlir][vector] First step of vector distribution transformation

This is the first of several steps to support distributing large vectors. This
adds instructions extract_map and insert_map that allow us to do incremental
lowering. Right now the transformation only apply to simple pointwise operation
with a vector size matching the multiplicity of the IDs used to distribute the
vector.
This can be used to distribute large vectors to loops or SPMD.

Differential Revision: https://reviews.llvm.org/D88341
mlir/include/mlir/Dialect/Vector/VectorOps.td
mlir/include/mlir/Dialect/Vector/VectorTransforms.h
mlir/lib/Dialect/Vector/VectorOps.cpp
mlir/lib/Dialect/Vector/VectorTransforms.cpp
mlir/test/Dialect/Vector/invalid.mlir
mlir/test/Dialect/Vector/ops.mlir
mlir/test/Dialect/Vector/vector-distribution.mlir [new file with mode: 0644]
mlir/test/lib/Transforms/TestVectorTransforms.cpp