llvm-project/llvm
Nico Weber f6544934b9 Make check-llvm run 50% faster on macOS, 18% faster on Windows.
While looking at cycle time graphs of some of my bots, I noticed
that 327894859c made check-llvm noticeably slower on macOS and
Windows.

As it turns out, the 5 substitutions added in that change were
enough to cause lit to thrash the build-in cache in re.compile()
(re.sub() is implemented as re.compile().sub()), and apparently
applySubstitutions() is on the cricital path and slow when all
regexes need to compile all the time.

(See `_MAXCACHE = 512` in cpython/Lib/re.py)

Supporting full regexes for lit substitutions seems a bit like
overkill, but for now add a simple unbounded cache to recover
the lost performance.

No intended behavior change.
2020-01-06 12:57:42 -05:00
..
benchmarks
bindings [NFC] Fix trivial typos in comments 2020-01-06 10:50:26 +00:00
cmake [cmake] Remove install from add_llvm_example_library. 2020-01-04 17:12:24 +00:00
docs Generalize the pass registration mechanism used by Polly to any third-party tool 2020-01-02 16:45:31 +01:00
examples Re-apply "[Examples] Add IRTransformations directory to examples." 2020-01-04 15:47:23 +00:00
include [ARM,MVE] Fix many signedness errors in MVE intrinsics. 2020-01-06 16:33:16 +00:00
lib [AIX] Use csect reference for function address constants 2020-01-06 11:45:00 -05:00
projects
resources
runtimes [llvm/runtimes] Add runtimes as a dependency of clang-bootstrap-deps 2019-12-16 16:58:15 -08:00
test [llvm-readelf] Print EI_ABIVERSION as decimal instead of hexadecimal 2020-01-06 09:25:45 -08:00
tools [llvm-readelf] Print EI_ABIVERSION as decimal instead of hexadecimal 2020-01-06 09:25:45 -08:00
unittests [test][DebugInfo][NFC] Rename method for clarity 2020-01-06 11:30:26 +00:00
utils Make check-llvm run 50% faster on macOS, 18% faster on Windows. 2020-01-06 12:57:42 -05:00
.arcconfig
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt Re-apply "[Examples] Add IRTransformations directory to examples." 2020-01-04 15:47:23 +00:00
CODE_OWNERS.TXT
CREDITS.TXT
LICENSE.TXT
LLVMBuild.txt
README.txt
RELEASE_TESTERS.TXT
configure
llvm.spec.in

README.txt

The LLVM Compiler Infrastructure
================================

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.