aboutsummaryrefslogtreecommitdiff
path: root/clang/unittests/Basic/VirtualFileSystemTest.cpp
diff options
context:
space:
mode:
authorRui Ueyama <ruiu@google.com>2018-07-11 11:37:10 +0000
committerRui Ueyama <ruiu@google.com>2018-07-11 11:37:10 +0000
commitd29c0391194b63c87e877dbf4e708a17f469c5ac (patch)
tree1bfac72a6f6932b8c4f2a244b4f0864b03c023e4 /clang/unittests/Basic/VirtualFileSystemTest.cpp
parentea45a89e5c4472f492da059782500551649e32c6 (diff)
downloadllvm-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