llvm-project/mlir/lib/Analysis
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
..
AliasAnalysis [mlir] Added new RegionBranchTerminatorOpInterface and adapted uses of hasTrait<ReturnLike>. 2021-07-26 06:39:31 +02:00
Presburger [MLIR] FlatAffineConstraints: Use Matrix objects to store the constraints 2021-07-01 22:05:31 +05:30
AffineAnalysis.cpp [mlir][Analysis][NFC] FlatAffineConstraints: Use BoundType enum in functions 2021-08-19 10:33:42 +09:00
AffineStructures.cpp [mlir][scf] Simplify affine.min ops after loop peeling 2021-08-19 17:24:53 +09:00
AliasAnalysis.cpp [mlir] Add support for querying the ModRef behavior from the AliasAnalysis class 2021-05-27 13:57:29 -07:00
BufferViewFlowAnalysis.cpp [mlir] Added new RegionBranchTerminatorOpInterface and adapted uses of hasTrait<ReturnLike>. 2021-07-26 06:39:31 +02:00
CMakeLists.txt [mlir] fix shared-libs build 2021-06-08 11:30:31 +02:00
CallGraph.cpp [mlir] Update SCCP and the Inliner to use SymbolTableCollection for symbol lookups 2020-10-16 12:08:48 -07:00
DataFlowAnalysis.cpp [mlir] Added new RegionBranchTerminatorOpInterface and adapted uses of hasTrait<ReturnLike>. 2021-07-26 06:39:31 +02:00
DataLayoutAnalysis.cpp [mlir] support memref of memref in standard-to-llvm conversion 2021-06-08 11:11:31 +02:00
LinearTransform.cpp [MLIR] Support symbols in emptiness checks for FlatAffineConstraints 2021-04-08 21:38:47 +05:30
Liveness.cpp [MLIR][NFC] Minor cleanup in liveness. 2021-07-23 13:30:02 -07:00
LoopAnalysis.cpp [mlir][Affine] Fix vectorizability check for multiple load/stores 2020-12-09 12:19:34 -08:00
NestedMatcher.cpp [mlir] fix a memory leak in NestedPattern 2021-03-12 18:52:14 +01:00
NumberOfExecutions.cpp [mlir] Extend Operation visitor with pre-order traversal 2021-03-06 00:02:20 +02:00
PresburgerSet.cpp [MLIR] PresburgerSet subtraction: add documentation and assertion saying we don't support divisions yet 2021-04-14 05:56:35 +05:30
SliceAnalysis.cpp [mlir][NFC] Add a using directive for llvm::SetVector 2021-04-15 16:09:34 -07:00
Utils.cpp [mlir][Analysis][NFC] FlatAffineConstraints: Use BoundType enum in functions 2021-08-19 10:33:42 +09:00