[APInt] Make clearUnusedBits branch free.
authorCraig Topper <craig.topper@gmail.com>
Sun, 23 Apr 2017 17:16:26 +0000 (17:16 +0000)
committerCraig Topper <craig.topper@gmail.com>
Sun, 23 Apr 2017 17:16:26 +0000 (17:16 +0000)
commit4e590e59a088128b7cc3733ed7ab4344cfcc4dc1
treeb5827d4a992d36d3d61f11909c1ccf55ceab5ed6
parent652ca99622954c5373427bbd51257b7f23b61aed
[APInt] Make clearUnusedBits branch free.

This makes the WordBits calculation calculate a value between 1 and 64 for the number of bits in the last word. Previously if the BitWidth was a multiple of 64 bits the WordBits value was 0 and we had to bail out early to avoid an undefined shift. Now with a value of 64 we no longer have an undefined shift issue.

This shows a 15-16k reduction in the size of the opt binary on my local x86-64 build.

llvm-svn: 301134
llvm/include/llvm/ADT/APInt.h