aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/InstallAPI/HeaderFile.cpp
diff options
context:
space:
mode:
authorKrzysztof Drewniak <Krzysztof.Drewniak@amd.com>2025-10-16 11:09:25 -0700
committerGitHub <noreply@github.com>2025-10-16 13:09:25 -0500
commit8c05b5cca8784814cf11ac9d85c4ab59d2952ca5 (patch)
tree1369a8c0fc15cc7fc5222934406d82b6bc4faaec /clang/lib/InstallAPI/HeaderFile.cpp
parentd58b5a6ead7e0a21b2a9526117e62428580d401e (diff)
downloadllvm-8c05b5cca8784814cf11ac9d85c4ab59d2952ca5.zip
llvm-8c05b5cca8784814cf11ac9d85c4ab59d2952ca5.tar.gz
llvm-8c05b5cca8784814cf11ac9d85c4ab59d2952ca5.tar.bz2
[mlir][Affine] Cancel delinearize_index ops fully reversed by apply (#163440)
If an `affine.apply` uses every result of an `affine.delinearize_index` operaration in an expresession of the form x_0 * S_0 + x_1 * S_1 + ... + x_n * S_n + ..., where S_i is the "stride" of the i-th delinerization result (the value it got divided by), then, that chain of additions contains the inverse of the affine.delinearize_index. We don't want to compose affine.delinearize_index into affine.apply in general, since this leads to "simplifications" (mainly the `x % y => x - (x / y) * y` rewrite) thate are bad for code generation and algetbraic reasoning. However, if we do see an exact inverse, we should cancel it out.
Diffstat (limited to 'clang/lib/InstallAPI/HeaderFile.cpp')
0 files changed, 0 insertions, 0 deletions