diff options
author | Vivian <zhyuhang88@gmail.com> | 2023-12-14 17:03:52 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-14 17:03:52 -0800 |
commit | bd6a2452aef627467034c5d41b9cf89905ef0c9b (patch) | |
tree | 913b3d45cf43c4bde870818a5ba7439b09b5bbf5 /llvm/lib/ProfileData/Coverage/CoverageMapping.cpp | |
parent | 014f8c8c806f4a40ed17cda43dc352c19bdb511b (diff) | |
download | llvm-bd6a2452aef627467034c5d41b9cf89905ef0c9b.zip llvm-bd6a2452aef627467034c5d41b9cf89905ef0c9b.tar.gz llvm-bd6a2452aef627467034c5d41b9cf89905ef0c9b.tar.bz2 |
[mlir][SCF] Add support for peeling the first iteration out of the loop (#74015)
There is a use case that we need to peel the first iteration out of the
for loop so that the peeled forOp can be canonicalized away and the
fillOp can be fused into the inner forall loop. For example, we have
nested loops as below
```
linalg.fill ins(...) outs(...)
scf.for %arg = %lb to %ub step %step
scf.forall ...
```
After the peeling transform, it is expected to be
```
scf.forall ...
linalg.fill ins(...) outs(...)
scf.for %arg = %(lb + step) to %ub step %step
scf.forall ...
```
This patch makes the most use of the existing peeling functions and adds
support for peeling the first iteration out of the loop.
Diffstat (limited to 'llvm/lib/ProfileData/Coverage/CoverageMapping.cpp')
0 files changed, 0 insertions, 0 deletions