[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