[PATCH] D27152: Merge strings using sharded hash tables.

Rui Ueyama via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Dec 5 23:21:50 PST 2016


ruiu updated this revision to Diff 80381.
ruiu added a comment.

I was about to commit https://reviews.llvm.org/D27155, but it turned out that the single-core
performance of that change is too poor to check-in. So I want to submit
this patch instead.

This doesn't scale that much compared to https://reviews.llvm.org/D27155, but its single-core
performance doesn't such as well. Here is clang link time in seconds.
As you can see, it's performance is competitive if you have at least
two cores. However, it doesn't scale more than 8 cores. (I guess the
small improvements over 8 cores comes from other parts of the linker.)

1. of cores   Before   After 1   13.462   15.795   +17.33% 2    9.766   10.046    +2.86% 4    7.697    7.228    -6.09% 8    6.888    5.672   -17.65% 12    7.073    5.848   -17.31% 16    7.066    5.746   -18.68% 20    6.846    5.482   -19.92%

Linking clang-scale programs only with single core is very painful
anyways, so I think this performance characteristics is okay.


https://reviews.llvm.org/D27152

Files:
  ELF/InputSection.h
  ELF/OutputSections.cpp
  ELF/OutputSections.h
  test/ELF/comment-gc.s
  test/ELF/compressed-debug-input.s
  test/ELF/debug-gc.s
  test/ELF/gc-sections-merge.s
  test/ELF/merge-string-align.s
  test/ELF/merge.s

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D27152.80381.patch
Type: text/x-patch
Size: 14581 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20161206/711fc35c/attachment.bin>


More information about the llvm-commits mailing list