[PATCH] D126800: Write output sections in parallel

Vy Nguyen via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 1 12:09:56 PDT 2022


oontvoo requested changes to this revision.
oontvoo added inline comments.
This revision now requires changes to proceed.


================
Comment at: lld/MachO/Writer.cpp:1083-1092
 void Writer::writeSections() {
   uint8_t *buf = buffer->getBufferStart();
+  std::vector<const OutputSection *> osecs;
   for (const OutputSegment *seg : outputSegments)
     for (const OutputSection *osec : seg->getSections())
-      osec->writeTo(buf + osec->fileOff);
+      osecs.emplace_back(osec);
+
----------------
Does this not introduce indeterminism in the final binaries, and hence mess up caching?
(specifically the ordering of the output sections may change even if the input does not..)


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D126800/new/

https://reviews.llvm.org/D126800



More information about the llvm-commits mailing list