[mlir][Linalg] Revisit RAW dependence interference in comprehensive bufferize.
authorNicolas Vasilache <nicolas.vasilache@gmail.com>
Mon, 20 Sep 2021 14:03:55 +0000 (14:03 +0000)
committerNicolas Vasilache <nicolas.vasilache@gmail.com>
Tue, 21 Sep 2021 14:22:22 +0000 (14:22 +0000)
commit0d2c54e851f12594b38f45e76ced03e3f5cc5443
tree634e8ab469dd56af7a0824e4f406faca2a8caa36
parentc8eed8f9a7e019382ab236c90ac1ee0f5d81c54f
[mlir][Linalg] Revisit RAW dependence interference in comprehensive bufferize.

Previously, comprehensive bufferize would consider all aliasing reads and writes to
the result buffer and matching operand. This resulted in spurious dependences
being considered and resulted in too many unnecessary copies.

Instead, this revision revisits the gathering of read and write alias sets.
This results in fewer alloc and copies.
An exhaustive test cases is added that considers all possible permutations of
`matmul(extract_slice(fill), extract_slice(fill), ...)`.
mlir/lib/Dialect/Linalg/Transforms/ComprehensiveBufferize.cpp
mlir/test/Dialect/Linalg/comprehensive-bufferize-analysis-2fill-extract-matmul-all-perms.mlir [new file with mode: 0644]
mlir/test/Dialect/Linalg/comprehensive-module-bufferize-analysis.mlir