lkml.org 
[lkml]   [2012]   [Jul]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH 1/1] core-kernel: use multiply instead of shifts in hash_64
From
On Tue, Jul 10, 2012 at 6:35 AM, Michael Tokarev <mjt@tls.msk.ru> wrote:
> On 03.07.2012 00:25, Andrew Hunter wrote:
>> diff --git a/include/linux/hash.h b/include/linux/hash.h
>> index b80506b..daabc3d 100644
>> --- a/include/linux/hash.h
>> +++ b/include/linux/hash.h
>> @@ -34,7 +34,9 @@
>> static inline u64 hash_64(u64 val, unsigned int bits)
>> {
>> u64 hash = val;
>> -
>> +#if BITS_PER_LONG == 64
>> + hash *= GOLDEN_RATIO_PRIME_64;
>> +#else
>> /* Sigh, gcc can't optimise this alone like it does for 32 bits. */
>
> Hmm. Does this comment make sense here now?
>

I haven't checked what output gcc provides for 32-bit kernels with
this or a literal multiply. It's not even clear what optimization is
_asked_ for here (possibly the reduction of strength that we probably
don't even want.)


\
 
 \ /
  Last update: 2012-07-12 23:41    [from the cache]
©2003-2011 Jasper Spaans