This is an archive of the discontinued LLVM Phabricator instance.

Read public symbol names for LazyObjectFiles in parallel.
Needs ReviewPublic

Authored by ruiu on May 4 2017, 2:03 PM.
This revision needs review, but all specified reviewers are disabled or inactive.

Details

Reviewers
espindola
Summary

This is in the context of https://reviews.llvm.org/D32867 and attempts
to speed up reading symbols from object files in archive files.

Interestingly, archives without symbol tables are faster than those
with symbol tables with this patch. I benchmarked the linker with
the default build configuration, stripped symbol tables from archives
in the build tree, and ran the same test again. The first attempt
to link clang took 8.17s (average of 10 trials using the perf
command). The second attempt took 8.04s. This is odd but seems real.

Somewhat orthogonal to this patch, but that result seems to imply
that there's room for improvements in the code to handle archive
symbol table.

Event Timeline

ruiu created this revision.May 4 2017, 2:03 PM
ruiu edited the summary of this revision. (Show Details)May 4 2017, 3:43 PM
ruiu updated this revision to Diff 97889.May 4 2017, 3:44 PM
  • Removed unrelated changes.
ruiu added a comment.May 5 2017, 11:29 AM

I think the testcase is the same. Probably that's due to difference of machines. My workstation is beefy -- 2-socket Xeon with 10 physical cores each. What's your machine and your numbers?

espindola edited reviewers, added: espindola; removed: rafael.Mar 15 2018, 9:49 AM