[PATCH] D102679: [llvm] Make Sequence reverse-iterable
Arthur O'Dwyer via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Jun 8 10:31:57 PDT 2021
Quuxplusone added inline comments.
================
Comment at: mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp:321
- SmallVector<int64_t> transposition(
- llvm::seq<int64_t>(0, linalgOp.getNumLoops()));
std::swap(transposition.back(), transposition[indexOp.dim()]);
----------------
mehdi_amini wrote:
> Why did we lose this direct initialization pattern? Can we adjust something to keep this?
FWIW, I don't think we //want// to keep this. A lazy `llvm::seq` object physically-is something very different from a `SmallVector<int64_t>`; I think it's very good that the new code separates them. It might be even better to just use the `std::iota` algorithm to initialize the vector's contents:
```
SmallVector<int64_t> transposition(linalgOp.getNumLoops());
std::iota(transposition.begin(), transposition.end(), 0);
std::swap(transposition.back(), transposition[indexOp.dim()]);
```
If we were to keep it a one-liner, I would argue in favor of a named method on `seq`:
```
SmallVector<int64_t> transposition =
llvm::seq<int64_t>(0, linalgOp.getNumLoops()).asSmallVector();
std::swap(transposition.back(), transposition[indexOp.dim()]);
```
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D102679/new/
https://reviews.llvm.org/D102679
More information about the llvm-commits
mailing list