Revert r285968: Always use parallel_for_each because it falls back to std::for_each.

It turned ou that we actually want to call std::for_each even if
threading is supported. Unless --thread is given, LLD shouldn't use
more than one threads.

llvm-svn: 286004
This commit is contained in:
Rui Ueyama 2016-11-04 18:22:36 +00:00
parent 9ac0dac1a6
commit eb943e8031
1 changed files with 7 additions and 2 deletions

View File

@ -1064,8 +1064,13 @@ template <class ELFT> void OutputSection<ELFT>::writeTo(uint8_t *Buf) {
ArrayRef<uint8_t> Filler = Script<ELFT>::X->getFiller(this->Name);
if (!Filler.empty())
fill(Buf, this->getSize(), Filler);
parallel_for_each(Sections.begin(), Sections.end(),
[=](InputSection<ELFT> *C) { C->writeTo(Buf); });
if (Config->Threads) {
parallel_for_each(Sections.begin(), Sections.end(),
[=](InputSection<ELFT> *C) { C->writeTo(Buf); });
} else {
for (InputSection<ELFT> *C : Sections)
C->writeTo(Buf);
}
// Linker scripts may have BYTE()-family commands with which you
// can write arbitrary bytes to the output. Process them if any.
Script<ELFT>::X->writeDataBytes(this->Name, Buf);