diff --git a/llvm/include/llvm/ADT/Sequence.h b/llvm/include/llvm/ADT/Sequence.h --- a/llvm/include/llvm/ADT/Sequence.h +++ b/llvm/include/llvm/ADT/Sequence.h @@ -15,8 +15,6 @@ #ifndef LLVM_ADT_SEQUENCE_H #define LLVM_ADT_SEQUENCE_H -#include "llvm/ADT/SmallVector.h" - #include //std::ptrdiff_t #include //std::random_access_iterator_tag @@ -167,8 +165,6 @@ auto rbegin() const { return const_reverse_iterator(End - 1); } auto rend() const { return const_reverse_iterator(Begin - 1); } - auto asSmallVector() const { return SmallVector(begin(), end()); } - private: static_assert(std::is_same>::value, "ValueT must not be const nor volatile"); diff --git a/mlir/lib/Conversion/PDLToPDLInterp/PDLToPDLInterp.cpp b/mlir/lib/Conversion/PDLToPDLInterp/PDLToPDLInterp.cpp --- a/mlir/lib/Conversion/PDLToPDLInterp/PDLToPDLInterp.cpp +++ b/mlir/lib/Conversion/PDLToPDLInterp/PDLToPDLInterp.cpp @@ -15,7 +15,9 @@ #include "mlir/Pass/Pass.h" #include "llvm/ADT/MapVector.h" #include "llvm/ADT/ScopedHashTable.h" +#include "llvm/ADT/Sequence.h" #include "llvm/ADT/SetVector.h" +#include "llvm/ADT/SmallVector.h" #include "llvm/ADT/TypeSwitch.h" using namespace mlir; @@ -380,9 +382,8 @@ if (kind == Predicates::OperandCountAtLeastQuestion || kind == Predicates::ResultCountAtLeastQuestion) { // Order the children such that the cases are in reverse numerical order. - SmallVector sortedChildren = - llvm::seq(0, switchNode->getChildren().size()) - .asSmallVector(); + SmallVector sortedChildren = llvm::to_vector<16>( + llvm::seq(0, switchNode->getChildren().size())); llvm::sort(sortedChildren, [&](unsigned lhs, unsigned rhs) { return cast(switchNode->getChild(lhs).first)->getValue() > cast(switchNode->getChild(rhs).first)->getValue(); diff --git a/mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp b/mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp --- a/mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp +++ b/mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp @@ -24,6 +24,8 @@ #include "mlir/Support/LLVM.h" #include "mlir/Transforms/RegionUtils.h" #include "llvm/ADT/ScopeExit.h" +#include "llvm/ADT/Sequence.h" +#include "llvm/ADT/SmallVector.h" #include "llvm/ADT/TypeSwitch.h" #include "llvm/Support/Debug.h" #include "llvm/Support/raw_ostream.h" @@ -303,7 +305,7 @@ auto targetShape = linalgOp.computeStaticLoopSizes(); // Compute a one-dimensional index vector for the index op dimension. SmallVector constantSeq = - llvm::seq(0, targetShape[indexOp.dim()]).asSmallVector(); + llvm::to_vector<16>(llvm::seq(0, targetShape[indexOp.dim()])); ConstantOp constantOp = b.create(loc, b.getIndexVectorAttr(constantSeq)); // Return the one-dimensional index vector if it lives in the trailing @@ -318,7 +320,7 @@ auto broadCastOp = b.create( loc, VectorType::get(targetShape, b.getIndexType()), constantOp); SmallVector transposition = - llvm::seq(0, linalgOp.getNumLoops()).asSmallVector(); + llvm::to_vector<16>(llvm::seq(0, linalgOp.getNumLoops())); std::swap(transposition.back(), transposition[indexOp.dim()]); auto transposeOp = b.create(loc, broadCastOp, transposition);