-
Notifications
You must be signed in to change notification settings - Fork 12.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Transforms] Construct SmallVector with ArrayRef (NFC) #101851
Merged
kazutakahirata
merged 1 commit into
llvm:main
from
kazutakahirata:cleanup_SmallVector_ctor_range_Transforms
Aug 3, 2024
Merged
[Transforms] Construct SmallVector with ArrayRef (NFC) #101851
kazutakahirata
merged 1 commit into
llvm:main
from
kazutakahirata:cleanup_SmallVector_ctor_range_Transforms
Aug 3, 2024
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
llvmbot
added
vectorizers
PGO
Profile Guided Optimizations
coroutines
C++20 coroutines
llvm:transforms
labels
Aug 3, 2024
@llvm/pr-subscribers-pgo @llvm/pr-subscribers-coroutines Author: Kazu Hirata (kazutakahirata) ChangesFull diff: https://github.com/llvm/llvm-project/pull/101851.diff 11 Files Affected:
diff --git a/llvm/include/llvm/Transforms/IPO/Attributor.h b/llvm/include/llvm/Transforms/IPO/Attributor.h
index 34557238ecb23..ad3c6426efd2f 100644
--- a/llvm/include/llvm/Transforms/IPO/Attributor.h
+++ b/llvm/include/llvm/Transforms/IPO/Attributor.h
@@ -2247,7 +2247,7 @@ struct Attributor {
CalleeRepairCBTy &&CalleeRepairCB,
ACSRepairCBTy &&ACSRepairCB)
: A(A), ReplacedFn(*Arg.getParent()), ReplacedArg(Arg),
- ReplacementTypes(ReplacementTypes.begin(), ReplacementTypes.end()),
+ ReplacementTypes(ReplacementTypes),
CalleeRepairCB(std::move(CalleeRepairCB)),
ACSRepairCB(std::move(ACSRepairCB)) {}
diff --git a/llvm/lib/Transforms/Coroutines/CoroSplit.cpp b/llvm/lib/Transforms/Coroutines/CoroSplit.cpp
index 9e4da5f8ca961..8eceaef59a1e1 100644
--- a/llvm/lib/Transforms/Coroutines/CoroSplit.cpp
+++ b/llvm/lib/Transforms/Coroutines/CoroSplit.cpp
@@ -1605,7 +1605,7 @@ struct SwitchCoroutineSplitter {
ArrayRef<Function *> Fns) {
// This only works under the switch-lowering ABI because coro elision
// only works on the switch-lowering ABI.
- SmallVector<Constant *, 4> Args(Fns.begin(), Fns.end());
+ SmallVector<Constant *, 4> Args(Fns);
assert(!Args.empty());
Function *Part = *Fns.begin();
Module *M = Part->getParent();
diff --git a/llvm/lib/Transforms/IPO/PartialInlining.cpp b/llvm/lib/Transforms/IPO/PartialInlining.cpp
index 3ca095e1520f3..28c81465a0948 100644
--- a/llvm/lib/Transforms/IPO/PartialInlining.cpp
+++ b/llvm/lib/Transforms/IPO/PartialInlining.cpp
@@ -170,11 +170,10 @@ struct FunctionOutliningMultiRegionInfo {
// Container for outline regions
struct OutlineRegionInfo {
- OutlineRegionInfo(ArrayRef<BasicBlock *> Region,
- BasicBlock *EntryBlock, BasicBlock *ExitBlock,
- BasicBlock *ReturnBlock)
- : Region(Region.begin(), Region.end()), EntryBlock(EntryBlock),
- ExitBlock(ExitBlock), ReturnBlock(ReturnBlock) {}
+ OutlineRegionInfo(ArrayRef<BasicBlock *> Region, BasicBlock *EntryBlock,
+ BasicBlock *ExitBlock, BasicBlock *ReturnBlock)
+ : Region(Region), EntryBlock(EntryBlock), ExitBlock(ExitBlock),
+ ReturnBlock(ReturnBlock) {}
SmallVector<BasicBlock *, 8> Region;
BasicBlock *EntryBlock;
BasicBlock *ExitBlock;
diff --git a/llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp b/llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp
index c2affafa49e51..810cbbda66085 100644
--- a/llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp
+++ b/llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp
@@ -281,8 +281,7 @@ class CHRScope {
private:
CHRScope(ArrayRef<RegInfo> RegInfosIn, ArrayRef<CHRScope *> SubsIn)
- : RegInfos(RegInfosIn.begin(), RegInfosIn.end()),
- Subs(SubsIn.begin(), SubsIn.end()), BranchInsertPoint(nullptr) {}
+ : RegInfos(RegInfosIn), Subs(SubsIn), BranchInsertPoint(nullptr) {}
};
class CHR {
diff --git a/llvm/lib/Transforms/Scalar/LoopInterchange.cpp b/llvm/lib/Transforms/Scalar/LoopInterchange.cpp
index 400973fd9fc91..949296c3db0de 100644
--- a/llvm/lib/Transforms/Scalar/LoopInterchange.cpp
+++ b/llvm/lib/Transforms/Scalar/LoopInterchange.cpp
@@ -383,7 +383,7 @@ struct LoopInterchange {
}
bool run(LoopNest &LN) {
- SmallVector<Loop *, 8> LoopList(LN.getLoops().begin(), LN.getLoops().end());
+ SmallVector<Loop *, 8> LoopList(LN.getLoops());
for (unsigned I = 1; I < LoopList.size(); ++I)
if (LoopList[I]->getParentLoop() != LoopList[I - 1])
return false;
diff --git a/llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp b/llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp
index 6a681fd933971..d0a83a8242ddc 100644
--- a/llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp
+++ b/llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp
@@ -362,7 +362,7 @@ class LowerMatrixIntrinsics {
public:
MatrixTy() : IsColumnMajor(MatrixLayout == MatrixLayoutTy::ColumnMajor) {}
MatrixTy(ArrayRef<Value *> Vectors)
- : Vectors(Vectors.begin(), Vectors.end()),
+ : Vectors(Vectors),
IsColumnMajor(MatrixLayout == MatrixLayoutTy::ColumnMajor) {}
MatrixTy(unsigned NumRows, unsigned NumColumns, Type *EltTy)
: IsColumnMajor(MatrixLayout == MatrixLayoutTy::ColumnMajor) {
diff --git a/llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp b/llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp
index 56aa96e550d9c..2d74b2b8d1d2f 100644
--- a/llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp
+++ b/llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp
@@ -971,8 +971,7 @@ bool llvm::UnrollRuntimeLoopRemainder(
// (e.g. breakLoopBackedgeAndSimplify) and reused in loop-deletion.
BasicBlock *RemainderLatch = remainderLoop->getLoopLatch();
assert(RemainderLatch);
- SmallVector<BasicBlock*> RemainderBlocks(remainderLoop->getBlocks().begin(),
- remainderLoop->getBlocks().end());
+ SmallVector<BasicBlock *> RemainderBlocks(remainderLoop->getBlocks());
breakLoopBackedge(remainderLoop, *DT, *SE, *LI, nullptr);
remainderLoop = nullptr;
diff --git a/llvm/lib/Transforms/Utils/LoopVersioning.cpp b/llvm/lib/Transforms/Utils/LoopVersioning.cpp
index c43c92a6b4d5d..af2ed6240f722 100644
--- a/llvm/lib/Transforms/Utils/LoopVersioning.cpp
+++ b/llvm/lib/Transforms/Utils/LoopVersioning.cpp
@@ -42,10 +42,8 @@ LoopVersioning::LoopVersioning(const LoopAccessInfo &LAI,
ArrayRef<RuntimePointerCheck> Checks, Loop *L,
LoopInfo *LI, DominatorTree *DT,
ScalarEvolution *SE)
- : VersionedLoop(L), AliasChecks(Checks.begin(), Checks.end()),
- Preds(LAI.getPSE().getPredicate()), LAI(LAI), LI(LI), DT(DT),
- SE(SE) {
-}
+ : VersionedLoop(L), AliasChecks(Checks), Preds(LAI.getPSE().getPredicate()),
+ LAI(LAI), LI(LI), DT(DT), SE(SE) {}
void LoopVersioning::versionLoop(
const SmallVectorImpl<Instruction *> &DefsUsedOutside) {
diff --git a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
index 6daa8043a3fbf..40d10395de17d 100644
--- a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+++ b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
@@ -8219,7 +8219,7 @@ VPWidenRecipe *VPRecipeBuilder::tryToWiden(Instruction *I,
// If not provably safe, use a select to form a safe divisor before widening the
// div/rem operation itself. Otherwise fall through to general handling below.
if (CM.isPredicatedInst(I)) {
- SmallVector<VPValue *> Ops(Operands.begin(), Operands.end());
+ SmallVector<VPValue *> Ops(Operands);
VPValue *Mask = getBlockInMask(I->getParent());
VPValue *One =
Plan.getOrAddLiveIn(ConstantInt::get(I->getType(), 1u, false));
diff --git a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
index cd273429e6e67..305efb732d8f7 100644
--- a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+++ b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
@@ -1575,7 +1575,7 @@ class BoUpSLP {
if (I1 && I2) {
if (I1->getParent() != I2->getParent())
return CheckSameEntryOrFail();
- SmallVector<Value *, 4> Ops(MainAltOps.begin(), MainAltOps.end());
+ SmallVector<Value *, 4> Ops(MainAltOps);
Ops.push_back(I1);
Ops.push_back(I2);
InstructionsState S = getSameOpcode(Ops, TLI);
@@ -5236,7 +5236,7 @@ void BoUpSLP::reorderNodeWithReuses(TreeEntry &TE, ArrayRef<int> Mask) const {
TE.ReorderIndices.clear();
// Try to improve gathered nodes with clustered reuses, if possible.
ArrayRef<int> Slice = ArrayRef(NewMask).slice(0, Sz);
- SmallVector<unsigned> NewOrder(Slice.begin(), Slice.end());
+ SmallVector<unsigned> NewOrder(Slice);
inversePermutation(NewOrder, NewMask);
reorderScalars(TE.Scalars, NewMask);
// Fill the reuses mask with the identity submasks.
@@ -7916,8 +7916,7 @@ class BaseShuffleAnalysis {
}
break;
}
- SmallVector<int> ShuffleMask(SV->getShuffleMask().begin(),
- SV->getShuffleMask().end());
+ SmallVector<int> ShuffleMask(SV->getShuffleMask());
combineMasks(LocalVF, ShuffleMask, Mask);
Mask.swap(ShuffleMask);
if (IsOp2Undef)
@@ -8017,15 +8016,13 @@ class BaseShuffleAnalysis {
isUndefVector(SV2->getOperand(1), UseMask2).all()) {
Op1 = SV1->getOperand(0);
Op2 = SV2->getOperand(0);
- SmallVector<int> ShuffleMask1(SV1->getShuffleMask().begin(),
- SV1->getShuffleMask().end());
+ SmallVector<int> ShuffleMask1(SV1->getShuffleMask());
int LocalVF = ShuffleMask1.size();
if (auto *FTy = dyn_cast<FixedVectorType>(Op1->getType()))
LocalVF = FTy->getNumElements();
combineMasks(LocalVF, ShuffleMask1, CombinedMask1);
CombinedMask1.swap(ShuffleMask1);
- SmallVector<int> ShuffleMask2(SV2->getShuffleMask().begin(),
- SV2->getShuffleMask().end());
+ SmallVector<int> ShuffleMask2(SV2->getShuffleMask());
LocalVF = ShuffleMask2.size();
if (auto *FTy = dyn_cast<FixedVectorType>(Op2->getType()))
LocalVF = FTy->getNumElements();
@@ -8062,7 +8059,7 @@ class BaseShuffleAnalysis {
if (isa<PoisonValue>(V1))
return Builder.createPoison(
cast<VectorType>(V1->getType())->getElementType(), Mask.size());
- SmallVector<int> NewMask(Mask.begin(), Mask.end());
+ SmallVector<int> NewMask(Mask);
bool IsIdentity = peekThroughShuffles(V1, NewMask, /*SinglePermute=*/true);
assert(V1 && "Expected non-null value after looking through shuffles.");
@@ -8290,7 +8287,7 @@ class BoUpSLP::ShuffleCostEstimator : public BaseShuffleAnalysis {
return TTI::TCC_Free;
auto *VecTy = getWidenedType(ScalarTy, VL.size());
InstructionCost GatherCost = 0;
- SmallVector<Value *> Gathers(VL.begin(), VL.end());
+ SmallVector<Value *> Gathers(VL);
// Improve gather cost for gather of loads, if we can group some of the
// loads into vector loads.
InstructionsState S = getSameOpcode(VL, *R.TLI);
@@ -8725,7 +8722,7 @@ class BoUpSLP::ShuffleCostEstimator : public BaseShuffleAnalysis {
const PointerUnion<Value *, const TreeEntry *> &P2,
ArrayRef<int> Mask) {
ShuffleCostBuilder Builder(TTI);
- SmallVector<int> CommonMask(Mask.begin(), Mask.end());
+ SmallVector<int> CommonMask(Mask);
Value *V1 = P1.dyn_cast<Value *>(), *V2 = P2.dyn_cast<Value *>();
unsigned CommonVF = Mask.size();
InstructionCost ExtraCost = 0;
diff --git a/llvm/lib/Transforms/Vectorize/VectorCombine.cpp b/llvm/lib/Transforms/Vectorize/VectorCombine.cpp
index 444598520c981..d81c747684f07 100644
--- a/llvm/lib/Transforms/Vectorize/VectorCombine.cpp
+++ b/llvm/lib/Transforms/Vectorize/VectorCombine.cpp
@@ -1434,7 +1434,7 @@ bool VectorCombine::foldShuffleOfBinops(Instruction &I) {
M -= NumSrcElts;
};
- SmallVector<int> NewMask0(OldMask.begin(), OldMask.end());
+ SmallVector<int> NewMask0(OldMask);
TargetTransformInfo::ShuffleKind SK0 = TargetTransformInfo::SK_PermuteTwoSrc;
if (X == Z) {
llvm::for_each(NewMask0, ConvertToUnary);
@@ -1442,7 +1442,7 @@ bool VectorCombine::foldShuffleOfBinops(Instruction &I) {
Z = PoisonValue::get(BinOpTy);
}
- SmallVector<int> NewMask1(OldMask.begin(), OldMask.end());
+ SmallVector<int> NewMask1(OldMask);
TargetTransformInfo::ShuffleKind SK1 = TargetTransformInfo::SK_PermuteTwoSrc;
if (Y == W) {
llvm::for_each(NewMask1, ConvertToUnary);
@@ -1624,7 +1624,7 @@ bool VectorCombine::foldShuffleOfShuffles(Instruction &I) {
return false;
// Merge shuffles - replace index to the RHS poison arg with PoisonMaskElem,
- SmallVector<int, 16> NewMask(OuterMask.begin(), OuterMask.end());
+ SmallVector<int, 16> NewMask(OuterMask);
for (int &M : NewMask) {
if (0 <= M && M < (int)NumImmElts) {
M = (InnerMask0[M] >= (int)NumSrcElts) ? PoisonMaskElem : InnerMask0[M];
|
@llvm/pr-subscribers-llvm-transforms Author: Kazu Hirata (kazutakahirata) ChangesFull diff: https://github.com/llvm/llvm-project/pull/101851.diff 11 Files Affected:
diff --git a/llvm/include/llvm/Transforms/IPO/Attributor.h b/llvm/include/llvm/Transforms/IPO/Attributor.h
index 34557238ecb23..ad3c6426efd2f 100644
--- a/llvm/include/llvm/Transforms/IPO/Attributor.h
+++ b/llvm/include/llvm/Transforms/IPO/Attributor.h
@@ -2247,7 +2247,7 @@ struct Attributor {
CalleeRepairCBTy &&CalleeRepairCB,
ACSRepairCBTy &&ACSRepairCB)
: A(A), ReplacedFn(*Arg.getParent()), ReplacedArg(Arg),
- ReplacementTypes(ReplacementTypes.begin(), ReplacementTypes.end()),
+ ReplacementTypes(ReplacementTypes),
CalleeRepairCB(std::move(CalleeRepairCB)),
ACSRepairCB(std::move(ACSRepairCB)) {}
diff --git a/llvm/lib/Transforms/Coroutines/CoroSplit.cpp b/llvm/lib/Transforms/Coroutines/CoroSplit.cpp
index 9e4da5f8ca961..8eceaef59a1e1 100644
--- a/llvm/lib/Transforms/Coroutines/CoroSplit.cpp
+++ b/llvm/lib/Transforms/Coroutines/CoroSplit.cpp
@@ -1605,7 +1605,7 @@ struct SwitchCoroutineSplitter {
ArrayRef<Function *> Fns) {
// This only works under the switch-lowering ABI because coro elision
// only works on the switch-lowering ABI.
- SmallVector<Constant *, 4> Args(Fns.begin(), Fns.end());
+ SmallVector<Constant *, 4> Args(Fns);
assert(!Args.empty());
Function *Part = *Fns.begin();
Module *M = Part->getParent();
diff --git a/llvm/lib/Transforms/IPO/PartialInlining.cpp b/llvm/lib/Transforms/IPO/PartialInlining.cpp
index 3ca095e1520f3..28c81465a0948 100644
--- a/llvm/lib/Transforms/IPO/PartialInlining.cpp
+++ b/llvm/lib/Transforms/IPO/PartialInlining.cpp
@@ -170,11 +170,10 @@ struct FunctionOutliningMultiRegionInfo {
// Container for outline regions
struct OutlineRegionInfo {
- OutlineRegionInfo(ArrayRef<BasicBlock *> Region,
- BasicBlock *EntryBlock, BasicBlock *ExitBlock,
- BasicBlock *ReturnBlock)
- : Region(Region.begin(), Region.end()), EntryBlock(EntryBlock),
- ExitBlock(ExitBlock), ReturnBlock(ReturnBlock) {}
+ OutlineRegionInfo(ArrayRef<BasicBlock *> Region, BasicBlock *EntryBlock,
+ BasicBlock *ExitBlock, BasicBlock *ReturnBlock)
+ : Region(Region), EntryBlock(EntryBlock), ExitBlock(ExitBlock),
+ ReturnBlock(ReturnBlock) {}
SmallVector<BasicBlock *, 8> Region;
BasicBlock *EntryBlock;
BasicBlock *ExitBlock;
diff --git a/llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp b/llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp
index c2affafa49e51..810cbbda66085 100644
--- a/llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp
+++ b/llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp
@@ -281,8 +281,7 @@ class CHRScope {
private:
CHRScope(ArrayRef<RegInfo> RegInfosIn, ArrayRef<CHRScope *> SubsIn)
- : RegInfos(RegInfosIn.begin(), RegInfosIn.end()),
- Subs(SubsIn.begin(), SubsIn.end()), BranchInsertPoint(nullptr) {}
+ : RegInfos(RegInfosIn), Subs(SubsIn), BranchInsertPoint(nullptr) {}
};
class CHR {
diff --git a/llvm/lib/Transforms/Scalar/LoopInterchange.cpp b/llvm/lib/Transforms/Scalar/LoopInterchange.cpp
index 400973fd9fc91..949296c3db0de 100644
--- a/llvm/lib/Transforms/Scalar/LoopInterchange.cpp
+++ b/llvm/lib/Transforms/Scalar/LoopInterchange.cpp
@@ -383,7 +383,7 @@ struct LoopInterchange {
}
bool run(LoopNest &LN) {
- SmallVector<Loop *, 8> LoopList(LN.getLoops().begin(), LN.getLoops().end());
+ SmallVector<Loop *, 8> LoopList(LN.getLoops());
for (unsigned I = 1; I < LoopList.size(); ++I)
if (LoopList[I]->getParentLoop() != LoopList[I - 1])
return false;
diff --git a/llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp b/llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp
index 6a681fd933971..d0a83a8242ddc 100644
--- a/llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp
+++ b/llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp
@@ -362,7 +362,7 @@ class LowerMatrixIntrinsics {
public:
MatrixTy() : IsColumnMajor(MatrixLayout == MatrixLayoutTy::ColumnMajor) {}
MatrixTy(ArrayRef<Value *> Vectors)
- : Vectors(Vectors.begin(), Vectors.end()),
+ : Vectors(Vectors),
IsColumnMajor(MatrixLayout == MatrixLayoutTy::ColumnMajor) {}
MatrixTy(unsigned NumRows, unsigned NumColumns, Type *EltTy)
: IsColumnMajor(MatrixLayout == MatrixLayoutTy::ColumnMajor) {
diff --git a/llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp b/llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp
index 56aa96e550d9c..2d74b2b8d1d2f 100644
--- a/llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp
+++ b/llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp
@@ -971,8 +971,7 @@ bool llvm::UnrollRuntimeLoopRemainder(
// (e.g. breakLoopBackedgeAndSimplify) and reused in loop-deletion.
BasicBlock *RemainderLatch = remainderLoop->getLoopLatch();
assert(RemainderLatch);
- SmallVector<BasicBlock*> RemainderBlocks(remainderLoop->getBlocks().begin(),
- remainderLoop->getBlocks().end());
+ SmallVector<BasicBlock *> RemainderBlocks(remainderLoop->getBlocks());
breakLoopBackedge(remainderLoop, *DT, *SE, *LI, nullptr);
remainderLoop = nullptr;
diff --git a/llvm/lib/Transforms/Utils/LoopVersioning.cpp b/llvm/lib/Transforms/Utils/LoopVersioning.cpp
index c43c92a6b4d5d..af2ed6240f722 100644
--- a/llvm/lib/Transforms/Utils/LoopVersioning.cpp
+++ b/llvm/lib/Transforms/Utils/LoopVersioning.cpp
@@ -42,10 +42,8 @@ LoopVersioning::LoopVersioning(const LoopAccessInfo &LAI,
ArrayRef<RuntimePointerCheck> Checks, Loop *L,
LoopInfo *LI, DominatorTree *DT,
ScalarEvolution *SE)
- : VersionedLoop(L), AliasChecks(Checks.begin(), Checks.end()),
- Preds(LAI.getPSE().getPredicate()), LAI(LAI), LI(LI), DT(DT),
- SE(SE) {
-}
+ : VersionedLoop(L), AliasChecks(Checks), Preds(LAI.getPSE().getPredicate()),
+ LAI(LAI), LI(LI), DT(DT), SE(SE) {}
void LoopVersioning::versionLoop(
const SmallVectorImpl<Instruction *> &DefsUsedOutside) {
diff --git a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
index 6daa8043a3fbf..40d10395de17d 100644
--- a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+++ b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
@@ -8219,7 +8219,7 @@ VPWidenRecipe *VPRecipeBuilder::tryToWiden(Instruction *I,
// If not provably safe, use a select to form a safe divisor before widening the
// div/rem operation itself. Otherwise fall through to general handling below.
if (CM.isPredicatedInst(I)) {
- SmallVector<VPValue *> Ops(Operands.begin(), Operands.end());
+ SmallVector<VPValue *> Ops(Operands);
VPValue *Mask = getBlockInMask(I->getParent());
VPValue *One =
Plan.getOrAddLiveIn(ConstantInt::get(I->getType(), 1u, false));
diff --git a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
index cd273429e6e67..305efb732d8f7 100644
--- a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+++ b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
@@ -1575,7 +1575,7 @@ class BoUpSLP {
if (I1 && I2) {
if (I1->getParent() != I2->getParent())
return CheckSameEntryOrFail();
- SmallVector<Value *, 4> Ops(MainAltOps.begin(), MainAltOps.end());
+ SmallVector<Value *, 4> Ops(MainAltOps);
Ops.push_back(I1);
Ops.push_back(I2);
InstructionsState S = getSameOpcode(Ops, TLI);
@@ -5236,7 +5236,7 @@ void BoUpSLP::reorderNodeWithReuses(TreeEntry &TE, ArrayRef<int> Mask) const {
TE.ReorderIndices.clear();
// Try to improve gathered nodes with clustered reuses, if possible.
ArrayRef<int> Slice = ArrayRef(NewMask).slice(0, Sz);
- SmallVector<unsigned> NewOrder(Slice.begin(), Slice.end());
+ SmallVector<unsigned> NewOrder(Slice);
inversePermutation(NewOrder, NewMask);
reorderScalars(TE.Scalars, NewMask);
// Fill the reuses mask with the identity submasks.
@@ -7916,8 +7916,7 @@ class BaseShuffleAnalysis {
}
break;
}
- SmallVector<int> ShuffleMask(SV->getShuffleMask().begin(),
- SV->getShuffleMask().end());
+ SmallVector<int> ShuffleMask(SV->getShuffleMask());
combineMasks(LocalVF, ShuffleMask, Mask);
Mask.swap(ShuffleMask);
if (IsOp2Undef)
@@ -8017,15 +8016,13 @@ class BaseShuffleAnalysis {
isUndefVector(SV2->getOperand(1), UseMask2).all()) {
Op1 = SV1->getOperand(0);
Op2 = SV2->getOperand(0);
- SmallVector<int> ShuffleMask1(SV1->getShuffleMask().begin(),
- SV1->getShuffleMask().end());
+ SmallVector<int> ShuffleMask1(SV1->getShuffleMask());
int LocalVF = ShuffleMask1.size();
if (auto *FTy = dyn_cast<FixedVectorType>(Op1->getType()))
LocalVF = FTy->getNumElements();
combineMasks(LocalVF, ShuffleMask1, CombinedMask1);
CombinedMask1.swap(ShuffleMask1);
- SmallVector<int> ShuffleMask2(SV2->getShuffleMask().begin(),
- SV2->getShuffleMask().end());
+ SmallVector<int> ShuffleMask2(SV2->getShuffleMask());
LocalVF = ShuffleMask2.size();
if (auto *FTy = dyn_cast<FixedVectorType>(Op2->getType()))
LocalVF = FTy->getNumElements();
@@ -8062,7 +8059,7 @@ class BaseShuffleAnalysis {
if (isa<PoisonValue>(V1))
return Builder.createPoison(
cast<VectorType>(V1->getType())->getElementType(), Mask.size());
- SmallVector<int> NewMask(Mask.begin(), Mask.end());
+ SmallVector<int> NewMask(Mask);
bool IsIdentity = peekThroughShuffles(V1, NewMask, /*SinglePermute=*/true);
assert(V1 && "Expected non-null value after looking through shuffles.");
@@ -8290,7 +8287,7 @@ class BoUpSLP::ShuffleCostEstimator : public BaseShuffleAnalysis {
return TTI::TCC_Free;
auto *VecTy = getWidenedType(ScalarTy, VL.size());
InstructionCost GatherCost = 0;
- SmallVector<Value *> Gathers(VL.begin(), VL.end());
+ SmallVector<Value *> Gathers(VL);
// Improve gather cost for gather of loads, if we can group some of the
// loads into vector loads.
InstructionsState S = getSameOpcode(VL, *R.TLI);
@@ -8725,7 +8722,7 @@ class BoUpSLP::ShuffleCostEstimator : public BaseShuffleAnalysis {
const PointerUnion<Value *, const TreeEntry *> &P2,
ArrayRef<int> Mask) {
ShuffleCostBuilder Builder(TTI);
- SmallVector<int> CommonMask(Mask.begin(), Mask.end());
+ SmallVector<int> CommonMask(Mask);
Value *V1 = P1.dyn_cast<Value *>(), *V2 = P2.dyn_cast<Value *>();
unsigned CommonVF = Mask.size();
InstructionCost ExtraCost = 0;
diff --git a/llvm/lib/Transforms/Vectorize/VectorCombine.cpp b/llvm/lib/Transforms/Vectorize/VectorCombine.cpp
index 444598520c981..d81c747684f07 100644
--- a/llvm/lib/Transforms/Vectorize/VectorCombine.cpp
+++ b/llvm/lib/Transforms/Vectorize/VectorCombine.cpp
@@ -1434,7 +1434,7 @@ bool VectorCombine::foldShuffleOfBinops(Instruction &I) {
M -= NumSrcElts;
};
- SmallVector<int> NewMask0(OldMask.begin(), OldMask.end());
+ SmallVector<int> NewMask0(OldMask);
TargetTransformInfo::ShuffleKind SK0 = TargetTransformInfo::SK_PermuteTwoSrc;
if (X == Z) {
llvm::for_each(NewMask0, ConvertToUnary);
@@ -1442,7 +1442,7 @@ bool VectorCombine::foldShuffleOfBinops(Instruction &I) {
Z = PoisonValue::get(BinOpTy);
}
- SmallVector<int> NewMask1(OldMask.begin(), OldMask.end());
+ SmallVector<int> NewMask1(OldMask);
TargetTransformInfo::ShuffleKind SK1 = TargetTransformInfo::SK_PermuteTwoSrc;
if (Y == W) {
llvm::for_each(NewMask1, ConvertToUnary);
@@ -1624,7 +1624,7 @@ bool VectorCombine::foldShuffleOfShuffles(Instruction &I) {
return false;
// Merge shuffles - replace index to the RHS poison arg with PoisonMaskElem,
- SmallVector<int, 16> NewMask(OuterMask.begin(), OuterMask.end());
+ SmallVector<int, 16> NewMask(OuterMask);
for (int &M : NewMask) {
if (0 <= M && M < (int)NumImmElts) {
M = (InnerMask0[M] >= (int)NumSrcElts) ? PoisonMaskElem : InnerMask0[M];
|
MaskRay
approved these changes
Aug 3, 2024
kutemeikito
added a commit
to kutemeikito/llvm-project
that referenced
this pull request
Aug 4, 2024
* 'main' of https://github.com/llvm/llvm-project: [RISCV] Improve hasAllNBitUsers for users of SLLI. [RISCV] Invert if conditions in the switch in RISCVDAGToDAGISel::hasAllNBitUsers. NFC [Transforms] Construct SmallVector with ArrayRef (NFC) (llvm#101851) [RISCV] Capitalize some variable names. NFC [sanitizer_common] Fix UnwindFast on SPARC (llvm#101634) [builtins] Fix divtc3.c etc. compilation on Solaris/SPARC with gcc (llvm#101662) [NFC][asan] Track current dynamic init module (llvm#101597) [libc] enable most of the entrypoints on aarch64 (llvm#101797) [SandboxIR][Tracker] Track InsertIntoBB (llvm#101595) [SCEV] Use const SCEV * explicitly in more places. [ELF] Move outputSections into Ctx. NFC [ELF] Move ElfSym into Ctx. NFC [ELF] Move Out into Ctx. NFC [test][asan] Fix the test checks [NFC][asan] Switch from list to DynInitGlobalsByModule (llvm#101596) Signed-off-by: Edwiin Kusuma Jaya <kutemeikito0905@gmail.com>
banach-space
pushed a commit
to banach-space/llvm-project
that referenced
this pull request
Aug 7, 2024
kstoimenov
pushed a commit
to kstoimenov/llvm-project
that referenced
this pull request
Aug 15, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.