-
Notifications
You must be signed in to change notification settings - Fork 14.3k
[llvm] Use *Set::insert_range (NFC) #133353
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
[llvm] Use *Set::insert_range (NFC) #133353
Conversation
We can use *Set::insert_range to collapse: for (auto Elem : Range) Set.insert(E.first); down to: Set.insert_range(llvm::make_first_range(Range)); In some cases, we can further fold that into the set declaration.
@llvm/pr-subscribers-llvm-transforms @llvm/pr-subscribers-tablegen Author: Kazu Hirata (kazutakahirata) ChangesWe can use *Set::insert_range to collapse: for (auto Elem : Range) down to: Set.insert_range(llvm::make_first_range(Range)); In some cases, we can further fold that into the set declaration. Full diff: https://github.com/llvm/llvm-project/pull/133353.diff 10 Files Affected:
diff --git a/llvm/lib/CodeGen/CodeGenPrepare.cpp b/llvm/lib/CodeGen/CodeGenPrepare.cpp
index 5ec7000fd0aad..a02daad2fbd74 100644
--- a/llvm/lib/CodeGen/CodeGenPrepare.cpp
+++ b/llvm/lib/CodeGen/CodeGenPrepare.cpp
@@ -4370,8 +4370,7 @@ class AddressingModeCombiner {
// If it does not match, collect all Phi nodes from matcher.
// if we end up with no match, them all these Phi nodes will not match
// later.
- for (auto M : Matched)
- WillNotMatch.insert(M.first);
+ WillNotMatch.insert_range(llvm::make_first_range(Matched));
Matched.clear();
}
if (IsMatched) {
diff --git a/llvm/lib/CodeGen/FixupStatepointCallerSaved.cpp b/llvm/lib/CodeGen/FixupStatepointCallerSaved.cpp
index 6293c16100cf5..8b74dcebd00ac 100644
--- a/llvm/lib/CodeGen/FixupStatepointCallerSaved.cpp
+++ b/llvm/lib/CodeGen/FixupStatepointCallerSaved.cpp
@@ -242,8 +242,7 @@ class FrameIndexesCache {
ReservedSlots.clear();
if (EHPad)
if (auto It = GlobalIndices.find(EHPad); It != GlobalIndices.end())
- for (auto &RSP : It->second)
- ReservedSlots.insert(RSP.second);
+ ReservedSlots.insert_range(llvm::make_second_range(It->second));
}
// Get frame index to spill the register.
diff --git a/llvm/lib/IR/SafepointIRVerifier.cpp b/llvm/lib/IR/SafepointIRVerifier.cpp
index 9c7f91d756301..09eab3d19b4d0 100644
--- a/llvm/lib/IR/SafepointIRVerifier.cpp
+++ b/llvm/lib/IR/SafepointIRVerifier.cpp
@@ -612,11 +612,10 @@ void GCPtrTracker::verifyFunction(GCPtrTracker &&Tracker,
}
void GCPtrTracker::recalculateBBsStates() {
- SetVector<const BasicBlock *> Worklist;
// TODO: This order is suboptimal, it's better to replace it with priority
// queue where priority is RPO number of BB.
- for (auto &BBI : BlockMap)
- Worklist.insert(BBI.first);
+ SetVector<const BasicBlock *> Worklist(llvm::from_range,
+ llvm::make_first_range(BlockMap));
// This loop iterates the AvailableIn/Out sets until it converges.
// The AvailableIn and AvailableOut sets decrease as we iterate.
diff --git a/llvm/lib/ProfileData/SampleProf.cpp b/llvm/lib/ProfileData/SampleProf.cpp
index addb473faebdf..4d48de9bc7d63 100644
--- a/llvm/lib/ProfileData/SampleProf.cpp
+++ b/llvm/lib/ProfileData/SampleProf.cpp
@@ -267,8 +267,7 @@ const FunctionSamples *FunctionSamples::findFunctionSamples(
void FunctionSamples::findAllNames(DenseSet<FunctionId> &NameSet) const {
NameSet.insert(getFunction());
for (const auto &BS : BodySamples)
- for (const auto &TS : BS.second.getCallTargets())
- NameSet.insert(TS.first);
+ NameSet.insert_range(llvm::make_first_range(BS.second.getCallTargets()));
for (const auto &CS : CallsiteSamples) {
for (const auto &NameFS : CS.second) {
diff --git a/llvm/lib/Transforms/Scalar/JumpThreading.cpp b/llvm/lib/Transforms/Scalar/JumpThreading.cpp
index 9cae65bbdcfbc..18d5f201413c8 100644
--- a/llvm/lib/Transforms/Scalar/JumpThreading.cpp
+++ b/llvm/lib/Transforms/Scalar/JumpThreading.cpp
@@ -524,9 +524,7 @@ static unsigned getJumpThreadDuplicationCost(const TargetTransformInfo *TTI,
void JumpThreadingPass::findLoopHeaders(Function &F) {
SmallVector<std::pair<const BasicBlock*,const BasicBlock*>, 32> Edges;
FindFunctionBackedges(F, Edges);
-
- for (const auto &Edge : Edges)
- LoopHeaders.insert(Edge.second);
+ LoopHeaders.insert_range(llvm::make_second_range(Edges));
}
/// getKnownConstant - Helper method to determine if we can thread over a
@@ -1379,10 +1377,8 @@ bool JumpThreadingPass::simplifyPartiallyRedundantLoad(LoadInst *LoadI) {
// Otherwise, we had multiple unavailable predecessors or we had a critical
// edge from the one.
SmallVector<BasicBlock*, 8> PredsToSplit;
- SmallPtrSet<BasicBlock*, 8> AvailablePredSet;
-
- for (const auto &AvailablePred : AvailablePreds)
- AvailablePredSet.insert(AvailablePred.first);
+ SmallPtrSet<BasicBlock *, 8> AvailablePredSet(
+ llvm::from_range, llvm::make_first_range(AvailablePreds));
// Add all the unavailable predecessors to the PredsToSplit list.
for (BasicBlock *P : predecessors(LoadBB)) {
diff --git a/llvm/lib/Transforms/Scalar/StructurizeCFG.cpp b/llvm/lib/Transforms/Scalar/StructurizeCFG.cpp
index d1054b9b045ca..caba873408335 100644
--- a/llvm/lib/Transforms/Scalar/StructurizeCFG.cpp
+++ b/llvm/lib/Transforms/Scalar/StructurizeCFG.cpp
@@ -819,8 +819,7 @@ void StructurizeCFG::setPhiValues() {
// Get the undefined blocks shared by all the phi nodes.
if (!BlkPhis.empty()) {
- for (const auto &VI : BlkPhis.front().second)
- Incomings.insert(VI.first);
+ Incomings.insert_range(llvm::make_first_range(BlkPhis.front().second));
findUndefBlocks(To, Incomings, UndefBlks);
}
diff --git a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
index 40d11444ea39f..f29fb6780253b 100644
--- a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+++ b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
@@ -6896,8 +6896,7 @@ void BoUpSLP::reorderBottomToTop(bool IgnoreReorder) {
SmallVector<TreeEntry *> GatherOps;
if (!canReorderOperands(Data.first, Data.second, NonVectorized,
GatherOps)) {
- for (const std::pair<unsigned, TreeEntry *> &Op : Data.second)
- Visited.insert(Op.second);
+ Visited.insert_range(llvm::make_second_range(Data.second));
continue;
}
// All operands are reordered and used only in this node - propagate the
@@ -7073,8 +7072,7 @@ void BoUpSLP::reorderBottomToTop(bool IgnoreReorder) {
}
}
if (OrdersUses.empty()) {
- for (const std::pair<unsigned, TreeEntry *> &Op : Data.second)
- Visited.insert(Op.second);
+ Visited.insert_range(llvm::make_second_range(Data.second));
continue;
}
// Choose the most used order.
@@ -7103,8 +7101,7 @@ void BoUpSLP::reorderBottomToTop(bool IgnoreReorder) {
}
// Set order of the user node.
if (isIdentityOrder(BestOrder)) {
- for (const std::pair<unsigned, TreeEntry *> &Op : Data.second)
- Visited.insert(Op.second);
+ Visited.insert_range(llvm::make_second_range(Data.second));
continue;
}
fixupOrderingIndices(BestOrder);
diff --git a/llvm/lib/Transforms/Vectorize/VPlanSLP.h b/llvm/lib/Transforms/Vectorize/VPlanSLP.h
index a40ebd28deea2..93f04e6e30a6f 100644
--- a/llvm/lib/Transforms/Vectorize/VPlanSLP.h
+++ b/llvm/lib/Transforms/Vectorize/VPlanSLP.h
@@ -50,10 +50,9 @@ class VPInterleavedAccessInfo {
VPInterleavedAccessInfo(VPlan &Plan, InterleavedAccessInfo &IAI);
~VPInterleavedAccessInfo() {
- SmallPtrSet<InterleaveGroup<VPInstruction> *, 4> DelSet;
// Avoid releasing a pointer twice.
- for (auto &I : InterleaveGroupMap)
- DelSet.insert(I.second);
+ SmallPtrSet<InterleaveGroup<VPInstruction> *, 4> DelSet(
+ llvm::from_range, llvm::make_second_range(InterleaveGroupMap));
for (auto *Ptr : DelSet)
delete Ptr;
}
diff --git a/llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp b/llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp
index e9a7153183eef..5ee8c50d6e51b 100644
--- a/llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp
+++ b/llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp
@@ -217,10 +217,8 @@ bool TypeSetByHwMode::operator==(const TypeSetByHwMode &VTS) const {
return false;
SmallSet<unsigned, 4> Modes;
- for (auto &I : *this)
- Modes.insert(I.first);
- for (const auto &I : VTS)
- Modes.insert(I.first);
+ Modes.insert_range(llvm::make_first_range(*this));
+ Modes.insert_range(llvm::make_first_range(VTS));
if (HaveDefault) {
// Both sets have default mode.
diff --git a/llvm/utils/TableGen/Common/CodeGenRegisters.cpp b/llvm/utils/TableGen/Common/CodeGenRegisters.cpp
index 530f7cae86e5d..9c2681469116e 100644
--- a/llvm/utils/TableGen/Common/CodeGenRegisters.cpp
+++ b/llvm/utils/TableGen/Common/CodeGenRegisters.cpp
@@ -598,8 +598,7 @@ void CodeGenRegister::addSubRegsPreOrder(
SR->addSubRegsPreOrder(OSet, RegBank);
}
// Add any secondary sub-registers that weren't part of the explicit tree.
- for (auto SubReg : SubRegs)
- OSet.insert(SubReg.second);
+ OSet.insert_range(llvm::make_second_range(SubRegs));
}
// Get the sum of this register's unit weights.
|
@llvm/pr-subscribers-vectorizers Author: Kazu Hirata (kazutakahirata) ChangesWe can use *Set::insert_range to collapse: for (auto Elem : Range) down to: Set.insert_range(llvm::make_first_range(Range)); In some cases, we can further fold that into the set declaration. Full diff: https://github.com/llvm/llvm-project/pull/133353.diff 10 Files Affected:
diff --git a/llvm/lib/CodeGen/CodeGenPrepare.cpp b/llvm/lib/CodeGen/CodeGenPrepare.cpp
index 5ec7000fd0aad..a02daad2fbd74 100644
--- a/llvm/lib/CodeGen/CodeGenPrepare.cpp
+++ b/llvm/lib/CodeGen/CodeGenPrepare.cpp
@@ -4370,8 +4370,7 @@ class AddressingModeCombiner {
// If it does not match, collect all Phi nodes from matcher.
// if we end up with no match, them all these Phi nodes will not match
// later.
- for (auto M : Matched)
- WillNotMatch.insert(M.first);
+ WillNotMatch.insert_range(llvm::make_first_range(Matched));
Matched.clear();
}
if (IsMatched) {
diff --git a/llvm/lib/CodeGen/FixupStatepointCallerSaved.cpp b/llvm/lib/CodeGen/FixupStatepointCallerSaved.cpp
index 6293c16100cf5..8b74dcebd00ac 100644
--- a/llvm/lib/CodeGen/FixupStatepointCallerSaved.cpp
+++ b/llvm/lib/CodeGen/FixupStatepointCallerSaved.cpp
@@ -242,8 +242,7 @@ class FrameIndexesCache {
ReservedSlots.clear();
if (EHPad)
if (auto It = GlobalIndices.find(EHPad); It != GlobalIndices.end())
- for (auto &RSP : It->second)
- ReservedSlots.insert(RSP.second);
+ ReservedSlots.insert_range(llvm::make_second_range(It->second));
}
// Get frame index to spill the register.
diff --git a/llvm/lib/IR/SafepointIRVerifier.cpp b/llvm/lib/IR/SafepointIRVerifier.cpp
index 9c7f91d756301..09eab3d19b4d0 100644
--- a/llvm/lib/IR/SafepointIRVerifier.cpp
+++ b/llvm/lib/IR/SafepointIRVerifier.cpp
@@ -612,11 +612,10 @@ void GCPtrTracker::verifyFunction(GCPtrTracker &&Tracker,
}
void GCPtrTracker::recalculateBBsStates() {
- SetVector<const BasicBlock *> Worklist;
// TODO: This order is suboptimal, it's better to replace it with priority
// queue where priority is RPO number of BB.
- for (auto &BBI : BlockMap)
- Worklist.insert(BBI.first);
+ SetVector<const BasicBlock *> Worklist(llvm::from_range,
+ llvm::make_first_range(BlockMap));
// This loop iterates the AvailableIn/Out sets until it converges.
// The AvailableIn and AvailableOut sets decrease as we iterate.
diff --git a/llvm/lib/ProfileData/SampleProf.cpp b/llvm/lib/ProfileData/SampleProf.cpp
index addb473faebdf..4d48de9bc7d63 100644
--- a/llvm/lib/ProfileData/SampleProf.cpp
+++ b/llvm/lib/ProfileData/SampleProf.cpp
@@ -267,8 +267,7 @@ const FunctionSamples *FunctionSamples::findFunctionSamples(
void FunctionSamples::findAllNames(DenseSet<FunctionId> &NameSet) const {
NameSet.insert(getFunction());
for (const auto &BS : BodySamples)
- for (const auto &TS : BS.second.getCallTargets())
- NameSet.insert(TS.first);
+ NameSet.insert_range(llvm::make_first_range(BS.second.getCallTargets()));
for (const auto &CS : CallsiteSamples) {
for (const auto &NameFS : CS.second) {
diff --git a/llvm/lib/Transforms/Scalar/JumpThreading.cpp b/llvm/lib/Transforms/Scalar/JumpThreading.cpp
index 9cae65bbdcfbc..18d5f201413c8 100644
--- a/llvm/lib/Transforms/Scalar/JumpThreading.cpp
+++ b/llvm/lib/Transforms/Scalar/JumpThreading.cpp
@@ -524,9 +524,7 @@ static unsigned getJumpThreadDuplicationCost(const TargetTransformInfo *TTI,
void JumpThreadingPass::findLoopHeaders(Function &F) {
SmallVector<std::pair<const BasicBlock*,const BasicBlock*>, 32> Edges;
FindFunctionBackedges(F, Edges);
-
- for (const auto &Edge : Edges)
- LoopHeaders.insert(Edge.second);
+ LoopHeaders.insert_range(llvm::make_second_range(Edges));
}
/// getKnownConstant - Helper method to determine if we can thread over a
@@ -1379,10 +1377,8 @@ bool JumpThreadingPass::simplifyPartiallyRedundantLoad(LoadInst *LoadI) {
// Otherwise, we had multiple unavailable predecessors or we had a critical
// edge from the one.
SmallVector<BasicBlock*, 8> PredsToSplit;
- SmallPtrSet<BasicBlock*, 8> AvailablePredSet;
-
- for (const auto &AvailablePred : AvailablePreds)
- AvailablePredSet.insert(AvailablePred.first);
+ SmallPtrSet<BasicBlock *, 8> AvailablePredSet(
+ llvm::from_range, llvm::make_first_range(AvailablePreds));
// Add all the unavailable predecessors to the PredsToSplit list.
for (BasicBlock *P : predecessors(LoadBB)) {
diff --git a/llvm/lib/Transforms/Scalar/StructurizeCFG.cpp b/llvm/lib/Transforms/Scalar/StructurizeCFG.cpp
index d1054b9b045ca..caba873408335 100644
--- a/llvm/lib/Transforms/Scalar/StructurizeCFG.cpp
+++ b/llvm/lib/Transforms/Scalar/StructurizeCFG.cpp
@@ -819,8 +819,7 @@ void StructurizeCFG::setPhiValues() {
// Get the undefined blocks shared by all the phi nodes.
if (!BlkPhis.empty()) {
- for (const auto &VI : BlkPhis.front().second)
- Incomings.insert(VI.first);
+ Incomings.insert_range(llvm::make_first_range(BlkPhis.front().second));
findUndefBlocks(To, Incomings, UndefBlks);
}
diff --git a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
index 40d11444ea39f..f29fb6780253b 100644
--- a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+++ b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
@@ -6896,8 +6896,7 @@ void BoUpSLP::reorderBottomToTop(bool IgnoreReorder) {
SmallVector<TreeEntry *> GatherOps;
if (!canReorderOperands(Data.first, Data.second, NonVectorized,
GatherOps)) {
- for (const std::pair<unsigned, TreeEntry *> &Op : Data.second)
- Visited.insert(Op.second);
+ Visited.insert_range(llvm::make_second_range(Data.second));
continue;
}
// All operands are reordered and used only in this node - propagate the
@@ -7073,8 +7072,7 @@ void BoUpSLP::reorderBottomToTop(bool IgnoreReorder) {
}
}
if (OrdersUses.empty()) {
- for (const std::pair<unsigned, TreeEntry *> &Op : Data.second)
- Visited.insert(Op.second);
+ Visited.insert_range(llvm::make_second_range(Data.second));
continue;
}
// Choose the most used order.
@@ -7103,8 +7101,7 @@ void BoUpSLP::reorderBottomToTop(bool IgnoreReorder) {
}
// Set order of the user node.
if (isIdentityOrder(BestOrder)) {
- for (const std::pair<unsigned, TreeEntry *> &Op : Data.second)
- Visited.insert(Op.second);
+ Visited.insert_range(llvm::make_second_range(Data.second));
continue;
}
fixupOrderingIndices(BestOrder);
diff --git a/llvm/lib/Transforms/Vectorize/VPlanSLP.h b/llvm/lib/Transforms/Vectorize/VPlanSLP.h
index a40ebd28deea2..93f04e6e30a6f 100644
--- a/llvm/lib/Transforms/Vectorize/VPlanSLP.h
+++ b/llvm/lib/Transforms/Vectorize/VPlanSLP.h
@@ -50,10 +50,9 @@ class VPInterleavedAccessInfo {
VPInterleavedAccessInfo(VPlan &Plan, InterleavedAccessInfo &IAI);
~VPInterleavedAccessInfo() {
- SmallPtrSet<InterleaveGroup<VPInstruction> *, 4> DelSet;
// Avoid releasing a pointer twice.
- for (auto &I : InterleaveGroupMap)
- DelSet.insert(I.second);
+ SmallPtrSet<InterleaveGroup<VPInstruction> *, 4> DelSet(
+ llvm::from_range, llvm::make_second_range(InterleaveGroupMap));
for (auto *Ptr : DelSet)
delete Ptr;
}
diff --git a/llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp b/llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp
index e9a7153183eef..5ee8c50d6e51b 100644
--- a/llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp
+++ b/llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp
@@ -217,10 +217,8 @@ bool TypeSetByHwMode::operator==(const TypeSetByHwMode &VTS) const {
return false;
SmallSet<unsigned, 4> Modes;
- for (auto &I : *this)
- Modes.insert(I.first);
- for (const auto &I : VTS)
- Modes.insert(I.first);
+ Modes.insert_range(llvm::make_first_range(*this));
+ Modes.insert_range(llvm::make_first_range(VTS));
if (HaveDefault) {
// Both sets have default mode.
diff --git a/llvm/utils/TableGen/Common/CodeGenRegisters.cpp b/llvm/utils/TableGen/Common/CodeGenRegisters.cpp
index 530f7cae86e5d..9c2681469116e 100644
--- a/llvm/utils/TableGen/Common/CodeGenRegisters.cpp
+++ b/llvm/utils/TableGen/Common/CodeGenRegisters.cpp
@@ -598,8 +598,7 @@ void CodeGenRegister::addSubRegsPreOrder(
SR->addSubRegsPreOrder(OSet, RegBank);
}
// Add any secondary sub-registers that weren't part of the explicit tree.
- for (auto SubReg : SubRegs)
- OSet.insert(SubReg.second);
+ OSet.insert_range(llvm::make_second_range(SubRegs));
}
// Get the sum of this register's unit weights.
|
@llvm/pr-subscribers-pgo Author: Kazu Hirata (kazutakahirata) ChangesWe can use *Set::insert_range to collapse: for (auto Elem : Range) down to: Set.insert_range(llvm::make_first_range(Range)); In some cases, we can further fold that into the set declaration. Full diff: https://github.com/llvm/llvm-project/pull/133353.diff 10 Files Affected:
diff --git a/llvm/lib/CodeGen/CodeGenPrepare.cpp b/llvm/lib/CodeGen/CodeGenPrepare.cpp
index 5ec7000fd0aad..a02daad2fbd74 100644
--- a/llvm/lib/CodeGen/CodeGenPrepare.cpp
+++ b/llvm/lib/CodeGen/CodeGenPrepare.cpp
@@ -4370,8 +4370,7 @@ class AddressingModeCombiner {
// If it does not match, collect all Phi nodes from matcher.
// if we end up with no match, them all these Phi nodes will not match
// later.
- for (auto M : Matched)
- WillNotMatch.insert(M.first);
+ WillNotMatch.insert_range(llvm::make_first_range(Matched));
Matched.clear();
}
if (IsMatched) {
diff --git a/llvm/lib/CodeGen/FixupStatepointCallerSaved.cpp b/llvm/lib/CodeGen/FixupStatepointCallerSaved.cpp
index 6293c16100cf5..8b74dcebd00ac 100644
--- a/llvm/lib/CodeGen/FixupStatepointCallerSaved.cpp
+++ b/llvm/lib/CodeGen/FixupStatepointCallerSaved.cpp
@@ -242,8 +242,7 @@ class FrameIndexesCache {
ReservedSlots.clear();
if (EHPad)
if (auto It = GlobalIndices.find(EHPad); It != GlobalIndices.end())
- for (auto &RSP : It->second)
- ReservedSlots.insert(RSP.second);
+ ReservedSlots.insert_range(llvm::make_second_range(It->second));
}
// Get frame index to spill the register.
diff --git a/llvm/lib/IR/SafepointIRVerifier.cpp b/llvm/lib/IR/SafepointIRVerifier.cpp
index 9c7f91d756301..09eab3d19b4d0 100644
--- a/llvm/lib/IR/SafepointIRVerifier.cpp
+++ b/llvm/lib/IR/SafepointIRVerifier.cpp
@@ -612,11 +612,10 @@ void GCPtrTracker::verifyFunction(GCPtrTracker &&Tracker,
}
void GCPtrTracker::recalculateBBsStates() {
- SetVector<const BasicBlock *> Worklist;
// TODO: This order is suboptimal, it's better to replace it with priority
// queue where priority is RPO number of BB.
- for (auto &BBI : BlockMap)
- Worklist.insert(BBI.first);
+ SetVector<const BasicBlock *> Worklist(llvm::from_range,
+ llvm::make_first_range(BlockMap));
// This loop iterates the AvailableIn/Out sets until it converges.
// The AvailableIn and AvailableOut sets decrease as we iterate.
diff --git a/llvm/lib/ProfileData/SampleProf.cpp b/llvm/lib/ProfileData/SampleProf.cpp
index addb473faebdf..4d48de9bc7d63 100644
--- a/llvm/lib/ProfileData/SampleProf.cpp
+++ b/llvm/lib/ProfileData/SampleProf.cpp
@@ -267,8 +267,7 @@ const FunctionSamples *FunctionSamples::findFunctionSamples(
void FunctionSamples::findAllNames(DenseSet<FunctionId> &NameSet) const {
NameSet.insert(getFunction());
for (const auto &BS : BodySamples)
- for (const auto &TS : BS.second.getCallTargets())
- NameSet.insert(TS.first);
+ NameSet.insert_range(llvm::make_first_range(BS.second.getCallTargets()));
for (const auto &CS : CallsiteSamples) {
for (const auto &NameFS : CS.second) {
diff --git a/llvm/lib/Transforms/Scalar/JumpThreading.cpp b/llvm/lib/Transforms/Scalar/JumpThreading.cpp
index 9cae65bbdcfbc..18d5f201413c8 100644
--- a/llvm/lib/Transforms/Scalar/JumpThreading.cpp
+++ b/llvm/lib/Transforms/Scalar/JumpThreading.cpp
@@ -524,9 +524,7 @@ static unsigned getJumpThreadDuplicationCost(const TargetTransformInfo *TTI,
void JumpThreadingPass::findLoopHeaders(Function &F) {
SmallVector<std::pair<const BasicBlock*,const BasicBlock*>, 32> Edges;
FindFunctionBackedges(F, Edges);
-
- for (const auto &Edge : Edges)
- LoopHeaders.insert(Edge.second);
+ LoopHeaders.insert_range(llvm::make_second_range(Edges));
}
/// getKnownConstant - Helper method to determine if we can thread over a
@@ -1379,10 +1377,8 @@ bool JumpThreadingPass::simplifyPartiallyRedundantLoad(LoadInst *LoadI) {
// Otherwise, we had multiple unavailable predecessors or we had a critical
// edge from the one.
SmallVector<BasicBlock*, 8> PredsToSplit;
- SmallPtrSet<BasicBlock*, 8> AvailablePredSet;
-
- for (const auto &AvailablePred : AvailablePreds)
- AvailablePredSet.insert(AvailablePred.first);
+ SmallPtrSet<BasicBlock *, 8> AvailablePredSet(
+ llvm::from_range, llvm::make_first_range(AvailablePreds));
// Add all the unavailable predecessors to the PredsToSplit list.
for (BasicBlock *P : predecessors(LoadBB)) {
diff --git a/llvm/lib/Transforms/Scalar/StructurizeCFG.cpp b/llvm/lib/Transforms/Scalar/StructurizeCFG.cpp
index d1054b9b045ca..caba873408335 100644
--- a/llvm/lib/Transforms/Scalar/StructurizeCFG.cpp
+++ b/llvm/lib/Transforms/Scalar/StructurizeCFG.cpp
@@ -819,8 +819,7 @@ void StructurizeCFG::setPhiValues() {
// Get the undefined blocks shared by all the phi nodes.
if (!BlkPhis.empty()) {
- for (const auto &VI : BlkPhis.front().second)
- Incomings.insert(VI.first);
+ Incomings.insert_range(llvm::make_first_range(BlkPhis.front().second));
findUndefBlocks(To, Incomings, UndefBlks);
}
diff --git a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
index 40d11444ea39f..f29fb6780253b 100644
--- a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+++ b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
@@ -6896,8 +6896,7 @@ void BoUpSLP::reorderBottomToTop(bool IgnoreReorder) {
SmallVector<TreeEntry *> GatherOps;
if (!canReorderOperands(Data.first, Data.second, NonVectorized,
GatherOps)) {
- for (const std::pair<unsigned, TreeEntry *> &Op : Data.second)
- Visited.insert(Op.second);
+ Visited.insert_range(llvm::make_second_range(Data.second));
continue;
}
// All operands are reordered and used only in this node - propagate the
@@ -7073,8 +7072,7 @@ void BoUpSLP::reorderBottomToTop(bool IgnoreReorder) {
}
}
if (OrdersUses.empty()) {
- for (const std::pair<unsigned, TreeEntry *> &Op : Data.second)
- Visited.insert(Op.second);
+ Visited.insert_range(llvm::make_second_range(Data.second));
continue;
}
// Choose the most used order.
@@ -7103,8 +7101,7 @@ void BoUpSLP::reorderBottomToTop(bool IgnoreReorder) {
}
// Set order of the user node.
if (isIdentityOrder(BestOrder)) {
- for (const std::pair<unsigned, TreeEntry *> &Op : Data.second)
- Visited.insert(Op.second);
+ Visited.insert_range(llvm::make_second_range(Data.second));
continue;
}
fixupOrderingIndices(BestOrder);
diff --git a/llvm/lib/Transforms/Vectorize/VPlanSLP.h b/llvm/lib/Transforms/Vectorize/VPlanSLP.h
index a40ebd28deea2..93f04e6e30a6f 100644
--- a/llvm/lib/Transforms/Vectorize/VPlanSLP.h
+++ b/llvm/lib/Transforms/Vectorize/VPlanSLP.h
@@ -50,10 +50,9 @@ class VPInterleavedAccessInfo {
VPInterleavedAccessInfo(VPlan &Plan, InterleavedAccessInfo &IAI);
~VPInterleavedAccessInfo() {
- SmallPtrSet<InterleaveGroup<VPInstruction> *, 4> DelSet;
// Avoid releasing a pointer twice.
- for (auto &I : InterleaveGroupMap)
- DelSet.insert(I.second);
+ SmallPtrSet<InterleaveGroup<VPInstruction> *, 4> DelSet(
+ llvm::from_range, llvm::make_second_range(InterleaveGroupMap));
for (auto *Ptr : DelSet)
delete Ptr;
}
diff --git a/llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp b/llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp
index e9a7153183eef..5ee8c50d6e51b 100644
--- a/llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp
+++ b/llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp
@@ -217,10 +217,8 @@ bool TypeSetByHwMode::operator==(const TypeSetByHwMode &VTS) const {
return false;
SmallSet<unsigned, 4> Modes;
- for (auto &I : *this)
- Modes.insert(I.first);
- for (const auto &I : VTS)
- Modes.insert(I.first);
+ Modes.insert_range(llvm::make_first_range(*this));
+ Modes.insert_range(llvm::make_first_range(VTS));
if (HaveDefault) {
// Both sets have default mode.
diff --git a/llvm/utils/TableGen/Common/CodeGenRegisters.cpp b/llvm/utils/TableGen/Common/CodeGenRegisters.cpp
index 530f7cae86e5d..9c2681469116e 100644
--- a/llvm/utils/TableGen/Common/CodeGenRegisters.cpp
+++ b/llvm/utils/TableGen/Common/CodeGenRegisters.cpp
@@ -598,8 +598,7 @@ void CodeGenRegister::addSubRegsPreOrder(
SR->addSubRegsPreOrder(OSet, RegBank);
}
// Add any secondary sub-registers that weren't part of the explicit tree.
- for (auto SubReg : SubRegs)
- OSet.insert(SubReg.second);
+ OSet.insert_range(llvm::make_second_range(SubRegs));
}
// Get the sum of this register's unit weights.
|
We can use *Set::insert_range to collapse:
for (auto Elem : Range)
Set.insert(E.first);
down to:
Set.insert_range(llvm::make_first_range(Range));
In some cases, we can further fold that into the set declaration.