Go to file
Rui Ueyama e98095026f ELF: Add --thread option and partially parallelize writeTo().
This patch adds --thread option and use parallel_for_each to write
sections in regular OutputSections.

This is the first patch to use more than one threads.

Note that --thread is off by default because it is experimental.
At this moment I still want to focus on single thread performance
because multi-threading is not a magic wand to fix performance
problems after all. It is generally very hard to make a slow program
faster by threads. Therefore, I want to make the linker as efficient
as possible first and then look for opportunity to make it even faster
using more than one core.

Here are some numbers to link programs with and without --threads
and using GNU gold. Numbers are in seconds.

Clang
  w/o --threads 0.697
  w --threads   0.528
  gold          1.643

Scylla
  w/o --threads 5.032
  w --threads   4.935
  gold          6.791

GNU gold
  w/o --threads 0.550
  w --threads   0.551
  gold          0.737

I limited the number of cores these processes can use to 4 using
perf command, so although my machine has 20 physical cores, the
performance gain I observed should be reproducible with a machine
which is not as beefy as mine.

llvm-svn: 263190
2016-03-11 04:23:12 +00:00
clang Add doxygen comments to avxintrin.h's intrinsics. 2016-03-11 00:05:54 +00:00
clang-tools-extra [docs] Clean up doxygen comments a bit. 2016-03-06 04:05:59 +00:00
compiler-rt [sanitizer] Add strlen to the common interceptors 2016-03-11 00:45:49 +00:00
debuginfo-tests New round of fixes for "Always compile debuginfo-tests for the host triple" 2014-10-18 23:47:59 +00:00
libclc math: Fix ilogb(double) return type 2016-02-24 00:52:15 +00:00
libcxx Update status to mark 2579 complete 2016-03-09 18:09:07 +00:00
libcxxabi Reducing stack usage of test 2016-03-04 14:25:13 +00:00
libunwind [AArch64] Fix libunwind build when using GNU assembler 2016-02-11 21:22:57 +00:00
lld ELF: Add --thread option and partially parallelize writeTo(). 2016-03-11 04:23:12 +00:00
lldb Fix SBDebugger.GetOutputFileHandle() on OS X. 2016-03-11 01:57:45 +00:00
llgo [llgo] Force exporting __morestack from llgoi 2015-11-27 04:46:46 +00:00
llvm Remove llvm::getDISubprogram in favor of Function::getSubprogram 2016-03-11 02:14:16 +00:00
openmp [STATS] fix output formatting when sample count is 0 2016-03-03 21:24:13 +00:00
polly Also clang-format *.c run-time library files 2016-03-08 07:34:58 +00:00