Make check-llvm run 50% faster on macOS, 18% faster on Windows.
authorNico Weber <thakis@chromium.org>
Mon, 6 Jan 2020 15:54:13 +0000 (10:54 -0500)
committerNico Weber <thakis@chromium.org>
Mon, 6 Jan 2020 17:57:42 +0000 (12:57 -0500)
commitf6544934b94932f1d2231238046f83ba8b083040
tree2b749c995a823176543fe7e53d6222bb79d6b1b3
parent3abc2927cb2372349fbbc0b62382c85d7d000f2c
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 327894859cc 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.
llvm/utils/lit/lit/TestRunner.py