[PATCH] D79467: [PDB] Optimize public symbol processing

Reid Kleckner via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue May 5 19:57:54 PDT 2020


rnk created this revision.
rnk added reviewers: aganea, MaskRay, hans.
Herald added subscribers: mgrang, hiraditya.
Herald added a project: LLVM.

Reduces time to link PGO instrumented net_unittets.exe by 11% (9.766s ->
8.672s, best of three). Reduces peak memory by 65.7MB (2142.71MB ->
2076.95MB).

Use a more compact struct, BulkPublic, for faster sorting. Sort in
parallel. Construct the hash buckets in parallel. Try to use one vector
to hold all the publics instead of copying them from one to another.
Allocate all the memory needed to serialize publics up front, and then
serialize them in place in parallel.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D79467

Files:
  lld/COFF/PDB.cpp
  llvm/include/llvm/DebugInfo/PDB/Native/GSIStreamBuilder.h
  llvm/lib/DebugInfo/PDB/Native/GSIStreamBuilder.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D79467.262285.patch
Type: text/x-patch
Size: 20031 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200506/c6b32d8e/attachment.bin>


More information about the llvm-commits mailing list