[all-commits] [llvm/llvm-project] 7360d5: [mlir][vector] Fix cases with multiple yielded tra...
Quinn Dawkins via All-commits
all-commits at lists.llvm.org
Thu Nov 9 08:36:08 PST 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 7360d5d30fe75ee86696d1e9a8a62cb74b47254a
https://github.com/llvm/llvm-project/commit/7360d5d30fe75ee86696d1e9a8a62cb74b47254a
Author: Quinn Dawkins <quinn.dawkins at gmail.com>
Date: 2023-11-09 (Thu, 09 Nov 2023)
Changed paths:
M mlir/lib/Dialect/Vector/Transforms/VectorDistribute.cpp
M mlir/test/Dialect/Vector/vector-warp-distribute.mlir
Log Message:
-----------
[mlir][vector] Fix cases with multiple yielded transfer_read ops (#71625)
This fixes two bugs:
1) When deciding whether a transfer read could be propagated out of
a warp op, it looked for the first yield operand that was produced by
a transfer read. If this transfer read wasn't ready to be
distributed, the pattern would not re-check for any other transfer
reads that could have been propagated.
2) When dropping dead warp results, we do so by updating the warp op
signature and splicing in the old region. This does not add the ops
in the body of the warp op back to the pattern applicator's worklist,
and thus those operations won't be DCE'd. This is a problem for
patterns like the one for transfer reads that will still see the dead
operation as a user.
More information about the All-commits
mailing list