From 8e86c0e4f49bcfebd966fd5893d00b093df7f8ba Mon Sep 17 00:00:00 2001 From: Kazu Hirata Date: Sun, 12 Sep 2021 08:17:18 -0700 Subject: [PATCH] [Scalar] Use make_early_inc_range (NFC) --- llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp | 3 +-- .../Scalar/CorrelatedValuePropagation.cpp | 27 +++++++++++----------- llvm/lib/Transforms/Scalar/GVN.cpp | 6 ++--- llvm/lib/Transforms/Scalar/LICM.cpp | 3 +-- llvm/lib/Transforms/Scalar/LoopInstSimplify.cpp | 4 +--- .../Transforms/Scalar/LowerMatrixIntrinsics.cpp | 3 +-- llvm/lib/Transforms/Scalar/SCCP.cpp | 11 ++++----- .../Transforms/Scalar/ScalarizeMaskedMemIntrin.cpp | 6 ++--- .../Scalar/SeparateConstOffsetFromGEP.cpp | 6 ++--- 9 files changed, 28 insertions(+), 41 deletions(-) diff --git a/llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp b/llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp index 2eb94b7..113615a 100644 --- a/llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp +++ b/llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp @@ -505,8 +505,7 @@ static bool doCallSiteSplitting(Function &F, TargetLibraryInfo &TLI, DomTreeUpdater DTU(&DT, DomTreeUpdater::UpdateStrategy::Lazy); bool Changed = false; - for (Function::iterator BI = F.begin(), BE = F.end(); BI != BE;) { - BasicBlock &BB = *BI++; + for (BasicBlock &BB : llvm::make_early_inc_range(F)) { auto II = BB.getFirstNonPHIOrDbg()->getIterator(); auto IE = BB.getTerminator()->getIterator(); // Iterate until we reach the terminator instruction. tryToSplitCallSite diff --git a/llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp b/llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp index b8424b9..4b8392d 100644 --- a/llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp +++ b/llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp @@ -1048,49 +1048,48 @@ static bool runImpl(Function &F, LazyValueInfo *LVI, DominatorTree *DT, // blocks. for (BasicBlock *BB : depth_first(&F.getEntryBlock())) { bool BBChanged = false; - for (BasicBlock::iterator BI = BB->begin(), BE = BB->end(); BI != BE;) { - Instruction *II = &*BI++; - switch (II->getOpcode()) { + for (Instruction &II : llvm::make_early_inc_range(*BB)) { + switch (II.getOpcode()) { case Instruction::Select: - BBChanged |= processSelect(cast(II), LVI); + BBChanged |= processSelect(cast(&II), LVI); break; case Instruction::PHI: - BBChanged |= processPHI(cast(II), LVI, DT, SQ); + BBChanged |= processPHI(cast(&II), LVI, DT, SQ); break; case Instruction::ICmp: case Instruction::FCmp: - BBChanged |= processCmp(cast(II), LVI); + BBChanged |= processCmp(cast(&II), LVI); break; case Instruction::Load: case Instruction::Store: - BBChanged |= processMemAccess(II, LVI); + BBChanged |= processMemAccess(&II, LVI); break; case Instruction::Call: case Instruction::Invoke: - BBChanged |= processCallSite(cast(*II), LVI); + BBChanged |= processCallSite(cast(II), LVI); break; case Instruction::SRem: case Instruction::SDiv: - BBChanged |= processSDivOrSRem(cast(II), LVI); + BBChanged |= processSDivOrSRem(cast(&II), LVI); break; case Instruction::UDiv: case Instruction::URem: - BBChanged |= processUDivOrURem(cast(II), LVI); + BBChanged |= processUDivOrURem(cast(&II), LVI); break; case Instruction::AShr: - BBChanged |= processAShr(cast(II), LVI); + BBChanged |= processAShr(cast(&II), LVI); break; case Instruction::SExt: - BBChanged |= processSExt(cast(II), LVI); + BBChanged |= processSExt(cast(&II), LVI); break; case Instruction::Add: case Instruction::Sub: case Instruction::Mul: case Instruction::Shl: - BBChanged |= processBinOp(cast(II), LVI); + BBChanged |= processBinOp(cast(&II), LVI); break; case Instruction::And: - BBChanged |= processAnd(cast(II), LVI); + BBChanged |= processAnd(cast(&II), LVI); break; } } diff --git a/llvm/lib/Transforms/Scalar/GVN.cpp b/llvm/lib/Transforms/Scalar/GVN.cpp index f43279a..c503ddf 100644 --- a/llvm/lib/Transforms/Scalar/GVN.cpp +++ b/llvm/lib/Transforms/Scalar/GVN.cpp @@ -2460,10 +2460,8 @@ bool GVN::runImpl(Function &F, AssumptionCache &RunAC, DominatorTree &RunDT, DomTreeUpdater DTU(DT, DomTreeUpdater::UpdateStrategy::Eager); // Merge unconditional branches, allowing PRE to catch more // optimization opportunities. - for (Function::iterator FI = F.begin(), FE = F.end(); FI != FE; ) { - BasicBlock *BB = &*FI++; - - bool removedBlock = MergeBlockIntoPredecessor(BB, &DTU, LI, MSSAU, MD); + for (BasicBlock &BB : llvm::make_early_inc_range(F)) { + bool removedBlock = MergeBlockIntoPredecessor(&BB, &DTU, LI, MSSAU, MD); if (removedBlock) ++NumGVNBlocks; diff --git a/llvm/lib/Transforms/Scalar/LICM.cpp b/llvm/lib/Transforms/Scalar/LICM.cpp index 963f73f..21e1cb6 100644 --- a/llvm/lib/Transforms/Scalar/LICM.cpp +++ b/llvm/lib/Transforms/Scalar/LICM.cpp @@ -883,8 +883,7 @@ bool llvm::hoistRegion(DomTreeNode *N, AAResults *AA, LoopInfo *LI, if (!LoopNestMode && inSubLoop(BB, CurLoop, LI)) continue; - for (BasicBlock::iterator II = BB->begin(), E = BB->end(); II != E;) { - Instruction &I = *II++; + for (Instruction &I : llvm::make_early_inc_range(*BB)) { // Try constant folding this instruction. If all the operands are // constants, it is technically hoistable, but it would be better to // just fold it. diff --git a/llvm/lib/Transforms/Scalar/LoopInstSimplify.cpp b/llvm/lib/Transforms/Scalar/LoopInstSimplify.cpp index 61cb3e9..b9e63a4 100644 --- a/llvm/lib/Transforms/Scalar/LoopInstSimplify.cpp +++ b/llvm/lib/Transforms/Scalar/LoopInstSimplify.cpp @@ -105,9 +105,7 @@ static bool simplifyLoopInst(Loop &L, DominatorTree &DT, LoopInfo &LI, if (!V || !LI.replacementPreservesLCSSAForm(&I, V)) continue; - for (Value::use_iterator UI = I.use_begin(), UE = I.use_end(); - UI != UE;) { - Use &U = *UI++; + for (Use &U : llvm::make_early_inc_range(I.uses())) { auto *UserI = cast(U.getUser()); U.set(V); diff --git a/llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp b/llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp index 721e57c..e5d945a 100644 --- a/llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp +++ b/llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp @@ -900,8 +900,7 @@ public: // UndefedInsts and then check that we in fact remove them. SmallSet UndefedInsts; for (auto *Inst : reverse(ToRemove)) { - for (auto I = Inst->use_begin(), E = Inst->use_end(); I != E;) { - Use &U = *I++; + for (Use &U : llvm::make_early_inc_range(Inst->uses())) { if (auto *Undefed = dyn_cast(U.getUser())) UndefedInsts.insert(Undefed); U.set(UndefValue::get(Inst->getType())); diff --git a/llvm/lib/Transforms/Scalar/SCCP.cpp b/llvm/lib/Transforms/Scalar/SCCP.cpp index f547e5f..a57159c 100644 --- a/llvm/lib/Transforms/Scalar/SCCP.cpp +++ b/llvm/lib/Transforms/Scalar/SCCP.cpp @@ -539,14 +539,13 @@ bool llvm::runIPSCCP( DTU.deleteBB(DeadBB); for (BasicBlock &BB : F) { - for (BasicBlock::iterator BI = BB.begin(), E = BB.end(); BI != E;) { - Instruction *Inst = &*BI++; - if (Solver.getPredicateInfoFor(Inst)) { - if (auto *II = dyn_cast(Inst)) { + for (Instruction &Inst : llvm::make_early_inc_range(BB)) { + if (Solver.getPredicateInfoFor(&Inst)) { + if (auto *II = dyn_cast(&Inst)) { if (II->getIntrinsicID() == Intrinsic::ssa_copy) { Value *Op = II->getOperand(0); - Inst->replaceAllUsesWith(Op); - Inst->eraseFromParent(); + Inst.replaceAllUsesWith(Op); + Inst.eraseFromParent(); } } } diff --git a/llvm/lib/Transforms/Scalar/ScalarizeMaskedMemIntrin.cpp b/llvm/lib/Transforms/Scalar/ScalarizeMaskedMemIntrin.cpp index ca288a5..b1f2032 100644 --- a/llvm/lib/Transforms/Scalar/ScalarizeMaskedMemIntrin.cpp +++ b/llvm/lib/Transforms/Scalar/ScalarizeMaskedMemIntrin.cpp @@ -873,13 +873,11 @@ static bool runImpl(Function &F, const TargetTransformInfo &TTI, auto &DL = F.getParent()->getDataLayout(); while (MadeChange) { MadeChange = false; - for (Function::iterator I = F.begin(); I != F.end();) { - BasicBlock *BB = &*I++; + for (BasicBlock &BB : llvm::make_early_inc_range(F)) { bool ModifiedDTOnIteration = false; - MadeChange |= optimizeBlock(*BB, ModifiedDTOnIteration, TTI, DL, + MadeChange |= optimizeBlock(BB, ModifiedDTOnIteration, TTI, DL, DTU.hasValue() ? DTU.getPointer() : nullptr); - // Restart BB iteration if the dominator tree of the Function was changed if (ModifiedDTOnIteration) break; diff --git a/llvm/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp b/llvm/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp index f216956..e8c965c 100644 --- a/llvm/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp +++ b/llvm/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp @@ -1258,10 +1258,8 @@ bool SeparateConstOffsetFromGEP::reuniteExts(Function &F) { DominatingSubs.clear(); for (const auto Node : depth_first(DT)) { BasicBlock *BB = Node->getBlock(); - for (auto I = BB->begin(); I != BB->end(); ) { - Instruction *Cur = &*I++; - Changed |= reuniteExts(Cur); - } + for (Instruction &I : llvm::make_early_inc_range(*BB)) + Changed |= reuniteExts(&I); } return Changed; } -- 2.7.4