llvm-project/lld
Reid Kleckner 932f0276ea [Support] Move LLD's parallel algorithm wrappers to support
Essentially takes the lld/Common/Threads.h wrappers and moves them to
the llvm/Support/Paralle.h algorithm header.

The changes are:
- Remove policy parameter, since all clients use `par`.
- Rename the methods to `parallelSort` etc to match LLVM style, since
  they are no longer C++17 pstl compatible.
- Move algorithms from llvm::parallel:: to llvm::, since they have
  "parallel" in the name and are no longer overloads of the regular
  algorithms.
- Add range overloads
- Use the sequential algorithm directly when 1 thread is requested
  (skips task grouping)
- Fix the index type of parallelForEachN to size_t. Nobody in LLVM was
  using any other parameter, and it made overload resolution hard for
  for_each_n(par, 0, foo.size(), ...) because 0 is int, not size_t.

Remove Threads.h and update LLD for that.

This is a prerequisite for parallel public symbol processing in the PDB
library, which is in LLVM.

Reviewed By: MaskRay, aganea

Differential Revision: https://reviews.llvm.org/D79390
2020-05-05 15:21:05 -07:00
..
COFF [Support] Move LLD's parallel algorithm wrappers to support 2020-05-05 15:21:05 -07:00
Common [Support] Move LLD's parallel algorithm wrappers to support 2020-05-05 15:21:05 -07:00
ELF [Support] Move LLD's parallel algorithm wrappers to support 2020-05-05 15:21:05 -07:00
MachO [lld-macho] Support X86_64_RELOC_SIGNED_{1,2,4} 2020-05-04 15:15:35 -07:00
MinGW Remove unused Endian.h includes, NFC 2020-03-11 15:45:34 -07:00
cmake/modules
docs [ELF] Add --print-archive-stats= 2020-04-29 18:04:37 -07:00
include/lld [Support] Move LLD's parallel algorithm wrappers to support 2020-05-05 15:21:05 -07:00
lib [Support] Move LLD's parallel algorithm wrappers to support 2020-05-05 15:21:05 -07:00
test [Hexagon] Add R_HEX_GD_PLT_B22/32_PCREL relocations 2020-05-05 11:47:51 -05:00
tools/lld Reland D78837 [lld] Remove special cases from default ld driver mode. 2020-04-29 14:45:44 -07:00
unittests Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
utils Python 2/3 compatibility 2019-03-20 07:42:13 +00:00
wasm [Support] Move LLD's parallel algorithm wrappers to support 2020-05-05 15:21:05 -07:00
.clang-format
.clang-tidy [lld] Add .clang-tidy to customize readability-identifier-naming.{Member,Parameter,Variable}Case => camelBack 2020-03-09 08:26:41 -07:00
.gitignore
CMakeLists.txt Revert "Temporarily revert "build: use `find_package(Python3)` if available"" 2020-04-29 01:38:08 +00:00
CODE_OWNERS.TXT
LICENSE.TXT Fix typos throughout the license files that somehow I and my reviewers 2019-01-21 09:52:34 +00:00
README.md

README.md

LLVM Linker (lld)

This directory and its subdirectories contain source code for the LLVM Linker, a modular cross platform linker which is built as part of the LLVM compiler infrastructure project.

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

Benchmarking

In order to make sure various developers can evaluate patches over the same tests, we create a collection of self contained programs.

It is hosted at https://s3-us-west-2.amazonaws.com/linker-tests/lld-speed-test.tar.xz

The current sha256 is 10eec685463d5a8bbf08d77f4ca96282161d396c65bd97dc99dbde644a31610f.