Replace iterators of the outermost loop with region arguments of the innermost
one. The changes avoid later bufferization passes to insert allocation within
the body of the innermost loop.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Comment Actions
Thanks! Just a minor suggestion.
mlir/lib/Dialect/SCF/Transforms/TileUsingInterface.cpp | ||
---|---|---|
360 | Couple of suggestions here
Block *block = &(*innerFor.getRegion().begin()); for (auto it : llvm::zip(outerFor.getIterOperands(), innerFor.getRegionIterArgs()) { Value source = std::get<0>(it); Value target = std::get<1>(it); source.replaceAllUsesWithIf(target, [&](OpOperand &use) { return use.getOwner()->getBlock() == block; }); }
|
mlir/lib/Dialect/SCF/Transforms/TileUsingInterface.cpp | ||
---|---|---|
360 | Updated. Nice solution :) |
Comment Actions
Currently investigating why the test fails. Seems related with: https://github.com/llvm/llvm-project/commit/485190df95f98c51c3f4a4ab4db96127cdc9ce78
Couple of suggestions here