llvm-project/mlir/lib/Dialect/Affine/IR
Matthias Springer 8e8b70aa84 [mlir][scf] Simplify affine.min ops after loop peeling
Simplify affine.min ops, enabling various other canonicalizations inside the peeled loop body.

affine.min ops such as:
```
map = affine_map<(d0)[s0, s1] -> (s0, -d0 + s1)>
%r = affine.min #affine.min #map(%iv)[%step, %ub]
```
are rewritten them into (in the case the peeled loop):
```
%r = %step
```

To determine how an affine.min op should be rewritten and to prove its correctness, FlatAffineConstraints is utilized.

Differential Revision: https://reviews.llvm.org/D107222
2021-08-19 17:24:53 +09:00
..
AffineMemoryOpInterfaces.cpp [mlir][Affine] Minor clean-up of D79829 2020-05-29 14:39:18 -07:00
AffineOps.cpp [mlir][scf] Simplify affine.min ops after loop peeling 2021-08-19 17:24:53 +09:00
AffineValueMap.cpp [mlir][Affine] Revisit and simplify composeAffineMapAndOperands. 2021-01-19 13:52:07 +00:00
CMakeLists.txt [mlir][Standard] NFC - Drop remaining EDSC usage 2021-05-21 10:40:39 +00:00