Hashing: microoptimize a truncate on 64 bit away. This currently blocks dead code...
authorBenjamin Kramer <benny.kra@googlemail.com>
Fri, 2 Mar 2012 15:34:35 +0000 (15:34 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Fri, 2 Mar 2012 15:34:35 +0000 (15:34 +0000)
The optimizer should handle this eventually, but currently LVI isn't really designed for this kind of stuff.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151918 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/ADT/Hashing.h

index 2c270e4ffc59742d2c789f9010ffaca59236ecfe..120f9e5699457a46ffac1e9d7f925f3e6ddb52b0 100644 (file)
@@ -173,7 +173,7 @@ static const uint64_t k3 = 0xc949d7c7509e6557ULL;
 /// \brief Bitwise right rotate.
 /// Normally this will compile to a single instruction, especially if the
 /// shift is a manifest constant.
-inline uint64_t rotate(uint64_t val, unsigned shift) {
+inline uint64_t rotate(uint64_t val, size_t shift) {
   // Avoid shifting by 64: doing so yields an undefined result.
   return shift == 0 ? val : ((val >> shift) | (val << (64 - shift)));
 }