From f31b1ec106799f9461d8ed21a2e67da3d9ac798b Mon Sep 17 00:00:00 2001 From: Chandler Carruth Date: Wed, 15 Jul 2015 08:09:23 +0000 Subject: [PATCH] [PM/AA] Cleanup some loops to be range-based. NFC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@242275 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Analysis/IPA/GlobalsModRef.cpp | 39 +++++++++++++++--------------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/lib/Analysis/IPA/GlobalsModRef.cpp b/lib/Analysis/IPA/GlobalsModRef.cpp index 18d45dd6a39..ae4eafbc77d 100644 --- a/lib/Analysis/IPA/GlobalsModRef.cpp +++ b/lib/Analysis/IPA/GlobalsModRef.cpp @@ -207,35 +207,34 @@ Pass *llvm::createGlobalsModRefPass() { return new GlobalsModRef(); } /// and record the functions that they are used directly in. void GlobalsModRef::AnalyzeGlobals(Module &M) { std::vector Readers, Writers; - for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I) - if (I->hasLocalLinkage()) { - if (!AnalyzeUsesOfPointer(I, Readers, Writers)) { + for (Function &F : M) + if (F.hasLocalLinkage()) { + if (!AnalyzeUsesOfPointer(&F, Readers, Writers)) { // Remember that we are tracking this global. - NonAddressTakenGlobals.insert(I); + NonAddressTakenGlobals.insert(&F); ++NumNonAddrTakenFunctions; } Readers.clear(); Writers.clear(); } - for (Module::global_iterator I = M.global_begin(), E = M.global_end(); I != E; - ++I) - if (I->hasLocalLinkage()) { - if (!AnalyzeUsesOfPointer(I, Readers, Writers)) { + for (GlobalVariable &GV : M.globals()) + if (GV.hasLocalLinkage()) { + if (!AnalyzeUsesOfPointer(&GV, Readers, Writers)) { // Remember that we are tracking this global, and the mod/ref fns - NonAddressTakenGlobals.insert(I); + NonAddressTakenGlobals.insert(&GV); - for (unsigned i = 0, e = Readers.size(); i != e; ++i) - FunctionInfo[Readers[i]].GlobalInfo[I] |= Ref; + for (Function *Reader : Readers) + FunctionInfo[Reader].GlobalInfo[&GV] |= Ref; - if (!I->isConstant()) // No need to keep track of writers to constants - for (unsigned i = 0, e = Writers.size(); i != e; ++i) - FunctionInfo[Writers[i]].GlobalInfo[I] |= Mod; + if (!GV.isConstant()) // No need to keep track of writers to constants + for (Function *Writer : Writers) + FunctionInfo[Writer].GlobalInfo[&GV] |= Mod; ++NumNonAddrTakenGlobalVars; // If this global holds a pointer type, see if it is an indirect global. - if (I->getType()->getElementType()->isPointerTy() && - AnalyzeIndirectGlobalMemory(I)) + if (GV.getType()->getElementType()->isPointerTy() && + AnalyzeIndirectGlobalMemory(&GV)) ++NumIndirectGlobalVars; } Readers.clear(); @@ -370,8 +369,8 @@ void GlobalsModRef::AnalyzeCallGraph(CallGraph &CG, Module &M) { if (!SCC[0]->getFunction()) { // Calls externally - can't say anything useful. Remove any existing // function records (may have been created when scanning globals). - for (unsigned i = 0, e = SCC.size(); i != e; ++i) - FunctionInfo.erase(SCC[i]->getFunction()); + for (auto *Node : SCC) + FunctionInfo.erase(Node->getFunction()); continue; } @@ -434,8 +433,8 @@ void GlobalsModRef::AnalyzeCallGraph(CallGraph &CG, Module &M) { // If we can't say anything useful about this SCC, remove all SCC functions // from the FunctionInfo map. if (KnowNothing) { - for (unsigned i = 0, e = SCC.size(); i != e; ++i) - FunctionInfo.erase(SCC[i]->getFunction()); + for (auto *Node : SCC) + FunctionInfo.erase(Node->getFunction()); continue; } -- 2.34.1