diff options
author | Rui Ueyama <ruiu@google.com> | 2018-07-11 11:37:10 +0000 |
---|---|---|
committer | Rui Ueyama <ruiu@google.com> | 2018-07-11 11:37:10 +0000 |
commit | d29c0391194b63c87e877dbf4e708a17f469c5ac (patch) | |
tree | 1bfac72a6f6932b8c4f2a244b4f0864b03c023e4 /clang/unittests/Basic/VirtualFileSystemTest.cpp | |
parent | ea45a89e5c4472f492da059782500551649e32c6 (diff) | |
download | llvm-d29c0391194b63c87e877dbf4e708a17f469c5ac.zip llvm-d29c0391194b63c87e877dbf4e708a17f469c5ac.tar.gz llvm-d29c0391194b63c87e877dbf4e708a17f469c5ac.tar.bz2 |
Parallelize GdbIndexSection's symbol table creation.
Since .gdb_index sections contain all known symbols, they can be very large.
One of my executables has a .gdb_index section of 1350 GiB. Uniquifying
symbols by name takes 3.77 seconds on my machine. This patch parallelize it.
Time to call createSymbols() with 8.4 million unique symbols:
Without this patch: 3773 ms
Parallelism = 1: 4374 ms
Parallelism = 2: 2628 ms
Parallelism = 16: 837 ms
As you can see above, this algorithm is a bit more inefficient
than the non-parallelized version, but even with dual-core, it is
faster than that, so I think it is overall a win.
Differential Revision: https://reviews.llvm.org/D49164
llvm-svn: 336790
Diffstat (limited to 'clang/unittests/Basic/VirtualFileSystemTest.cpp')
0 files changed, 0 insertions, 0 deletions