[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CADroS=5Cy=a0_AzkpwpsWZSf1FL+gLNbsMWLW1WNcQn++hpgUw@mail.gmail.com>
Date: Thu, 12 Jul 2012 13:51:50 -0700
From: Andrew Hunter <ahh@...gle.com>
To: Michael Tokarev <mjt@....msk.ru>
Cc: linux-kernel@...r.kernel.org
Subject: Re: [PATCH 1/1] core-kernel: use multiply instead of shifts in hash_64
On Tue, Jul 10, 2012 at 6:35 AM, Michael Tokarev <mjt@....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.)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists