diff options
author | Krzysztof Drewniak <Krzysztof.Drewniak@amd.com> | 2024-11-12 13:36:07 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-11-12 15:36:07 -0600 |
commit | 49f90e798fe5667ac5e71a796aa897af3185137d (patch) | |
tree | da0679e37ae5e72b8f7ead352cda67231ded4fc5 /llvm/lib/Object/ELFObjectFile.cpp | |
parent | fe83a7282e05b6aba7c87fa293ec84ef926a7991 (diff) | |
download | llvm-49f90e798fe5667ac5e71a796aa897af3185137d.zip llvm-49f90e798fe5667ac5e71a796aa897af3185137d.tar.gz llvm-49f90e798fe5667ac5e71a796aa897af3185137d.tar.bz2 |
[mlir][affine] Cancel exactly-matching delinearize/linearize pairs (#115758)
If we linearize values (with an assertion tha they are disjoint) and
then delinearize that linear index with th exact same basis, we know
that these operations are exact inverses of each other and can be
replaced with the original inputs to the linearization.
Similarly, if we take a linear index, delinearize it with some bases,
and then re-linearize it with that same basis (noting that the outputs
of the delinearization are guaranteed to by `disjoint`, even if this is
not asserted on the linearize_index operation), the re-linearization is
the inverse of the delinearization, so those two operations can also be
canceled out.
This commit adds canonicalization patterns for these simple
cancelations.
Diffstat (limited to 'llvm/lib/Object/ELFObjectFile.cpp')
0 files changed, 0 insertions, 0 deletions