[lkml]   [2001]   [Jan]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: * 4 converted to << 2 for networking code
Followup to:  <>
By author: =?iso-8859-1?Q?Jakob_=D8stergaard?= <>
In newsgroup:
> On most processors <<2 is slower than *4.

That's a funny statement. Which processors do you include in "most"?
That has not been my experience.

> It's outright stupid to write <<2 when we mean *4 in order to optimize for one out of a
> gazillion supported architectures - even more so when the compiler
> for the one CPU where <<2 is faster, will actually generate a shift
> instead of a multiply as a part of the standard optimization.
> One question for the GCC people: Will gcc change <<2 to *4 on other
> architectures ? If so, then my case is not quite as strong of course.

gcc should consider the statements equivalent, and generate whichever
pattern is preferred. On an i386 that may mean take a pattern such as

foo = (bar << 2) + quux;

... and generate ...

lea ecx,[esi*4+ebx]

<> at work, <> in private!
"Unix gives you enough rope to shoot yourself in the foot."
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
Please read the FAQ at

 \ /
  Last update: 2005-03-22 13:28    [from the cache]
©2003-2014 Jasper Spaans. hosted at Digital Ocean