[lld] 3bc1527 - [ELF] Parallelize computeIsPreemptible

Fangrui Song via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 26 23:45:10 PST 2022


Author: Fangrui Song
Date: 2022-01-26T23:45:04-08:00
New Revision: 3bc152769d3e8e48b25103637e49d24f019f8bd0

URL: https://github.com/llvm/llvm-project/commit/3bc152769d3e8e48b25103637e49d24f019f8bd0
DIFF: https://github.com/llvm/llvm-project/commit/3bc152769d3e8e48b25103637e49d24f019f8bd0.diff

LOG: [ELF] Parallelize computeIsPreemptible

Added: 
    

Modified: 
    lld/ELF/Writer.cpp

Removed: 
    


################################################################################
diff  --git a/lld/ELF/Writer.cpp b/lld/ELF/Writer.cpp
index 848db1f04b42..69fcad390d61 100644
--- a/lld/ELF/Writer.cpp
+++ b/lld/ELF/Writer.cpp
@@ -1890,9 +1890,11 @@ template <class ELFT> void Writer<ELFT>::finalizeSections() {
       finalizeSynthetic(part.ehFrame.get());
   }
 
-  if (config->hasDynSymTab)
-    for (Symbol *sym : symtab->symbols())
+  if (config->hasDynSymTab) {
+    parallelForEach(symtab->symbols(), [](Symbol *sym) {
       sym->isPreemptible = computeIsPreemptible(*sym);
+    });
+  }
 
   // Change values of linker-script-defined symbols from placeholders (assigned
   // by declareSymbols) to actual definitions.


        


More information about the llvm-commits mailing list