Re: [PATCH] net #9

From: Jean Tourrilhes (jt@bougret.hpl.hp.com)
Date: Tue May 29 2001 - 21:01:52 EST


On Tue, May 29, 2001 at 09:47:19PM -0400, Jeff Garzik wrote:
> Jean Tourrilhes wrote:
> >
> > On Tue, May 29, 2001 at 09:13:34PM -0400, Jeff Garzik wrote:
> > >
> > > This is standard kernel cleanup that makes the resulting image smaller.
> > > These patches have been going into all areas of the kernel for quite
> > > some time.
> >
> > This doesn't make it right.
> >
> > Ok, while we are on the topic : could somebody explain me why
> > we can't get gcc to do that for us ? What is preventing adding a gcc
> > command line flag to do exactly that ? It's not like rocket science
> > (simple test) and would avoid to have tediously to go through all
> > source code, past, present and *future* to make those changes.
> > Bah, maybe it's too straightforward...
>
> This is ANSI C standard stuff. If a static object with a scalar type is
> not explicitly initialized, it is initialized to zero by default.
>
> Sure we can get gcc to recognize that case, but why use gcc to work
> around code that avoids an ANSI feature?

        Good standard don't mandate the implementation. And as
somebody doing some other language said, there is more than one way to
do it.
        ANSI C doesn't prohibit to initialise variable to zero
(AFAIK). ANSI C doesn't prevent the compiler to optimise for this
case. If I initialise the varaible 3 time to the same value in a row,
gcc will remove the other two.

        Let's put it another way... What's different between :
                for(i = 0; i < n; i++) xxx;
        And :
                i = 0; while(i++ < n) xxx;
        I would expect the compiler to produce code as efficient in
both cases, and leave the choice of coding style to the user.

        Jean
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu May 31 2001 - 21:00:43 EST