hanchenye-llvm-project/llvm
Vedant Kumar e3a0bf5048 Retry: [llvm-profdata] Speed up merging by using a thread pool
Add a "-j" option to llvm-profdata to control the number of threads used.
Auto-detect NumThreads when it isn't specified, and avoid spawning threads when
they wouldn't be beneficial.

I tested this patch using a raw profile produced by clang (147MB). Here is the
time taken to merge 4 copies together on my laptop:

  No thread pool: 112.87s user 5.92s system 97% cpu 2:01.08 total
  With 2 threads: 134.99s user 26.54s system 164% cpu 1:33.31 total

Changes since the initial commit:

  - When handling odd-length inputs, call ThreadPool::wait() before merging the
    last profile. Should fix a race/off-by-one (see r275937).

Differential Revision: https://reviews.llvm.org/D22438

llvm-svn: 275938
2016-07-19 01:17:20 +00:00
..
bindings [OCaml] Add functions for accessing metadata nodes. 2016-06-22 03:30:24 +00:00
cmake [cmake] Create the LLVM_BUILD_UTILS option. 2016-07-10 02:43:47 +00:00
docs Retry: [llvm-profdata] Speed up merging by using a thread pool 2016-07-19 01:17:20 +00:00
examples [Kaleidoscope][BuildingAJIT] Start filling in text for chapter 3. 2016-07-15 01:39:49 +00:00
include Retry: [llvm-profdata] Speed up merging by using a thread pool 2016-07-19 01:17:20 +00:00
lib Retry: [llvm-profdata] Speed up merging by using a thread pool 2016-07-19 01:17:20 +00:00
projects
resources
runtimes [CMake] Add LLVM runtimes directory 2016-06-23 22:07:21 +00:00
test Retry: [llvm-profdata] Speed up merging by using a thread pool 2016-07-19 01:17:20 +00:00
tools Retry: [llvm-profdata] Speed up merging by using a thread pool 2016-07-19 01:17:20 +00:00
unittests Retry: [llvm-profdata] Speed up merging by using a thread pool 2016-07-19 01:17:20 +00:00
utils TableGen: Allow custom register operand decoder method 2016-07-18 23:20:46 +00:00
.arcconfig Upgrade all the .arcconfigs to https. 2016-07-14 13:15:37 +00:00
.clang-format
.clang-tidy
.gitignore [CMake] Add LLVM runtimes directory 2016-06-23 22:07:21 +00:00
CMakeLists.txt Bump the trunk version to 4.0.0svn. 2016-07-18 17:51:04 +00:00
CODE_OWNERS.TXT Transfer ownership of the gold plugin. 2016-07-05 20:49:50 +00:00
CREDITS.TXT
LICENSE.TXT
LLVMBuild.txt
README.txt
configure
llvm.spec.in

README.txt

Low Level Virtual Machine (LLVM)
================================

This directory and its subdirectories contain source code for LLVM,
a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.