diff options
author | Rui Ueyama <ruiu@google.com> | 2017-03-22 23:03:35 +0000 |
---|---|---|
committer | Rui Ueyama <ruiu@google.com> | 2017-03-22 23:03:35 +0000 |
commit | 4995afd94339629fa2124a93979df1861d37ec2a (patch) | |
tree | 309fdb02b3808f7ec19c118373bb1a77fecf816d | |
parent | ca0e7f64725a0480d29fe6fc268dc84658debc8c (diff) | |
download | bcm5719-llvm-4995afd94339629fa2124a93979df1861d37ec2a.tar.gz bcm5719-llvm-4995afd94339629fa2124a93979df1861d37ec2a.zip |
Rename forEach -> parallelForEach and forLoop -> parallelFor.
"Parallel" is the most important aspect of the functions,
so we shouldn't omit that.
llvm-svn: 298557
-rw-r--r-- | lld/ELF/Driver.cpp | 17 | ||||
-rw-r--r-- | lld/ELF/ICF.cpp | 5 | ||||
-rw-r--r-- | lld/ELF/OutputSections.cpp | 4 | ||||
-rw-r--r-- | lld/ELF/SyntheticSections.cpp | 5 | ||||
-rw-r--r-- | lld/ELF/Threads.h | 5 |
5 files changed, 20 insertions, 16 deletions
diff --git a/lld/ELF/Driver.cpp b/lld/ELF/Driver.cpp index 470325f4161..59258ce8edb 100644 --- a/lld/ELF/Driver.cpp +++ b/lld/ELF/Driver.cpp @@ -942,14 +942,15 @@ template <class ELFT> void LinkerDriver::link(opt::InputArgList &Args) { // MergeInputSection::splitIntoPieces needs to be called before // any call of MergeInputSection::getOffset. Do that. - forEach(InputSections.begin(), InputSections.end(), [](InputSectionBase *S) { - if (!S->Live) - return; - if (Decompressor::isCompressedELFSection(S->Flags, S->Name)) - S->uncompress(); - if (auto *MS = dyn_cast<MergeInputSection>(S)) - MS->splitIntoPieces(); - }); + parallelForEach(InputSections.begin(), InputSections.end(), + [](InputSectionBase *S) { + if (!S->Live) + return; + if (Decompressor::isCompressedELFSection(S->Flags, S->Name)) + S->uncompress(); + if (auto *MS = dyn_cast<MergeInputSection>(S)) + MS->splitIntoPieces(); + }); // Write the result to the file. writeResult<ELFT>(); diff --git a/lld/ELF/ICF.cpp b/lld/ELF/ICF.cpp index 233b866cdc1..a9de0fc71eb 100644 --- a/lld/ELF/ICF.cpp +++ b/lld/ELF/ICF.cpp @@ -325,8 +325,9 @@ void ICF<ELFT>::forEachClass(std::function<void(size_t, size_t)> Fn) { // Split sections into 256 shards and call Fn in parallel. size_t NumShards = 256; size_t Step = Sections.size() / NumShards; - forLoop(0, NumShards, - [&](size_t I) { forEachClassRange(I * Step, (I + 1) * Step, Fn); }); + parallelFor(0, NumShards, [&](size_t I) { + forEachClassRange(I * Step, (I + 1) * Step, Fn); + }); forEachClassRange(Step * NumShards, Sections.size(), Fn); ++Cnt; } diff --git a/lld/ELF/OutputSections.cpp b/lld/ELF/OutputSections.cpp index c159669fbab..cda8a2b3f42 100644 --- a/lld/ELF/OutputSections.cpp +++ b/lld/ELF/OutputSections.cpp @@ -238,8 +238,8 @@ template <class ELFT> void OutputSection::writeTo(uint8_t *Buf) { if (uint32_t Filler = Script->getFiller(this->Name)) fill(Buf, this->Size, Filler); - auto Fn = [=](InputSection *IS) { IS->writeTo<ELFT>(Buf); }; - forEach(Sections.begin(), Sections.end(), Fn); + parallelForEach(Sections.begin(), Sections.end(), + [=](InputSection *IS) { IS->writeTo<ELFT>(Buf); }); // Linker scripts may have BYTE()-family commands with which you // can write arbitrary bytes to the output. Process them if any. diff --git a/lld/ELF/SyntheticSections.cpp b/lld/ELF/SyntheticSections.cpp index c98f152e29f..22c7f268995 100644 --- a/lld/ELF/SyntheticSections.cpp +++ b/lld/ELF/SyntheticSections.cpp @@ -356,8 +356,9 @@ void BuildIdSection::computeHash( std::vector<uint8_t> Hashes(Chunks.size() * HashSize); // Compute hash values. - forLoop(0, Chunks.size(), - [&](size_t I) { HashFn(Hashes.data() + I * HashSize, Chunks[I]); }); + parallelFor(0, Chunks.size(), [&](size_t I) { + HashFn(Hashes.data() + I * HashSize, Chunks[I]); + }); // Write to the final output buffer. HashFn(HashBuf, Hashes); diff --git a/lld/ELF/Threads.h b/lld/ELF/Threads.h index c03e15253e1..3df9636068a 100644 --- a/lld/ELF/Threads.h +++ b/lld/ELF/Threads.h @@ -69,14 +69,15 @@ namespace lld { namespace elf { template <class IterTy, class FuncTy> -void forEach(IterTy Begin, IterTy End, FuncTy Fn) { +void parallelForEach(IterTy Begin, IterTy End, FuncTy Fn) { if (Config->Threads) parallel_for_each(Begin, End, Fn); else std::for_each(Begin, End, Fn); } -inline void forLoop(size_t Begin, size_t End, std::function<void(size_t)> Fn) { +inline void parallelFor(size_t Begin, size_t End, + std::function<void(size_t)> Fn) { if (Config->Threads) { parallel_for(Begin, End, Fn); } else { |