Re: Automaticly eliminating redundant zero initialisers

From: Tigran Aivazian (tigran@veritas.com)
Date: Mon May 01 2000 - 05:28:17 EST


On Mon, 1 May 2000, Tigran Aivazian wrote:
> On Mon, 1 May 2000, Graham Stoney wrote:
>
> > In a discussion about Linux kernel optimisations, Russell King writes:
> > > Oh, if any of the mm people are reading this, what about killing the
> > > redundant zero initialisers so that these variables can be placed in
> > > the BSS?
> >
> > Even better, is there any way to get gcc to treat static and extern variables
> > with explicit all-bits-zero initializers as though they had no initializers?
> >
> > In other words, treat these the same:
> > static int initialised=0; /* wastes space in .data */
> > static int uninitialised; /* implicitly zero, and more efficient */
> >
> > This would be useful for all space-conscious environments where the user
> > knows that .bss is zero-filled. Variables with redundant explicit zero
> > initializers are effectively wasting .data space, but some programmer like
> > to use them anyway.
>
> # cd /usr/src/linux/arch/i386/kernel
> # grep -i surprise *S
> head.S: * Clear BSS first so that there are no surprises...
>
> as you see, it has been done explicitly by the kernel, regardless of what
> gcc may have prepared.

oops, I just realised you are asking for something slightly different.
What I meant is that you can now safely ignore zero-initializers because
BSS is zero-cleared by the kernel explicitly.

Regards,
Tigran

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



This archive was generated by hypermail 2b29 : Sun May 07 2000 - 21:00:08 EST