Make the bloom filter a bit larger.
I created https://reviews.llvm.org/D42202 to see how large the bloom filter should be. With that patch, I tested various bloom filter sizes with the following commands: $ cmake -GNinja -DCMAKE_BUILD_TYPE=Debug -DLLVM_ENABLE_LLD=true \ -DLLVM_ENABLE_PROJECTS='clang;lld' -DBUILD_SHARED_LIBS=ON \ -DCMAKE_SHARED_LINKER_FLAGS=-Wl,-bloom-filter-bits=<some integer> \ ../llvm-project/llvm $ rm -f $(find . -name \*.so.7.0.0svn) $ ninja lld $ LD_BIND_NOW=1 perf stat bin/ld.lld Here is the result: -bloom-filter-bits=8 0.220351609 seconds -bloom-filter-bits=10 0.217146597 seconds -bloom-filter-bits=12 0.206870826 seconds -bloom-filter-bits=16 0.209456312 seconds -bloom-filter-bits=32 0.195092075 seconds Currently we allocate 8 bits for a symbol, but according to the above result, that number is not optimal. Even though the numbers follow the diminishing return rule, the point where a marginal improvement becomes too small is not -bloom-filter-bits=8 but 12. So this patch sets it to 12. Differential Revision: https://reviews.llvm.org/D42204 llvm-svn: 323010
Loading
Please sign in to comment