[llvm] 8524312 - Tweak some uses of std::iota to skip initializing the underlying storage. NFCI.
Benjamin Kramer via llvm-commits
llvm-commits at lists.llvm.org
Fri Feb 4 08:10:27 PST 2022
Author: Benjamin Kramer
Date: 2022-02-04T17:00:50+01:00
New Revision: 85243124cf7ab25df3dec14f802f6eca9cf68b39
URL: https://github.com/llvm/llvm-project/commit/85243124cf7ab25df3dec14f802f6eca9cf68b39
DIFF: https://github.com/llvm/llvm-project/commit/85243124cf7ab25df3dec14f802f6eca9cf68b39.diff
LOG: Tweak some uses of std::iota to skip initializing the underlying storage. NFCI.
Added:
Modified:
llvm/lib/LTO/LTO.cpp
llvm/lib/Target/PowerPC/PPCISelLowering.cpp
llvm/lib/Transforms/IPO/IROutliner.cpp
llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
Removed:
################################################################################
diff --git a/llvm/lib/LTO/LTO.cpp b/llvm/lib/LTO/LTO.cpp
index 418aad26fdd6a..d710c81bb0dd6 100644
--- a/llvm/lib/LTO/LTO.cpp
+++ b/llvm/lib/LTO/LTO.cpp
@@ -1621,9 +1621,8 @@ lto::setupStatsFile(StringRef StatsFilename) {
// is to sort them per size so that the largest module get schedule as soon as
// possible. This is purely a compile-time optimization.
std::vector<int> lto::generateModulesOrdering(ArrayRef<BitcodeModule *> R) {
- std::vector<int> ModulesOrdering;
- ModulesOrdering.resize(R.size());
- std::iota(ModulesOrdering.begin(), ModulesOrdering.end(), 0);
+ auto Seq = llvm::seq<int>(0, R.size());
+ std::vector<int> ModulesOrdering(Seq.begin(), Seq.end());
llvm::sort(ModulesOrdering, [&](int LeftIndex, int RightIndex) {
auto LSize = R[LeftIndex]->getBuffer().size();
auto RSize = R[RightIndex]->getBuffer().size();
diff --git a/llvm/lib/Target/PowerPC/PPCISelLowering.cpp b/llvm/lib/Target/PowerPC/PPCISelLowering.cpp
index bfec041b4dc52..10d59d1f9e2f5 100644
--- a/llvm/lib/Target/PowerPC/PPCISelLowering.cpp
+++ b/llvm/lib/Target/PowerPC/PPCISelLowering.cpp
@@ -9819,7 +9819,7 @@ SDValue PPCTargetLowering::LowerROTL(SDValue Op, SelectionDAG &DAG) const {
SDValue N1 = peekThroughBitcasts(Op.getOperand(1));
unsigned SHLAmt = N1.getConstantOperandVal(0);
if (SHLAmt % 8 == 0) {
- SmallVector<int, 16> Mask(16, 0);
+ std::array<int, 16> Mask;
std::iota(Mask.begin(), Mask.end(), 0);
std::rotate(Mask.begin(), Mask.begin() + SHLAmt / 8, Mask.end());
if (SDValue Shuffle =
diff --git a/llvm/lib/Transforms/IPO/IROutliner.cpp b/llvm/lib/Transforms/IPO/IROutliner.cpp
index faf7cb7d566a1..2e3b22794d23a 100644
--- a/llvm/lib/Transforms/IPO/IROutliner.cpp
+++ b/llvm/lib/Transforms/IPO/IROutliner.cpp
@@ -969,12 +969,11 @@ static bool outputHasNonPHI(Value *V, unsigned PHILoc, PHINode &PN,
// We check to see if the value is used by the PHINode from some other
// predecessor not included in the region. If it is, we make sure
// to keep it as an output.
- SmallVector<unsigned, 2> IncomingNumbers(PN.getNumIncomingValues());
- std::iota(IncomingNumbers.begin(), IncomingNumbers.end(), 0);
- if (any_of(IncomingNumbers, [PHILoc, &PN, V, &BlocksInRegion](unsigned Idx) {
- return (Idx != PHILoc && V == PN.getIncomingValue(Idx) &&
- !BlocksInRegion.contains(PN.getIncomingBlock(Idx)));
- }))
+ if (any_of(llvm::seq<unsigned>(0, PN.getNumIncomingValues()),
+ [PHILoc, &PN, V, &BlocksInRegion](unsigned Idx) {
+ return (Idx != PHILoc && V == PN.getIncomingValue(Idx) &&
+ !BlocksInRegion.contains(PN.getIncomingBlock(Idx)));
+ }))
return true;
// Check if the value is used by any other instructions outside the region.
diff --git a/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp b/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
index f11ba8772f3ca..88551d311be3a 100644
--- a/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
+++ b/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
@@ -2150,14 +2150,10 @@ optimizeVectorResizeWithIntegerBitCasts(Value *InVal, VectorType *DestTy,
// Now that the element types match, get the shuffle mask and RHS of the
// shuffle to use, which depends on whether we're increasing or decreasing the
// size of the input.
- SmallVector<int, 16> ShuffleMaskStorage;
+ auto ShuffleMaskStorage = llvm::to_vector<16>(llvm::seq<int>(0, SrcElts));
ArrayRef<int> ShuffleMask;
Value *V2;
- // Produce an identify shuffle mask for the src vector.
- ShuffleMaskStorage.resize(SrcElts);
- std::iota(ShuffleMaskStorage.begin(), ShuffleMaskStorage.end(), 0);
-
if (SrcElts > DestElts) {
// If we're shrinking the number of elements (rewriting an integer
// truncate), just shuffle in the elements corresponding to the least
More information about the llvm-commits
mailing list