[ADT] Micro-optimize and force inlining for string switches.
authorChandler Carruth <chandlerc@gmail.com>
Thu, 10 Sep 2015 09:25:59 +0000 (09:25 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Thu, 10 Sep 2015 09:25:59 +0000 (09:25 +0000)
commitcd31ffda2ac1d3df4c485846728dcb34d53da294
tree5bb3717904ebd7e1ac880db53ddbe0776837fa9d
parente403c7b00f3e141f3462a4f307e7de7c825f4e4a
[ADT] Micro-optimize and force inlining for string switches.

These are now quite heavily used in unit tests and the host tools,
making it worth having them be reasonably fast even in an unoptimized
build. This change reduces the total runtime of TripleTest.Normalization
by yet another 10% to 15%. It is now under 10 seconds on my machine, and
the total check-llvm time has dropped from 38s to around 36s.

I experimented with a number of different options, and the code pattern
here consistently seemed to lower the cleanest, likely due to the
significantly simple CFG and far fewer redundant tests of 'Result'.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@247257 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/ADT/StringSwitch.h