summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2015-04-17 08:11:38 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2015-04-17 08:11:38 +0000
commit607da974b2a4de3bc4f2d016c9c6c2dfe9bc8471 (patch)
tree3a5ec6edf75c8019539b642ac30d03111d0fc654 /llvm/lib/Bitcode/Reader/BitcodeReader.cpp
parentfb2f6c60f2e092749c9cc355a2d324e41f478c31 (diff)
downloadbcm5719-llvm-607da974b2a4de3bc4f2d016c9c6c2dfe9bc8471.tar.gz
bcm5719-llvm-607da974b2a4de3bc4f2d016c9c6c2dfe9bc8471.zip
Write relocation sections contiguously.
Linkers normally read all the relocations upfront to compute the references between sections. Putting them together is a bit more cache friendly. I benchmarked linking a Release+Asserts clang with gold on a vm. I tried all 4 combinations of --gc-sections/no --gc-section hot and cold cache. I cleared the cache with echo 3 > /proc/sys/vm/drop_caches and warmed it up by running the link once before timing the subsequent ones. With cold cache and --gc-sections the time goes from 1.86130781665 +- 0.01713126697463843 seconds to 1.82370735105 +- 0.014127522318814516 seconds With cold cache and no --gc-sections the time goes from 1.6087245435500002 +- 0.012999066825178644 seconds to 1.5687122041500001 +- 0.013145850126026619 seconds With hot cache and no --gc-sections the time goes from 0.926200939 ( +- 0.33% ) seconds to 0.907200079 ( +- 0.31% ) seconds With hot cache and gc sections the time goes from 1.183038049 ( +- 0.34% ) seconds to 1.147355862 ( +- 0.39% ) seconds llvm-svn: 235165
Diffstat (limited to 'llvm/lib/Bitcode/Reader/BitcodeReader.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud