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
Loading
Please register or sign in to comment