summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/MachineFunctionPrinterPass.cpp
diff options
context:
space:
mode:
authorRui Ueyama <ruiu@google.com>2015-09-19 01:48:26 +0000
committerRui Ueyama <ruiu@google.com>2015-09-19 01:48:26 +0000
commitf4d05d7a806989d739292e8bf969f3b2ae74fa08 (patch)
treef4c20693e6d493961c5009453cd526d75c1cec96 /llvm/lib/CodeGen/MachineFunctionPrinterPass.cpp
parent2f957ac0923c78f3541585e773073b9d174f565b (diff)
downloadbcm5719-llvm-f4d05d7a806989d739292e8bf969f3b2ae74fa08.tar.gz
bcm5719-llvm-f4d05d7a806989d739292e8bf969f3b2ae74fa08.zip
COFF: Parallelize InputFile::parse().
InputFile::parse() can be called in parallel with other calls of the same function. By doing that, time to self-link improves from 741 ms to 654 ms or 12% faster. This is probably the last low hanging fruit in terms of parallelism. Input file parsing and symbol table insertion takes 450 ms in total. If we want to optimize further, we probably have to parallelize symbol table insertion using concurrent hashmap or something. That's doable, but that's not easy, especially if you want to keep the exact same semantics and linking order. I'm not going to do that at least soon. Anyway, compared to r248019 (the change before the first attempt for parallelism), we achieved 36% performance improvement from 1022 ms to 654 ms. MSVC linker takes 3.3 seconds to link the same program. MSVC's ICF feature is very slow for some reason, but even if we disable the feature, it still takes about 1.2 seconds. Our number is probably good enough. llvm-svn: 248078
Diffstat (limited to 'llvm/lib/CodeGen/MachineFunctionPrinterPass.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud