Commit 9ab34fe7 authored by Ingo Molnar's avatar Ingo Molnar Committed by Linus Torvalds

[PATCH] enable unit-at-a-time optimisations for gcc4

Allow gcc4 compilers to optimize unit-at-a-time.

This flag enables gcc to "see" the entire C file before making optimisation
decisions such as inline, which results in gcc making better decisions.  One
of the immediate effects of this is that static functions that are used only
once now get inlined.

gcc 3.4 has this flag as well, however gcc 3.x have a problem with inlining
and stacks and as a result, enabling this flag there would cause excessive and
unacceptable stack use.  This problem is fixed in the gcc 4.x series.  The
x86-64 architecture already enables this feature so it's well tested already.
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
Signed-off-by: default avatarArjan van de Ven <arjan@infradead.org>
Acked-by: default avatarJeff Garzik <jgarzik@pobox.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 40fc55cb
...@@ -42,9 +42,9 @@ include $(srctree)/arch/i386/Makefile.cpu ...@@ -42,9 +42,9 @@ include $(srctree)/arch/i386/Makefile.cpu
cflags-$(CONFIG_REGPARM) += $(shell if [ $(call cc-version) -ge 0300 ] ; then \ cflags-$(CONFIG_REGPARM) += $(shell if [ $(call cc-version) -ge 0300 ] ; then \
echo "-mregparm=3"; fi ;) echo "-mregparm=3"; fi ;)
# Disable unit-at-a-time mode, it makes gcc use a lot more stack # Disable unit-at-a-time mode on pre-gcc-4.0 compilers, it makes gcc use
# due to the lack of sharing of stacklots. # a lot more stack due to the lack of sharing of stacklots:
CFLAGS += $(call cc-option,-fno-unit-at-a-time) CFLAGS += $(shell if [ $(call cc-version) -lt 0400 ] ; then echo $(call cc-option,-fno-unit-at-a-time); fi ;)
CFLAGS += $(cflags-y) CFLAGS += $(cflags-y)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment