summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/python_api/default-constructor
diff options
context:
space:
mode:
authorNick Terrell <terrelln@fb.com>2019-11-11 22:07:12 -0800
committerFangrui Song <maskray@google.com>2019-11-11 22:14:28 -0800
commit43ff63477256d584cf506dba0c222c28231b0ccc (patch)
treed7a0c2ac8e758ca3809edf3db02aa39911cf0309 /lldb/packages/Python/lldbsuite/test/python_api/default-constructor
parent3c4f8bb108b2a362db7d723fe9646a3d236fe60e (diff)
downloadbcm5719-llvm-43ff63477256d584cf506dba0c222c28231b0ccc.tar.gz
bcm5719-llvm-43ff63477256d584cf506dba0c222c28231b0ccc.zip
[Support] Optimize SHA1 implementation
* Add inline to the helper functions because gcc-9 won't inline all of them without the hint. I've avoided `__attribute__((always_inline))` because gcc and clang will inline without it, and improves compatibility. * Replace the byte-by-byte copy in update() with endian::readbe32() since perf reports that 1/2 of the time is spent copying into the buffer before this patch. When lld uses --build-id=sha1 it spends 30-45% of CPU in SHA1 depending on the binary (not wall-time since it is parallel). This patch speeds up SHA1 by a factor of 2 on clang-8 and 3 on gcc-6. This leads to a >10% improvement in overall linking time. lld-speed-test benchmarks run on an Intel i9-9900k with Turbo disabled on CPU 0 compiled with clang-9. Stats recorded with `perf stat -r 5`. All inputs are using `--build-id=sha1`. | Input | Before (seconds) | After (seconds) | | --- | --- | --- | | chrome | 2.14 | 1.82 (-15%) | | chrome-icf | 2.56 | 2.29 (-10%) | | clang | 0.65 | 0.53 (-18%) | | clang-fsds | 0.69 | 0.58 (-16%) | | clang-gdb-index | 21.71 | 19.3 (-11%) | | gold | 0.42 | 0.34 (-19%) | | gold-fsds | 0.431 | 0.355 (-17%) | | linux-kernel | 0.625 | 0.575 (-8%) | | llvm-as | 0.045 | 0.039 (-14%) | | llvm-as-fsds | 0.035 | 0.039 (-11%) | | mozilla | 11.3 | 9.8 (-13%) | | mozilla-gc | 11.84 | 10.36 (-12%) | | mozilla-O0 | 8.2 | 5.84 (-28%) | | scylla | 5.59 | 4.52 (-19%) | Reviewed By: ruiu, MaskRay Differential Revision: https://reviews.llvm.org/D69295
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/python_api/default-constructor')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud