llvm-project/llvm
Teresa Johnson 7cffaf3ad0 [ThinLTO] Launch importing backends in parallel threads from gold plugin
Summary:
Launch ThinLTO backends (LTO and codegen pipelines with importing) in
parallel using a ThreadPool, after creating the combined index.
The number of threads is controlled by the existing -jobs gold plugin
option, or the hardware concurrency if not specified.

The old behavior of exiting after creating the combined index can be
invoked via a new thinlto-index-only plugin option.

This commit involves just the ThinLTO-specific pieces of D15390, the NFC
and other restructuring pieces were committed independently:
  r262677: Add hardware_concurrency interface to llvm::thread (NFC)
  r262719: Change split code gen to use ThreadPool
  r262721: Refactor gold-plugin codegen to prepare for ThinLTO threads (NFC)

Reviewers: pcc, joker.eph, rafael

Subscribers: rafael, davidxl, llvm-commits, joker.eph

Differential Revision: http://reviews.llvm.org/D15390

llvm-svn: 262724
2016-03-04 17:06:02 +00:00
..
bindings Kill LLVMAddTargetData 2016-02-16 00:22:02 +00:00
cmake [cmake] Check the compiler version first 2016-03-02 16:42:56 +00:00
docs [docs] Add a description of current problem areas to the statepoint docs 2016-03-03 23:24:44 +00:00
examples Refactor duplicated code for linking with pthread. 2016-03-01 15:54:40 +00:00
include AMDGPU/SI: add llvm.amdgcn.image.atomic.* intrinsics 2016-03-04 10:39:50 +00:00
lib Change split code gen to use ThreadPool 2016-03-04 15:39:13 +00:00
projects Remove autoconf support 2016-01-26 21:29:08 +00:00
resources
test [ThinLTO] Launch importing backends in parallel threads from gold plugin 2016-03-04 17:06:02 +00:00
tools [ThinLTO] Launch importing backends in parallel threads from gold plugin 2016-03-04 17:06:02 +00:00
unittests Fix memory leak in tests. 2016-03-03 23:55:41 +00:00
utils TableGen: Accept itinerary data when checking for schedmodel completeness 2016-03-03 00:04:59 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitignore
CMakeLists.txt [CMake] Add test-depends target to build dependencies of check-all 2016-03-02 17:56:30 +00:00
CODE_OWNERS.TXT [docs] Remove references to autotools build. 2016-01-30 01:10:15 +00:00
CREDITS.TXT
LICENSE.TXT
LLVMBuild.txt
README.txt Revert previous test commit. 2016-01-04 19:13:29 +00:00
configure Remove autoconf support 2016-01-26 21:29:08 +00:00
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.