diff options
author | Chandler Carruth <chandlerc@gmail.com> | 2015-09-10 08:29:35 +0000 |
---|---|---|
committer | Chandler Carruth <chandlerc@gmail.com> | 2015-09-10 08:29:35 +0000 |
commit | 6f77949d8b1f8a2abc0186a025d1c49d6dfd9e86 (patch) | |
tree | 3bb91c26b902f978b0a4d8ba09a3cd7b1c940722 /llvm/test/CodeGen/ARM/vzip.ll | |
parent | 4f4541356bc57704d14ae14415246850d8021e93 (diff) | |
download | bcm5719-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/CodeGen/ARM/vzip.ll')
0 files changed, 0 insertions, 0 deletions