diff options
author | Rolf Morel <rolf.morel@huawei.com> | 2024-03-28 13:13:08 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-28 14:13:08 +0100 |
commit | eacda36c7dd842cb15c0c954eda74b67d0c73814 (patch) | |
tree | fadca8a65aec6793444ce3fa3bdb32614f5f49b6 /clang/lib/CodeGen/CodeGenModule.cpp | |
parent | 91856b34e3eddf157ab4c6ea623483b49d149e62 (diff) | |
download | llvm-eacda36c7dd842cb15c0c954eda74b67d0c73814.zip llvm-eacda36c7dd842cb15c0c954eda74b67d0c73814.tar.gz llvm-eacda36c7dd842cb15c0c954eda74b67d0c73814.tar.bz2 |
[SCF][Transform] Add support for scf.for in LoopFuseSibling op (#81495)
Adds support for fusing two scf.for loops occurring in the same block.
Uses the rudimentary checks already in place for scf.forall (like the
target loop's operands being dominated by the source loop).
- Fixes a bug in the dominance check whereby it was checked that values
in the target loop themselves dominated the source loop rather than the
ops that define these operands.
- Renames the LoopFuseSibling op to LoopFuseSiblingOp.
- Updates LoopFuseSiblingOp's description.
- Adds tests for using LoopFuseSiblingOp on scf.for loops, including one
which fails without the fix for the dominance check.
- Adds tests checking the different failure modes of the dominance
checker.
- Adds test for case whereby scf.yield is automatically generated when
there are no loop-carried variables.
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions