[llvm-dev] Default hashing function for integers (DenseMapInfo.h)

Chris Lattner via llvm-dev llvm-dev at lists.llvm.org
Mon Jan 9 17:31:29 PST 2017


> On Jan 9, 2017, at 2:10 AM, Francois Fayard via llvm-dev <llvm-dev at lists.llvm.org> wrote:
> 
> Hi,
> 
> I’ve been looking at Chandler Carruth talks about internal data structures for LLVM in order to implement my own library. That’s how I ended up looking at the internals of DenseMap and the default hash functions defined in DenseMapInfo.
> 
> I have been very surprised by the hash function used for integers which is hash(k) = 37 * k.

As others have pointed out, 37 does have some nice properties (by being prime), but we’ve also had it from the very early days.  I wouldn’t say that it has been extremely well considered at all.

-Chris



More information about the llvm-dev mailing list