llvm-project/lld
Zachary Turner 96b04b68ed [lit] Improve tool substitution in lit.
This addresses two sources of inconsistency in test configuration
files.

1. Substitution boundaries.  Previously you would specify a
   substitution, such as 'lli', and then additionally a set
   of characters that should fail to match before and after
   the tool.  This was used, for example, so that matches that
   are parts of full paths would not be replaced.  But not all
   tools did this, and those that did would often re-invent
   the set of characters themselves, leading to inconsistency.
   Now, every tool substitution defaults to using a sane set
   of reasonable defaults and you have to explicitly opt out
   of it.  This actually fixed a few latent bugs that were
   never being surfaced, but only on accident.

2. There was no standard way for the system to decide how to
   locate a tool.  Sometimes you have an explicit path, sometimes
   we would search for it and build up a path ourselves, and
   sometimes we would build up a full command line.  Furthermore,
   there was no standardized way to handle missing tools.  Do we
   warn, fail, ignore, etc?  All of this is now encapsulated in
   the ToolSubst class.  You either specify an exact command to
   run, or an instance of FindTool('<tool-name>') and everything
   else just works.  Furthermore, you can specify an action to
   take if the tool cannot be resolved.

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

llvm-svn: 315085
2017-10-06 17:54:46 +00:00
..
COFF Move new lld's code to Common subdirectory. 2017-10-02 21:00:41 +00:00
Common lldCommon depends on intrinsics_gen, due to llvm/CodeGen/CommandFlags.h 2017-10-03 04:18:46 +00:00
ELF [ELF][MIPS] Check for overflow when writing R_MIPS_CALL16 and R_MIPS_TLS_GOTTPREL 2017-10-06 16:15:59 +00:00
MinGW Fix another build breakage. 2017-10-02 22:05:46 +00:00
cmake/modules [lld][cmake] Fix BUILD_SHARED_LIBS installation 2017-01-24 10:41:02 +00:00
docs Move new lld's code to Common subdirectory. 2017-10-02 21:00:41 +00:00
include/lld Move new lld's code to Common subdirectory. 2017-10-02 21:00:41 +00:00
lib Build fix: don't try to link in lldConfig 2017-10-02 23:09:37 +00:00
test [lit] Improve tool substitution in lit. 2017-10-06 17:54:46 +00:00
tools/lld Move new lld's code to Common subdirectory. 2017-10-02 21:00:41 +00:00
unittests Move new lld's code to Common subdirectory. 2017-10-02 21:00:41 +00:00
.arcconfig Upgrade all the .arcconfigs to https. 2016-07-14 13:15:37 +00:00
.clang-format
.gitignore
CMakeLists.txt Move new lld's code to Common subdirectory. 2017-10-02 21:00:41 +00:00
CODE_OWNERS.TXT
LICENSE.TXT Update copyright year to 2016. 2016-03-30 22:40:59 +00:00
README.md Add a note on where to get a lld benchmark. 2017-10-03 23:44:24 +00:00

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 4818e8d38961503a04a73597b0da1242c39efc9df2ceb6dfca4ed36845239863.