[PATCH] D54802: [LLD][COFF] Generate import modules in PDB

Alexandre Ganea via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Nov 28 16:32:34 PST 2018


aganea marked an inline comment as done.
aganea added a comment.

In D54802#1311943 <https://reviews.llvm.org/D54802#1311943>, @rnk wrote:

> I think the challenge there is it requires a good concurrent hash map implementation, which we'd have to find or implement ourselves.


I can provide that, we have a good lockless, insert-only, DenseHash implemention that we have been using for many years.

Although the issue at stake here is the high memory bandwith, due to the large volume of data to process in a tight loop. Like you are pointing out, GHash uses a smaller key size (8 bytes) which packs more entries per cache line (instead of the {hash, ArrayRef<U8>} key (24 bytes) when GHash isn’t used). I’m not entierely sure multithreading will help a lot, but we can give it a try. Packing more tightly the data in the DenseHash, and avoiding indirections at all cost would probably benefit more in the short term.



================
Comment at: lld/trunk/COFF/PDB.cpp:1533
+      SmallString<128> LibPath = File->ParentName;
+      sys::fs::make_absolute(LibPath);
+      sys::path::native(LibPath);
----------------
thakis wrote:
> This regresses PDBs being independent of the build directory, cf r344061
Thanks for pointing out!


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

https://reviews.llvm.org/D54802





More information about the llvm-commits mailing list