Re: Automaticly eliminating redundant zero initialisers

From: Tigran Aivazian (
Date: Mon May 01 2000 - 05:24:30 EST

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.


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
Please read the FAQ at

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