[mlir][vector][bufferize] Bufferize vector.mask and vector.yield
authorMatthias Springer <springerm@google.com>
Tue, 31 Jan 2023 07:56:03 +0000 (08:56 +0100)
committerMatthias Springer <springerm@google.com>
Tue, 31 Jan 2023 08:02:27 +0000 (09:02 +0100)
commit199f368e35f6c63bbc3386c608d3773517f2985b
tree72113e1b192414013711349dbc3f00dbd6f6cd47
parentc1fa8179d4e5300a67ebdf41916a18f9c6330121
[mlir][vector][bufferize] Bufferize vector.mask and vector.yield

The masked op can currently not bufferize out-of-place. Such IR would be rejected by the One-Shot Bufferize because it would mean that a new buffer allocation is yielded from a block. Furthermore, only one operation is currently allowed inside `vector.mask`.

Differential Revision: https://reviews.llvm.org/D141686
mlir/lib/Dialect/Bufferization/Transforms/Bufferize.cpp
mlir/lib/Dialect/Vector/Transforms/BufferizableOpInterfaceImpl.cpp
mlir/test/Dialect/Vector/bufferize-invalid.mlir [new file with mode: 0644]
mlir/test/Dialect/Vector/bufferize.mlir
mlir/test/Dialect/Vector/one-shot-bufferize.mlir [new file with mode: 0644]