This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Automaticly eliminating redundant zero initialisers
- To: Graham Stoney <greyham at research dot canon dot com dot au>
- Subject: Re: Automaticly eliminating redundant zero initialisers
- From: Tigran Aivazian <tigran at veritas dot com>
- Date: Mon, 1 May 2000 11:24:30 +0100 (BST)
- cc: Russell King <rmk at arm dot linux dot org dot uk>, Linux kernel mailing list <linux-kernel at vger dot rutgers dot edu>, gcc at gcc dot gnu dot org
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.
Regards,
Tigran
--------------------------------
VERITAS - http://www.veritas.com