[mlir][vector] Move splitting transfer ops into a separate entry point
authorLei Zhang <antiagainst@google.com>
Tue, 16 Feb 2021 15:00:32 +0000 (10:00 -0500)
committerLei Zhang <antiagainst@google.com>
Tue, 16 Feb 2021 15:04:34 +0000 (10:04 -0500)
commitcb1a42359bff2ba49d072df88ad3ffb4c66c16d8
tree36b737414cce6bfc2569c69f1adc79a8396b6408
parent0f5020af7f347f029b5687f7a6d3b72174995d59
[mlir][vector] Move splitting transfer ops into a separate entry point

These patterns unrolls transfer read/write ops if the vector consumers/
producers are extract/insert slices op. Transfer ops can map to hardware
load/store functionalities, where the vector size matters for bandwidth
considerations. So these patterns should be collected separately, instead
of being generic canonicalization patterns.

Reviewed By: nicolasvasilache

Differential Revision: https://reviews.llvm.org/D96782
mlir/include/mlir/Dialect/Vector/VectorOps.h
mlir/lib/Dialect/Vector/VectorTransforms.cpp
mlir/test/lib/Transforms/TestVectorTransforms.cpp