diff --git a/mlir/lib/Dialect/SparseTensor/Transforms/SparseBufferRewriting.cpp b/mlir/lib/Dialect/SparseTensor/Transforms/SparseBufferRewriting.cpp --- a/mlir/lib/Dialect/SparseTensor/Transforms/SparseBufferRewriting.cpp +++ b/mlir/lib/Dialect/SparseTensor/Transforms/SparseBufferRewriting.cpp @@ -490,8 +490,8 @@ Value i = lo; Value j = builder.create(loc, hi, c1); - SmallVector operands{i, j, p}; - SmallVector types{i.getType(), j.getType(), p.getType()}; + SmallVector operands{i, j, p}; // exactly three + SmallVector types{i.getType(), j.getType(), p.getType()}; scf::WhileOp whileOp = builder.create(loc, types, operands); // The before-region of the WhileOp. diff --git a/mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorCodegen.cpp b/mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorCodegen.cpp --- a/mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorCodegen.cpp +++ b/mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorCodegen.cpp @@ -543,9 +543,8 @@ Value hi = genLoad(builder, loc, fields[memSizesIdx], mz); Value zero = constantIndex(builder, loc, 0); Value one = constantIndex(builder, loc, 1); - SmallVector inits; // only one - inits.push_back(genLoad(builder, loc, fields[field], zero)); - scf::ForOp loop = createFor(builder, loc, hi, inits, one); + Value theInit = genLoad(builder, loc, fields[field], zero); + scf::ForOp loop = createFor(builder, loc, hi, {theInit}, one); Value i = loop.getInductionVar(); Value oldv = loop.getRegionIterArg(0); Value newv = genLoad(builder, loc, fields[field], i);