[PATCH] D27155: Merge strings using concurrent hash map (3rd try!)

Rui Ueyama via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Nov 27 21:35:30 PST 2016


ruiu added a comment.

I will address review comments tomorrow, but here is a breakdown.  When merging 29,313,742 strings, we spent

- 185,729 us to insert them into the concurrent hash table,
- 70,814 us to sort runs of claimed buckets,
- 66,560 us to assign string table offsets to buckets, and
- 124,903 us seconds to update OutputOff member for all SectionPieces.

I think the algorithm is correct, but this patch is not ready for commit yet. As you said, we need to handle the case that the hash table becomes full. (My rough idea is when it becomes full, discard the entire hash table and redo from scratch with a larger hash table. Resizing in-use concurrent hash table is extremely hard.)


https://reviews.llvm.org/D27155





More information about the llvm-commits mailing list