[llvm] [Transforms] Construct SmallVector with iterator ranges (NFC) (PR #136259)
Kazu Hirata via llvm-commits
llvm-commits at lists.llvm.org
Thu Apr 17 22:28:41 PDT 2025
https://github.com/kazutakahirata created https://github.com/llvm/llvm-project/pull/136259
None
>From c8e08e0b516471ccb3589fb6035fa401b9eb5d4d Mon Sep 17 00:00:00 2001
From: Kazu Hirata <kazu at google.com>
Date: Wed, 16 Apr 2025 20:13:20 -0700
Subject: [PATCH] [Transforms] Construct SmallVector with iterator ranges (NFC)
---
llvm/lib/Transforms/IPO/ExpandVariadics.cpp | 4 +---
llvm/lib/Transforms/Scalar/ConstraintElimination.cpp | 4 +---
llvm/lib/Transforms/Scalar/IndVarSimplify.cpp | 5 ++---
llvm/lib/Transforms/Scalar/LoopInterchange.cpp | 10 ++++------
llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp | 5 ++---
llvm/lib/Transforms/Utils/BasicBlockUtils.cpp | 4 +---
llvm/lib/Transforms/Utils/CodeExtractor.cpp | 5 +----
llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp | 5 ++---
llvm/lib/Transforms/Vectorize/LoopVectorize.cpp | 5 ++---
9 files changed, 16 insertions(+), 31 deletions(-)
diff --git a/llvm/lib/Transforms/IPO/ExpandVariadics.cpp b/llvm/lib/Transforms/IPO/ExpandVariadics.cpp
index 3121659edadd8..e25f23107966d 100644
--- a/llvm/lib/Transforms/IPO/ExpandVariadics.cpp
+++ b/llvm/lib/Transforms/IPO/ExpandVariadics.cpp
@@ -604,9 +604,7 @@ ExpandVariadics::defineVariadicWrapper(Module &M, IRBuilder<> &Builder,
Builder.CreateIntrinsic(Intrinsic::vastart, {DL.getAllocaPtrType(Ctx)},
{VaListInstance});
- SmallVector<Value *> Args;
- for (Argument &A : F.args())
- Args.push_back(&A);
+ SmallVector<Value *> Args(llvm::make_pointer_range(F.args()));
Type *ParameterType = ABI->vaListParameterType(M);
if (ABI->vaListPassedInSSARegister())
diff --git a/llvm/lib/Transforms/Scalar/ConstraintElimination.cpp b/llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
index 31e057baee2bf..994ea2f8317fc 100644
--- a/llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
+++ b/llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
@@ -1740,9 +1740,7 @@ static bool eliminateConstraints(Function &F, DominatorTree &DT, LoopInfo &LI,
OptimizationRemarkEmitter &ORE) {
bool Changed = false;
DT.updateDFSNumbers();
- SmallVector<Value *> FunctionArgs;
- for (Value &Arg : F.args())
- FunctionArgs.push_back(&Arg);
+ SmallVector<Value *> FunctionArgs(llvm::make_pointer_range(F.args()));
ConstraintInfo Info(F.getDataLayout(), FunctionArgs);
State S(DT, LI, SE);
std::unique_ptr<Module> ReproducerModule(
diff --git a/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp b/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
index 3f04f7f57c54f..db97f7e1efcfd 100644
--- a/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
+++ b/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
@@ -599,9 +599,8 @@ bool IndVarSimplify::simplifyAndExtend(Loop *L,
L->getBlocks()[0]->getModule(), Intrinsic::experimental_guard);
bool HasGuards = GuardDecl && !GuardDecl->use_empty();
- SmallVector<PHINode *, 8> LoopPhis;
- for (PHINode &PN : L->getHeader()->phis())
- LoopPhis.push_back(&PN);
+ SmallVector<PHINode *, 8> LoopPhis(
+ llvm::make_pointer_range(L->getHeader()->phis()));
// Each round of simplification iterates through the SimplifyIVUsers worklist
// for all current phis, then determines whether any IVs can be
diff --git a/llvm/lib/Transforms/Scalar/LoopInterchange.cpp b/llvm/lib/Transforms/Scalar/LoopInterchange.cpp
index 1dccba4cfa7b8..8c8effe2b013e 100644
--- a/llvm/lib/Transforms/Scalar/LoopInterchange.cpp
+++ b/llvm/lib/Transforms/Scalar/LoopInterchange.cpp
@@ -1574,13 +1574,11 @@ static void moveLCSSAPhis(BasicBlock *InnerExit, BasicBlock *InnerHeader,
P.eraseFromParent();
}
- SmallVector<PHINode *, 8> LcssaInnerExit;
- for (PHINode &P : InnerExit->phis())
- LcssaInnerExit.push_back(&P);
+ SmallVector<PHINode *, 8> LcssaInnerExit(
+ llvm::make_pointer_range(InnerExit->phis()));
- SmallVector<PHINode *, 8> LcssaInnerLatch;
- for (PHINode &P : InnerLatch->phis())
- LcssaInnerLatch.push_back(&P);
+ SmallVector<PHINode *, 8> LcssaInnerLatch(
+ llvm::make_pointer_range(InnerLatch->phis()));
// Lcssa PHIs for values used outside the inner loop are in InnerExit.
// If a PHI node has users outside of InnerExit, it has a use outside the
diff --git a/llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp b/llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp
index 4524446e5947f..221094f170ac7 100644
--- a/llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp
+++ b/llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp
@@ -361,9 +361,8 @@ class ConstantTerminatorFoldingImpl {
for (BasicBlock *BB : DeadExitBlocks) {
// Eliminate all Phis and LandingPads from dead exits.
// TODO: Consider removing all instructions in this dead block.
- SmallVector<Instruction *, 4> DeadInstructions;
- for (auto &PN : BB->phis())
- DeadInstructions.push_back(&PN);
+ SmallVector<Instruction *, 4> DeadInstructions(
+ llvm::make_pointer_range(BB->phis()));
if (auto *LandingPad = dyn_cast<LandingPadInst>(BB->getFirstNonPHIIt()))
DeadInstructions.emplace_back(LandingPad);
diff --git a/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp b/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
index b78270f6309ff..9ed8b06c22fde 100644
--- a/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
+++ b/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
@@ -165,9 +165,7 @@ bool llvm::DeleteDeadPHIs(BasicBlock *BB, const TargetLibraryInfo *TLI,
MemorySSAUpdater *MSSAU) {
// Recursively deleting a PHI may cause multiple PHIs to be deleted
// or RAUW'd undef, so use an array of WeakTrackingVH for the PHIs to delete.
- SmallVector<WeakTrackingVH, 8> PHIs;
- for (PHINode &PN : BB->phis())
- PHIs.push_back(&PN);
+ SmallVector<WeakTrackingVH, 8> PHIs(llvm::make_pointer_range(BB->phis()));
bool Changed = false;
for (unsigned i = 0, e = PHIs.size(); i != e; ++i)
diff --git a/llvm/lib/Transforms/Utils/CodeExtractor.cpp b/llvm/lib/Transforms/Utils/CodeExtractor.cpp
index 2b055020022be..18af0972bc36d 100644
--- a/llvm/lib/Transforms/Utils/CodeExtractor.cpp
+++ b/llvm/lib/Transforms/Utils/CodeExtractor.cpp
@@ -91,10 +91,7 @@ static bool isBlockValidForExtraction(const BasicBlock &BB,
// don't hoist code that uses another basicblock address, as it's likely to
// lead to unexpected behavior, like cross-function jumps
SmallPtrSet<User const *, 16> Visited;
- SmallVector<User const *, 16> ToVisit;
-
- for (Instruction const &Inst : BB)
- ToVisit.push_back(&Inst);
+ SmallVector<User const *, 16> ToVisit(llvm::make_pointer_range(BB));
while (!ToVisit.empty()) {
User const *Curr = ToVisit.pop_back_val();
diff --git a/llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp b/llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
index e25ec6c3b2a58..31d8acb706997 100644
--- a/llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
+++ b/llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
@@ -1715,9 +1715,8 @@ SCEVExpander::replaceCongruentIVs(Loop *L, const DominatorTree *DT,
SmallVectorImpl<WeakTrackingVH> &DeadInsts,
const TargetTransformInfo *TTI) {
// Find integer phis in order of increasing width.
- SmallVector<PHINode*, 8> Phis;
- for (PHINode &PN : L->getHeader()->phis())
- Phis.push_back(&PN);
+ SmallVector<PHINode *, 8> Phis(
+ llvm::make_pointer_range(L->getHeader()->phis()));
if (TTI)
// Use stable_sort to preserve order of equivalent PHIs, so the order
diff --git a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
index 87fcf7e5d9742..bfceee46a237c 100644
--- a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+++ b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
@@ -8267,9 +8267,8 @@ EpilogueVectorizerEpilogueLoop::createEpilogueVectorizedLoopSkeleton() {
// The vec.epilog.iter.check block may contain Phi nodes from inductions or
// reductions which merge control-flow from the latch block and the middle
// block. Update the incoming values here and move the Phi into the preheader.
- SmallVector<PHINode *, 4> PhisInBlock;
- for (PHINode &Phi : VecEpilogueIterationCountCheck->phis())
- PhisInBlock.push_back(&Phi);
+ SmallVector<PHINode *, 4> PhisInBlock(
+ llvm::make_pointer_range(VecEpilogueIterationCountCheck->phis()));
for (PHINode *Phi : PhisInBlock) {
Phi->moveBefore(LoopVectorPreHeader->getFirstNonPHIIt());
More information about the llvm-commits
mailing list