diff options
author | Yun-Fly <yunfei.song@intel.com> | 2024-11-06 10:03:23 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-11-06 10:03:23 +0800 |
commit | 9bc3102bea80f422f4f3b788186f6e1c636e0fba (patch) | |
tree | f88696370590b1f680d0545d34afe321f9149f48 /llvm/lib/Analysis/ModuleSummaryAnalysis.cpp | |
parent | 11b768af3ed672c18c4197bf43273b31ccc3c95e (diff) | |
download | llvm-9bc3102bea80f422f4f3b788186f6e1c636e0fba.zip llvm-9bc3102bea80f422f4f3b788186f6e1c636e0fba.tar.gz llvm-9bc3102bea80f422f4f3b788186f6e1c636e0fba.tar.bz2 |
[mlir][scf] Extend consumer fusion to multiple tilable users (#111955)
Before, consumer fusion expects single usage(or others are terminator
op). This patch supports multiple tilable consumers fusion.
E.g.
```
%0 = scf.for {
...
%p = tiledProducer
...
}
%1 = tilableConsumer1 ins(%0 : ...)
%2 = tilableConsumer2 ins(%0 : ...)
```
===>
```
%0:3 = scf.for {
...
%p = tiledProducer
%1 = tiledConsumer1 ins(%p : ...)
%2 = tiledConsumer2 ins(%p : ...)
...
}
```
The key process is ensuring that the first user of loop
should not dominate any define of consumer operand(s).
Diffstat (limited to 'llvm/lib/Analysis/ModuleSummaryAnalysis.cpp')
0 files changed, 0 insertions, 0 deletions