mirror of
https://github.com/RPCS3/llvm.git
synced 2025-02-11 05:17:36 +00:00
![Chandler Carruth](/assets/img/avatar_default.png)
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@247253 91177308-0d34-0410-b5e6-96231b3b80d8