summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2015-09-10 08:29:35 +0000
committerChandler Carruth <chandlerc@gmail.com>2015-09-10 08:29:35 +0000
commit6f77949d8b1f8a2abc0186a025d1c49d6dfd9e86 (patch)
tree3bb91c26b902f978b0a4d8ba09a3cd7b1c940722 /llvm/test
parent4f4541356bc57704d14ae14415246850d8021e93 (diff)
downloadbcm5719-llvm-6f77949d8b1f8a2abc0186a025d1c49d6dfd9e86.tar.gz
bcm5719-llvm-6f77949d8b1f8a2abc0186a025d1c49d6dfd9e86.zip
[ADT] Apply a large hammer to StringRef functions: attribute always_inline.
The logic of this follows something Howard does in libc++ and something I discussed with Chris eons ago -- for a lot of functions, there is really no benefit to preserving "debug information" by leaving the out-of-line even in debug builds. This is especially true as we now do a very good job of preserving most debug information even in the face of inlining. There are a bunch of methods in StringRef that we are paying a completely unacceptable amount for with every debug build of every LLVM developer. Some day, we should fix Clang/LLVM so that developers can reasonable use a default of something other than '-O0' and not waste their lives waiting on *completely* unoptimized code to execute. We should have a default that doesn't impede debugging while providing at least plausable performance. But today is not that day. So today, I'm applying always_inline to the functions that are really hurting the critical path for stuff like 'check_llvm'. I'm being very cautious here, but there are a few other APIs that we really should do this for as a matter of pragmatism. Hopefully we can rip this out some day. With this change, TripleTest.Normalization runtime decreases by over 10%, and the total 'check-llvm' time on my 48-core box goes from 38s to just under 37s. llvm-svn: 247253
Diffstat (limited to 'llvm/test')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud