diff options
| author | Lei Zhang <antiagainst@google.com> | 2021-03-24 17:50:39 -0400 |
|---|---|---|
| committer | Lei Zhang <antiagainst@google.com> | 2021-03-24 18:17:57 -0400 |
| commit | f66120a3575a19d2b9b47b584698d5d950f63589 (patch) | |
| tree | 5efc2a8f6d3d99097897eefca2b2955fa77668b9 /clang/lib/Frontend/CompilerInvocation.cpp | |
| parent | 23fd26608ca899f13445908e6afd61d88f6aea9c (diff) | |
| download | llvm-f66120a3575a19d2b9b47b584698d5d950f63589.zip llvm-f66120a3575a19d2b9b47b584698d5d950f63589.tar.gz llvm-f66120a3575a19d2b9b47b584698d5d950f63589.tar.bz2 | |
[mlir][affine] Add canonicalization to merge affine min/max ops
This identifies a pattern where the producer affine min/max op
is bound to a dimension/symbol that is used as a standalone
expression in the consumer affine op's map. In that case the
producer affine min/max op can be merged into its consumer.
For example, a pattern like the following:
```
%0 = affine.min affine_map<()[s0] -> (s0 + 16, s0 * 8)> ()[%sym1]
%1 = affine.min affine_map<(d0)[s0] -> (s0 + 4, d0)> (%0)[%sym2]
```
Can be turned into:
```
%1 = affine.min affine_map<
()[s0, s1] -> (s0 + 4, s1 + 16, s1 * 8)> ()[%sym2, %sym1]
```
Differential Revision: https://reviews.llvm.org/D99016
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions
