From: Simon Atanasyan Date: Thu, 8 May 2014 19:32:46 +0000 (+0000) Subject: [Driver] Range-based loop simplification. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=838b0764d74056be238d4e9d5928c2b591f388a0;p=clang [Driver] Range-based loop simplification. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@208354 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Driver/Multilib.cpp b/lib/Driver/Multilib.cpp index 910e6383f2..484ce1627d 100644 --- a/lib/Driver/Multilib.cpp +++ b/lib/Driver/Multilib.cpp @@ -90,10 +90,9 @@ void Multilib::print(raw_ostream &OS) const { OS << StringRef(GCCSuffix).drop_front(); } OS << ";"; - for (flags_list::const_iterator I = Flags.begin(), E = Flags.end(); I != E; - ++I) { - if (StringRef(*I).front() == '+') - OS << "@" << I->substr(1); + for (StringRef Flag : Flags) { + if (Flag.front() == '+') + OS << "@" << Flag.substr(1); } } @@ -117,16 +116,12 @@ bool Multilib::operator==(const Multilib &Other) const { // Check whether the flags sets match // allowing for the match to be order invariant llvm::StringSet<> MyFlags; - for (flags_list::const_iterator I = Flags.begin(), E = Flags.end(); I != E; - ++I) { - MyFlags.insert(*I); - } - for (flags_list::const_iterator I = Other.Flags.begin(), - E = Other.Flags.end(); - I != E; ++I) { - if (MyFlags.find(*I) == MyFlags.end()) + for (const auto &Flag : Flags) + MyFlags.insert(Flag); + + for (const auto &Flag : Other.Flags) + if (MyFlags.find(Flag) == MyFlags.end()) return false; - } if (osSuffix() != Other.osSuffix()) return false; @@ -148,10 +143,7 @@ raw_ostream &clang::driver::operator<<(raw_ostream &OS, const Multilib &M) { MultilibSet &MultilibSet::Maybe(const Multilib &M) { Multilib Opposite; // Negate any '+' flags - for (Multilib::flags_list::const_iterator I = M.flags().begin(), - E = M.flags().end(); - I != E; ++I) { - StringRef Flag(*I); + for (StringRef Flag : M.flags()) { if (Flag.front() == '+') Opposite.flags().push_back(("-" + Flag.substr(1)).str()); } @@ -223,12 +215,9 @@ MultilibSet::Either(const std::vector &MultilibSegments) { Multilibs.insert(Multilibs.end(), MultilibSegments.begin(), MultilibSegments.end()); else { - for (std::vector::const_iterator NewI = MultilibSegments.begin(), - NewE = MultilibSegments.end(); - NewI != NewE; ++NewI) { - for (const_iterator BaseI = begin(), BaseE = end(); BaseI != BaseE; - ++BaseI) { - Multilib MO = compose(*BaseI, *NewI); + for (const Multilib &New : MultilibSegments) { + for (const Multilib &Base : *this) { + Multilib MO = compose(Base, New); if (MO.isValid()) Composed.push_back(MO); } @@ -282,20 +271,14 @@ bool MultilibSet::select(const Multilib::flags_list &Flags, Multilib &M) const { // Stuff all of the flags into the FlagSet such that a true mappend // indicates the flag was enabled, and a false mappend indicates the // flag was disabled - for (Multilib::flags_list::const_iterator I = Flags.begin(), - E = Flags.end(); - I != E; ++I) { - FlagSet[StringRef(*I).substr(1)] = isFlagEnabled(*I); - } + for (StringRef Flag : Flags) + FlagSet[Flag.substr(1)] = isFlagEnabled(Flag); } bool operator()(const Multilib &M) const override { - for (Multilib::flags_list::const_iterator I = M.flags().begin(), - E = M.flags().end(); - I != E; ++I) { - StringRef Flag(*I); + for (StringRef Flag : M.flags()) { llvm::StringMap::const_iterator SI = FlagSet.find(Flag.substr(1)); if (SI != FlagSet.end()) - if ((*SI).getValue() != isFlagEnabled(Flag)) + if (SI->getValue() != isFlagEnabled(Flag)) return true; } return false; @@ -326,8 +309,8 @@ bool MultilibSet::select(const Multilib::flags_list &Flags, Multilib &M) const { } void MultilibSet::print(raw_ostream &OS) const { - for (const_iterator I = begin(), E = end(); I != E; ++I) - OS << *I << "\n"; + for (const Multilib &M : *this) + OS << M << "\n"; } MultilibSet::multilib_list diff --git a/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp index 602ee8ed8d..8e3d6d6d95 100644 --- a/lib/Driver/ToolChains.cpp +++ b/lib/Driver/ToolChains.cpp @@ -680,10 +680,7 @@ DerivedArgList *MachO::TranslateArgs(const DerivedArgList &Args, // have something that works, we should reevaluate each translation // and try to push it down into tool specific logic. - for (ArgList::const_iterator it = Args.begin(), - ie = Args.end(); it != ie; ++it) { - Arg *A = *it; - + for (Arg *A : Args) { if (A->getOption().matches(options::OPT_Xarch__)) { // Skip this argument unless the architecture matches either the toolchain // triple arch, or the arch being bound. @@ -1285,19 +1282,14 @@ Generic_GCC::GCCInstallationDetector::init( } void Generic_GCC::GCCInstallationDetector::print(raw_ostream &OS) const { - for (std::set::const_iterator - I = CandidateGCCInstallPaths.begin(), - E = CandidateGCCInstallPaths.end(); - I != E; ++I) - OS << "Found candidate GCC installation: " << *I << "\n"; + for (const auto &InstallPath : CandidateGCCInstallPaths) + OS << "Found candidate GCC installation: " << InstallPath << "\n"; if (!GCCInstallPath.empty()) OS << "Selected GCC installation: " << GCCInstallPath << "\n"; - for (MultilibSet::const_iterator I = Multilibs.begin(), E = Multilibs.end(); - I != E; ++I) { - OS << "Candidate multilib: " << *I << "\n"; - } + for (const auto &Multilib : Multilibs) + OS << "Candidate multilib: " << Multilib << "\n"; if (Multilibs.size() != 0 || !SelectedMultilib.isDefault()) OS << "Selected multilib: " << SelectedMultilib << "\n"; @@ -3188,10 +3180,9 @@ void Linux::AddClangSystemIncludeArgs(const ArgList &DriverArgs, if (CIncludeDirs != "") { SmallVector dirs; CIncludeDirs.split(dirs, ":"); - for (SmallVectorImpl::iterator I = dirs.begin(), E = dirs.end(); - I != E; ++I) { - StringRef Prefix = llvm::sys::path::is_absolute(*I) ? SysRoot : ""; - addExternCSystemInclude(DriverArgs, CC1Args, Prefix + *I); + for (StringRef dir : dirs) { + StringRef Prefix = llvm::sys::path::is_absolute(dir) ? SysRoot : ""; + addExternCSystemInclude(DriverArgs, CC1Args, Prefix + dir); } return; } @@ -3278,11 +3269,9 @@ void Linux::AddClangSystemIncludeArgs(const ArgList &DriverArgs, } else if (getTriple().getArch() == llvm::Triple::ppc64) { MultiarchIncludeDirs = PPC64MultiarchIncludeDirs; } - for (ArrayRef::iterator I = MultiarchIncludeDirs.begin(), - E = MultiarchIncludeDirs.end(); - I != E; ++I) { - if (llvm::sys::fs::exists(SysRoot + *I)) { - addExternCSystemInclude(DriverArgs, CC1Args, SysRoot + *I); + for (StringRef Dir : MultiarchIncludeDirs) { + if (llvm::sys::fs::exists(SysRoot + Dir)) { + addExternCSystemInclude(DriverArgs, CC1Args, SysRoot + Dir); break; } } @@ -3345,12 +3334,11 @@ void Linux::AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs, // FIXME: We should really remove this. It doesn't make any sense. getDriver().SysRoot + "/usr/include/c++/v1" }; - for (unsigned i = 0; i < llvm::array_lengthof(LibCXXIncludePathCandidates); - ++i) { - if (!llvm::sys::fs::exists(LibCXXIncludePathCandidates[i])) + for (const auto &IncludePath : LibCXXIncludePathCandidates) { + if (!llvm::sys::fs::exists(IncludePath)) continue; // Add the first candidate that exists. - addSystemInclude(DriverArgs, CC1Args, LibCXXIncludePathCandidates[i]); + addSystemInclude(DriverArgs, CC1Args, IncludePath); break; } return; @@ -3388,9 +3376,8 @@ void Linux::AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs, LibDir.str() + "/../include/c++", }; - for (unsigned i = 0; i < llvm::array_lengthof(LibStdCXXIncludePathCandidates); - ++i) { - if (addLibStdCXXIncludePaths(LibStdCXXIncludePathCandidates[i], + for (const auto &IncludePath : LibStdCXXIncludePathCandidates) { + if (addLibStdCXXIncludePaths(IncludePath, TripleStr + Multilib.includeSuffix(), DriverArgs, CC1Args)) break;