[Mlir-commits] [mlir] [MLIR][Vector] Fix WarpOpScfForOp and WarpOpScfIfOp leaving invalid ops after region moves (PR #188951)
Kunwar Grover
llvmlistbot at llvm.org
Wed Apr 15 06:58:42 PDT 2026
================
@@ -2224,6 +2248,17 @@ struct WarpOpScfForOp : public WarpDistributionPattern {
for (auto [origIdx, newIdx] : forResultMapping)
rewriter.replaceAllUsesExcept(newWarpOp.getResult(origIdx),
newForOp.getResult(newIdx), newForOp);
+
+ // The original `ForOp` was left inside `newWarpOp` with an empty body
+ // region (its body block was moved into `innerWarp` by `mergeBlocks`).
+ // Clear remaining uses and erase it to restore IR validity.
+ for (OpResult result : forOp.getResults()) {
+ if (forResultsMapped.test(result.getResultNumber()))
+ rewriter.replaceAllUsesWith(
+ result, forOp.getInitArgs()[result.getResultNumber()]);
+ }
----------------
Groverkss wrote:
Do we need to clear remaining uses?
https://github.com/llvm/llvm-project/pull/188951
More information about the Mlir-commits
mailing list