[mlir][sparse] fix sparse tensor rewriting patterns that do not propagate sparse tensor SSA properly.

Reviewed By: aartbik

Differential Revision: https://reviews.llvm.org/D137468
This commit is contained in:
Peiming Liu
2022-11-04 19:35:29 +00:00
parent 7ded25c0cb
commit 70508b614e
8 changed files with 181 additions and 120 deletions

View File

@@ -603,9 +603,12 @@ void ForeachOp::build(
std::fill_n(std::back_inserter(blockArgTypes), rank, builder.getIndexType());
// Followed by one value.
blockArgTypes.push_back(rtp.getElementType());
// Followed by reduction variable.
blockArgTypes.append(initArgs.getTypes().begin(), initArgs.getTypes().end());
SmallVector<Location, 4> blockArgLocs;
std::fill_n(std::back_inserter(blockArgLocs), rank + 1, tensor.getLoc());
std::fill_n(std::back_inserter(blockArgLocs), blockArgTypes.size(),
tensor.getLoc());
OpBuilder::InsertionGuard guard(builder);
auto &region = *result.regions.front();