commit | 0b3d5b8838288f5873894c53f30b007d6c83ee1d | [log] [tgz] |
---|---|---|
author | Rolf Morel <rolf.morel@huawei.com> | Thu Mar 28 13:13:08 2024 +0000 |
committer | Copybara-Service <copybara-worker@google.com> | Thu Mar 28 06:19:18 2024 -0700 |
tree | f66ed2f45122c4b7a90ec5c72ff7cd8ddb53fd6c | |
parent | 67696f3cb0d2b12b848853d705e13df6681b4964 [diff] |
[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. GitOrigin-RevId: eacda36c7dd842cb15c0c954eda74b67d0c73814
See https://mlir.llvm.org/ for more information.