aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
diff options
context:
space:
mode:
authorNicolas Vasilache <nicolas.vasilache@gmail.com>2023-02-22 05:24:25 -0800
committerNicolas Vasilache <nicolas.vasilache@gmail.com>2023-02-27 08:15:44 -0800
commit4521b113978d9ddaaae038e3cdd9d8902e2392f9 (patch)
tree262827760ad7fe0f5bd2d365f34b920e4c82e817 /llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
parent779d54fd75c19a6d4c27b0a8b115d2e5ccd9768d (diff)
downloadllvm-4521b113978d9ddaaae038e3cdd9d8902e2392f9.zip
llvm-4521b113978d9ddaaae038e3cdd9d8902e2392f9.tar.gz
llvm-4521b113978d9ddaaae038e3cdd9d8902e2392f9.tar.bz2
[mlir][Linalg] Reimplement hoisting on tensors as a subset-based transformation
This revision significantly rewrites hoisting on tensors. Previously, `vector.transfer_read/write` and `tensor.extract/insert_slice` would be clumped together when looking for candidate pairs. This would significantly increase the complexity of the logic and would not apply independently to `tensor.extract/insert_slice`. The new implementation decouples the cases and starts to cast the problem as a generic matching subset extract/insert, which will be future proof when other such operation pairs are introduced. Lastly, the implementation makes the distinction clear between `vector.transfer_read/write` for which we allow bypasses of the disjoint subsets from `tensor.extract/insert_slice` for which we do not yet allow it. This can be extended in the future and unified once we have subset disjunction implemented more generally. The algorithm can be rewritten to be less of a fixed point with interspersed canonicalizations. As a consequence, the test explicitly adds a canonicalization to clean up the IR and verify we end up in the same state. That extra canonicalization exhibited that one of the uses in one of the tests was dead, so we fix the appropriate test. Differential Revision: https://reviews.llvm.org/D144656
Diffstat (limited to 'llvm/lib/Bitcode/Writer/BitcodeWriter.cpp')
0 files changed, 0 insertions, 0 deletions