[ricardo@scarybox.net: Re: [PATCH 1/4] sound/isa: use unsigned forloop index]

From: Ricardo Martins
Date: Sun May 11 2008 - 13:34:25 EST


Sorry, I forgot to CC the list.

----- Forwarded message from Ricardo Martins <ricardo@xxxxxxxxxxxx> -----

Date: Sun, 11 May 2008 18:16:52 +0100
From: Ricardo Martins <ricardo@xxxxxxxxxxxx>
To: Alexey Dobriyan <adobriyan@xxxxxxxxx>
Subject: Re: [PATCH 1/4] sound/isa: use unsigned for loop index
User-Agent: Mutt/1.5.17 (2007-11-01)

On Sun, 11 May 2008 21:22, Alexey Dobriyan wrote:
> On Sun, May 11, 2008 at 05:08:32PM +0100, Ricardo Martins wrote:
> > On Sun, 11 May 2008 20:43, Alexey Dobriyan wrote:
> > > On Sun, May 11, 2008 at 02:50:33PM +0200, Julia Lawall wrote:
> > > > A few more cases in the spirit of the patch "Trivial: Replacement of always
> > > > >0 ints with unsigned ints" submitted by Ricardo Martins <ricardo@xxxxxxxxxxxx>
> > >
> > > And rationale for those would be ...?
> >
> > Acccording to the kernel-janitors TODO [1], Jeff Garzik suggested the following:
> >
> > 2) "unsigned int" is preferred to "int", it generates better asm code
> > on all platforms except sh5. This replacement needs to be done manually,
> > because often 'int' is required due to negative values -Exxx commonly
> > passed as error values.
> >
> > Since (most) loop counters such as "int i" are always either zero or a positive
> > number, they are perfect candidates for using unsigned int instead, imho.
> > It goes without saying, that each case must be considered separately in
> > case a negative value is indeed needed.
> >
> > [1] http://kernelnewbies.org/KernelJanitors/Todo
>
> So you've checked disassembly in both cases and saw it's better?

The generated assembly code in a very simple test case (two 'for' loops,
one using an int and another using an unsigned int as the counter
variable) is exactly the same in both cases.

However, since this was a very very simple test case, I supposed that Jeff
Garzik's claim would hold true in more complex cases.

Comparing the output of "objdump -M intel -d drivers/video/nvidia/nvidia.o"
before and after my patch, I reach the same conclusion: at least in my
arch (x86_64), both versions are approximately the same. If anyone is
interested, I can email or upload those dumps somewhere.

Now I feel like a fool. That teaches me to always doubt each and every claim
I am exposed to.

Regards,
--
Ricardo Martins * scarybox.net * GPG key: 0x1308F1B4

----- End forwarded message -----

Attachment: pgp00000.pgp
Description: PGP signature