* [2.6 patch] add a config option for -Os compilation
@ 2003-10-15 22:50 Adrian Bunk
2003-10-15 23:12 ` Andrew Morton
0 siblings, 1 reply; 40+ messages in thread
From: Adrian Bunk @ 2003-10-15 22:50 UTC (permalink / raw)
To: Andrew Morton; +Cc: linux-kernel
Hi Andrew,
the patch below adds a configuration option for -Os (the H8300 symbol is
similar to the symbols on other architectures). It includes the results
of all detail discussions and applies, compiles and works with
2.6.0-test7-mm1.
Could you add it to -mm?
diffstat output:
Makefile | 8 +++++++-
arch/arm/Makefile | 2 --
arch/h8300/Kconfig | 4 ++++
arch/h8300/Makefile | 3 +--
init/Kconfig | 10 ++++++++++
5 files changed, 22 insertions(+), 5 deletions(-)
TIA
Adrian
--- linux-2.6.0-test5-mm4/init/Kconfig.old 2003-09-25 14:38:18.000000000 +0200
+++ linux-2.6.0-test5-mm4/init/Kconfig 2003-09-25 14:47:12.000000000 +0200
@@ -65,6 +65,16 @@
menu "General setup"
+config CC_OPTIMIZE_FOR_SIZE
+ bool "Optimize for size" if EXPERIMENTAL
+ default y if ARM || H8300
+ default n
+ help
+ Enabling this option will pass "-Os" instead of "-O2" to gcc
+ resulting in a smaller kernel.
+
+ If unsure, say N.
+
config SWAP
bool "Support for paging of anonymous memory"
depends on MMU
--- linux-2.6.0-test5-mm4/Makefile.old 2003-09-25 14:38:18.000000000 +0200
+++ linux-2.6.0-test5-mm4/Makefile 2003-09-25 14:40:26.000000000 +0200
@@ -274,7 +274,7 @@
CPPFLAGS := -D__KERNEL__ -Iinclude \
$(if $(KBUILD_SRC),-Iinclude2 -I$(srctree)/include)
-CFLAGS := -Wall -Wstrict-prototypes -Wno-trigraphs -O2 \
+CFLAGS := -Wall -Wstrict-prototypes -Wno-trigraphs \
-fno-strict-aliasing -fno-common
AFLAGS := -D__ASSEMBLY__
@@ -421,6 +421,12 @@
# ---------------------------------------------------------------------------
+ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
+CFLAGS += -Os
+else
+CFLAGS += -O2
+endif
+
ifndef CONFIG_FRAME_POINTER
CFLAGS += -fomit-frame-pointer
endif
--- linux-2.6.0-test5-mm4/arch/arm/Makefile.old 2003-09-25 14:38:18.000000000 +0200
+++ linux-2.6.0-test5-mm4/arch/arm/Makefile 2003-09-25 14:40:47.000000000 +0200
@@ -14,8 +14,6 @@
GZFLAGS :=-9
#CFLAGS +=-pipe
-CFLAGS :=$(CFLAGS:-O2=-Os)
-
ifeq ($(CONFIG_FRAME_POINTER),y)
CFLAGS +=-fno-omit-frame-pointer -mapcs -mno-sched-prolog
endif
--- linux-2.6.0-test5-mm4/arch/h8300/Kconfig.old 2003-09-25 14:43:27.000000000 +0200
+++ linux-2.6.0-test5-mm4/arch/h8300/Kconfig 2003-09-25 14:43:44.000000000 +0200
@@ -5,6 +5,10 @@
mainmenu "uClinux/h8300 (w/o MMU) Kernel Configuration"
+config H8300
+ bool
+ default y
+
config MMU
bool
default n
--- linux-2.6.0-test5-mm4/arch/h8300/Makefile.old 2003-09-25 14:38:18.000000000 +0200
+++ linux-2.6.0-test5-mm4/arch/h8300/Makefile 2003-09-25 14:38:24.000000000 +0200
@@ -34,7 +34,7 @@
ldflags-$(CONFIG_CPU_H8S) := -mh8300self
CFLAGS += $(cflags-y)
-CFLAGS += -mint32 -fno-builtin -Os
+CFLAGS += -mint32 -fno-builtin
CFLAGS += -g
CFLAGS += -D__linux__
CFLAGS += -DUTS_SYSNAME=\"uClinux\"
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [2.6 patch] add a config option for -Os compilation
2003-10-15 22:50 [2.6 patch] add a config option for -Os compilation Adrian Bunk
@ 2003-10-15 23:12 ` Andrew Morton
2003-10-15 23:24 ` Adrian Bunk
0 siblings, 1 reply; 40+ messages in thread
From: Andrew Morton @ 2003-10-15 23:12 UTC (permalink / raw)
To: Adrian Bunk; +Cc: linux-kernel
Adrian Bunk <bunk@fs.tum.de> wrote:
>
> the patch below adds a configuration option for -Os
Two problems:
a) It adds yet another reason why person A discovers problems which
person B cannot reproduce.
b) It adds yet another reason why person A cannot work out the exact
file-n-line where person B's kernel oopsed.
They are small concerns really, but it does make one wonder why we should
not make this change unconditional: just switch the kernel to -Os?
Does anyone have any (non-micro-)benchmark results which say this is a bad
idea?
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [2.6 patch] add a config option for -Os compilation
2003-10-15 23:12 ` Andrew Morton
@ 2003-10-15 23:24 ` Adrian Bunk
2003-10-15 23:52 ` Andrew Morton
0 siblings, 1 reply; 40+ messages in thread
From: Adrian Bunk @ 2003-10-15 23:24 UTC (permalink / raw)
To: Andrew Morton; +Cc: linux-kernel
On Wed, Oct 15, 2003 at 04:12:51PM -0700, Andrew Morton wrote:
>...
> They are small concerns really, but it does make one wonder why we should
> not make this change unconditional: just switch the kernel to -Os?
>
> Does anyone have any (non-micro-)benchmark results which say this is a bad
> idea?
No benchmarks, only arguments:
- it's less tested (there might be miscompilations in some part of the
kernel with some supported compilers)
- there might be fast path code somewhere in the kernel that becomes
significantely slower with -Os
- I've already seen a report for an ICE in gcc 2.95 of a user compiling
kernel 2.4 with -Os [1]
cu
Adrian
[1] http://bugs.debian.org/213497
--
"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [2.6 patch] add a config option for -Os compilation
2003-10-15 23:24 ` Adrian Bunk
@ 2003-10-15 23:52 ` Andrew Morton
2003-10-18 10:21 ` Adrian Bunk
0 siblings, 1 reply; 40+ messages in thread
From: Andrew Morton @ 2003-10-15 23:52 UTC (permalink / raw)
To: Adrian Bunk; +Cc: linux-kernel
Adrian Bunk <bunk@fs.tum.de> wrote:
>
> On Wed, Oct 15, 2003 at 04:12:51PM -0700, Andrew Morton wrote:
> >...
> > They are small concerns really, but it does make one wonder why we should
> > not make this change unconditional: just switch the kernel to -Os?
> >
> > Does anyone have any (non-micro-)benchmark results which say this is a bad
> > idea?
>
> No benchmarks, only arguments:
>
> - it's less tested (there might be miscompilations in some part of the
> kernel with some supported compilers)
Testing is not a problem.
> - there might be fast path code somewhere in the kernel that becomes
> significantely slower with -Os
I really doubt it. Kernel CPU footprint is dominated by dcache misses. If
-Os reduces icache footprint it may even be a net win; people tend to
benchmark things in tight loops, which favours fast code over small code.
> - I've already seen a report for an ICE in gcc 2.95 of a user compiling
> kernel 2.4 with -Os [1]
Well there's only one way to find out if we'll hit that. How's about you
cook me a patch which switches to -Os unconditionally and we'll see how it
goes?
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [2.6 patch] add a config option for -Os compilation
2003-10-15 23:52 ` Andrew Morton
@ 2003-10-18 10:21 ` Adrian Bunk
2003-10-18 15:45 ` Martin J. Bligh
2003-10-21 8:22 ` Jan-Benedict Glaw
0 siblings, 2 replies; 40+ messages in thread
From: Adrian Bunk @ 2003-10-18 10:21 UTC (permalink / raw)
To: Andrew Morton; +Cc: linux-kernel
On Wed, Oct 15, 2003 at 04:52:05PM -0700, Andrew Morton wrote:
>...
> I really doubt it. Kernel CPU footprint is dominated by dcache misses. If
> -Os reduces icache footprint it may even be a net win; people tend to
> benchmark things in tight loops, which favours fast code over small code.
The main effect of -Os compared to -O2 (besides disabling some
reordering of the code and prefetching) is the disabling of various
alignments. I doubt that's a win on all CPUs.
> > - I've already seen a report for an ICE in gcc 2.95 of a user compiling
> > kernel 2.4 with -Os [1]
>
> Well there's only one way to find out if we'll hit that. How's about you
> cook me a patch which switches to -Os unconditionally and we'll see how it
> goes?
I still dislike it, but the patch is below.
cu
Adrian
--- linux-2.6.0-test5-mm4/arch/arm/Makefile.old 2003-09-25 14:38:18.000000000 +0200
+++ linux-2.6.0-test5-mm4/arch/arm/Makefile 2003-09-25 14:40:47.000000000 +0200
@@ -14,8 +14,6 @@
GZFLAGS :=-9
#CFLAGS +=-pipe
-CFLAGS :=$(CFLAGS:-O2=-Os)
-
ifeq ($(CONFIG_FRAME_POINTER),y)
CFLAGS +=-fno-omit-frame-pointer -mapcs -mno-sched-prolog
endif
--- linux-2.6.0-test5-mm4/arch/h8300/Makefile.old 2003-09-25 14:38:18.000000000 +0200
+++ linux-2.6.0-test5-mm4/arch/h8300/Makefile 2003-09-25 14:38:24.000000000 +0200
@@ -34,7 +34,7 @@
ldflags-$(CONFIG_CPU_H8S) := -mh8300self
CFLAGS += $(cflags-y)
-CFLAGS += -mint32 -fno-builtin -Os
+CFLAGS += -mint32 -fno-builtin
CFLAGS += -g
CFLAGS += -D__linux__
CFLAGS += -DUTS_SYSNAME=\"uClinux\"
--- linux-2.6.0-test8/Makefile.old 2003-10-18 12:15:51.000000000 +0200
+++ linux-2.6.0-test8/Makefile 2003-10-18 12:16:26.000000000 +0200
@@ -275,7 +275,7 @@
CPPFLAGS := -D__KERNEL__ -Iinclude \
$(if $(KBUILD_SRC),-Iinclude2 -I$(srctree)/include)
-CFLAGS := -Wall -Wstrict-prototypes -Wno-trigraphs -O2 \
+CFLAGS := -Wall -Wstrict-prototypes -Wno-trigraphs -Os \
-fno-strict-aliasing -fno-common
AFLAGS := -D__ASSEMBLY__
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [2.6 patch] add a config option for -Os compilation
2003-10-18 10:21 ` Adrian Bunk
@ 2003-10-18 15:45 ` Martin J. Bligh
2003-10-18 17:24 ` Andrew Morton
2003-10-21 8:22 ` Jan-Benedict Glaw
1 sibling, 1 reply; 40+ messages in thread
From: Martin J. Bligh @ 2003-10-18 15:45 UTC (permalink / raw)
To: Adrian Bunk, Andrew Morton; +Cc: linux-kernel
>> I really doubt it. Kernel CPU footprint is dominated by dcache misses. If
>> -Os reduces icache footprint it may even be a net win; people tend to
>> benchmark things in tight loops, which favours fast code over small code.
>
> The main effect of -Os compared to -O2 (besides disabling some
> reordering of the code and prefetching) is the disabling of various
> alignments. I doubt that's a win on all CPUs.
>
>> > - I've already seen a report for an ICE in gcc 2.95 of a user compiling
>> > kernel 2.4 with -Os [1]
>>
>> Well there's only one way to find out if we'll hit that. How's about you
>> cook me a patch which switches to -Os unconditionally and we'll see how it
>> goes?
>
> I still dislike it, but the patch is below.
Please don't - I benchmarked it a while ago, and it's definitely slower.
If you have a puny 128K L2 cache, it might help, but it definitely needs
to be optional.
M.
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [2.6 patch] add a config option for -Os compilation
2003-10-18 15:45 ` Martin J. Bligh
@ 2003-10-18 17:24 ` Andrew Morton
2003-10-18 17:44 ` Adrian Bunk
0 siblings, 1 reply; 40+ messages in thread
From: Andrew Morton @ 2003-10-18 17:24 UTC (permalink / raw)
To: Martin J. Bligh; +Cc: bunk, linux-kernel
"Martin J. Bligh" <mbligh@aracnet.com> wrote:
>
> Please don't - I benchmarked it a while ago, and it's definitely slower.
Alan said he generally found -Os to be faster...
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [2.6 patch] add a config option for -Os compilation
2003-10-18 17:24 ` Andrew Morton
@ 2003-10-18 17:44 ` Adrian Bunk
2003-10-18 17:57 ` Andrew Morton
0 siblings, 1 reply; 40+ messages in thread
From: Adrian Bunk @ 2003-10-18 17:44 UTC (permalink / raw)
To: Andrew Morton; +Cc: Martin J. Bligh, linux-kernel
On Sat, Oct 18, 2003 at 10:24:02AM -0700, Andrew Morton wrote:
> "Martin J. Bligh" <mbligh@aracnet.com> wrote:
> >
> > Please don't - I benchmarked it a while ago, and it's definitely slower.
>
> Alan said he generally found -Os to be faster...
Not exactly:
http://www.ussg.iu.edu/hypermail/linux/kernel/0211.0/1513.html
cu
Adrian
--
"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [2.6 patch] add a config option for -Os compilation
2003-10-18 17:44 ` Adrian Bunk
@ 2003-10-18 17:57 ` Andrew Morton
2003-10-19 15:43 ` Martin J. Bligh
0 siblings, 1 reply; 40+ messages in thread
From: Andrew Morton @ 2003-10-18 17:57 UTC (permalink / raw)
To: Adrian Bunk; +Cc: mbligh, linux-kernel
Adrian Bunk <bunk@fs.tum.de> wrote:
>
> On Sat, Oct 18, 2003 at 10:24:02AM -0700, Andrew Morton wrote:
> > "Martin J. Bligh" <mbligh@aracnet.com> wrote:
> > >
> > > Please don't - I benchmarked it a while ago, and it's definitely slower.
> >
> > Alan said he generally found -Os to be faster...
>
> Not exactly:
> http://www.ussg.iu.edu/hypermail/linux/kernel/0211.0/1513.html
>
http://www.ussg.iu.edu/hypermail/linux/kernel/0308.1/1261.html
And bear in mind that you can see significant changes in benchmark results
between equivalent kernels even when the optimisation level is kept the
same, due to aliasing and alignment luck.
It would take a quite a lot of work to measure this properly. A simple A/B
comparison doesn't cut it.
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [2.6 patch] add a config option for -Os compilation
2003-10-18 17:57 ` Andrew Morton
@ 2003-10-19 15:43 ` Martin J. Bligh
2003-10-19 15:59 ` Adrian Bunk
` (2 more replies)
0 siblings, 3 replies; 40+ messages in thread
From: Martin J. Bligh @ 2003-10-19 15:43 UTC (permalink / raw)
To: Andrew Morton, Adrian Bunk; +Cc: linux-kernel
>> On Sat, Oct 18, 2003 at 10:24:02AM -0700, Andrew Morton wrote:
>> > "Martin J. Bligh" <mbligh@aracnet.com> wrote:
>> > >
>> > > Please don't - I benchmarked it a while ago, and it's definitely slower.
>> >
>> > Alan said he generally found -Os to be faster...
>>
>> Not exactly:
>> http://www.ussg.iu.edu/hypermail/linux/kernel/0211.0/1513.html
>>
>
> http://www.ussg.iu.edu/hypermail/linux/kernel/0308.1/1261.html
>
> And bear in mind that you can see significant changes in benchmark results
> between equivalent kernels even when the optimisation level is kept the
> same, due to aliasing and alignment luck.
>
> It would take a quite a lot of work to measure this properly. A simple A/B
> comparison doesn't cut it.
So why are we changing it then? ;-) We don't seem to have much evidence
either way. What are the distros doing?
M.
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [2.6 patch] add a config option for -Os compilation
2003-10-19 15:43 ` Martin J. Bligh
@ 2003-10-19 15:59 ` Adrian Bunk
2003-10-19 16:25 ` Arjan van de Ven
2003-10-19 18:32 ` Andrew Morton
2 siblings, 0 replies; 40+ messages in thread
From: Adrian Bunk @ 2003-10-19 15:59 UTC (permalink / raw)
To: Martin J. Bligh; +Cc: Andrew Morton, linux-kernel
On Sun, Oct 19, 2003 at 08:43:27AM -0700, Martin J. Bligh wrote:
>...
> So why are we changing it then? ;-) We don't seem to have much evidence
> either way. What are the distros doing?
The exact speed differences need measurements and it might be that
depending on the gcc version and hardware the one or the other is
faster.
I doubt it would make a noticalble difference in either direction for an
average user who runs Mozilla under KDE. -O2 is IMHO the better default
since it's well tested through different gcc versions.
The more important point is that -Os code is significantely smaller
which is important for some applications (e.g. a router-on-a-floppy or
small embedded systems).
> M.
cu
Adrian
--
"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [2.6 patch] add a config option for -Os compilation
2003-10-19 15:43 ` Martin J. Bligh
2003-10-19 15:59 ` Adrian Bunk
@ 2003-10-19 16:25 ` Arjan van de Ven
2003-10-19 18:32 ` Andrew Morton
2 siblings, 0 replies; 40+ messages in thread
From: Arjan van de Ven @ 2003-10-19 16:25 UTC (permalink / raw)
To: Martin J. Bligh; +Cc: Andrew Morton, Adrian Bunk, linux-kernel
[-- Attachment #1: Type: text/plain, Size: 341 bytes --]
On Sun, 2003-10-19 at 17:43, Martin J. Bligh wrote:
> So why are we changing it then? ;-) We don't seem to have much evidence
> either way. What are the distros doing?
in the context of boot/rescuefloppies (yes those pesky black things
still exist) I would seriously consider -Os, esp if there's no big
peformance disadvantage....
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [2.6 patch] add a config option for -Os compilation
2003-10-19 15:43 ` Martin J. Bligh
2003-10-19 15:59 ` Adrian Bunk
2003-10-19 16:25 ` Arjan van de Ven
@ 2003-10-19 18:32 ` Andrew Morton
2003-10-20 14:27 ` Martin J. Bligh
2 siblings, 1 reply; 40+ messages in thread
From: Andrew Morton @ 2003-10-19 18:32 UTC (permalink / raw)
To: Martin J. Bligh; +Cc: bunk, linux-kernel
"Martin J. Bligh" <mbligh@aracnet.com> wrote:
>
> > It would take a quite a lot of work to measure this properly. A simple A/B
> > comparison doesn't cut it.
>
> So why are we changing it then? ;-)
It is very easy to demonstrate that it saves 300 kilobytes of memory.
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [2.6 patch] add a config option for -Os compilation
2003-10-19 18:32 ` Andrew Morton
@ 2003-10-20 14:27 ` Martin J. Bligh
0 siblings, 0 replies; 40+ messages in thread
From: Martin J. Bligh @ 2003-10-20 14:27 UTC (permalink / raw)
To: Andrew Morton; +Cc: bunk, linux-kernel
> "Martin J. Bligh" <mbligh@aracnet.com> wrote:
>>
>> > It would take a quite a lot of work to measure this properly. A simple A/B
>> > comparison doesn't cut it.
>>
>> So why are we changing it then? ;-)
>
> It is very easy to demonstrate that it saves 300 kilobytes of memory.
OK, fair enough - so can we either do:
1) a config option
or
2) if you hate that, at least switch it to -O2 on CONFIG_SMP, on the grounds
that such systems generally have larger caches, and plenty of RAM.
M.
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [2.6 patch] add a config option for -Os compilation
2003-10-18 10:21 ` Adrian Bunk
2003-10-18 15:45 ` Martin J. Bligh
@ 2003-10-21 8:22 ` Jan-Benedict Glaw
1 sibling, 0 replies; 40+ messages in thread
From: Jan-Benedict Glaw @ 2003-10-21 8:22 UTC (permalink / raw)
To: linux-kernel
[-- Attachment #1: Type: text/plain, Size: 1172 bytes --]
On Sat, 2003-10-18 12:21:27 +0200, Adrian Bunk <bunk@fs.tum.de>
wrote in message <20031018102127.GE12423@fs.tum.de>:
> On Wed, Oct 15, 2003 at 04:52:05PM -0700, Andrew Morton wrote:
> > I really doubt it. Kernel CPU footprint is dominated by dcache misses. If
> > -Os reduces icache footprint it may even be a net win; people tend to
> > benchmark things in tight loops, which favours fast code over small code.
>
> The main effect of -Os compared to -O2 (besides disabling some
> reordering of the code and prefetching) is the disabling of various
> alignments. I doubt that's a win on all CPUs.
I definively *like* to see -Os be configureable by user. It's *big* win
for a lowmem system. There, the actual "running speed" may be limited by
HDD swap speed, and having a smaller kernel means having more pages left
to luserspace...
MfG, JBG
--
Jan-Benedict Glaw jbglaw@lug-owl.de . +49-172-7608481
"Eine Freie Meinung in einem Freien Kopf | Gegen Zensur | Gegen Krieg
fuer einen Freien Staat voll Freier Bürger" | im Internet! | im Irak!
ret = do_actions((curr | FREE_SPEECH) & ~(NEW_COPYRIGHT_LAW | DRM | TCPA));
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 40+ messages in thread
[parent not found: <Ip4B.8lT.23@gated-at.bofh.it>]
[parent not found: <Ioi6.7kG.15@gated-at.bofh.it>]
[parent not found: <I2Ue.7PG.3@gated-at.bofh.it>]
[parent not found: <20031015225055.GS17986@fs.tum.de.suse.lists.linux.kernel>]
[parent not found: <H2MN.3cm.7@gated-at.bofh.it>]
* [2.6 patch] add a config option for -Os compilation
@ 2003-09-14 12:16 Adrian Bunk
2003-09-14 12:33 ` Russell King
2003-09-14 13:53 ` Wade
0 siblings, 2 replies; 40+ messages in thread
From: Adrian Bunk @ 2003-09-14 12:16 UTC (permalink / raw)
To: Andrew Morton; +Cc: linux-kernel
The patch below adds a config option OPTIMIZE_FOR_SIZE for telling gcc
to use -Os instead of -O2. Besides this, it removes constructs on
architectures that had a -Os hardcoded in their Makefiles.
It works for me, I'm currently running a 2.6.0-test5 compild with this
option enabled and there are no obvious problems.
The last time I sent this to linux-kernel there were one positive and
zero negative reactions.
diffstat output:
Makefile | 8 +++++++-
arch/arm/Makefile | 2 --
arch/h8300/Makefile | 2 +-
init/Kconfig | 9 +++++++++
4 files changed, 17 insertions(+), 4 deletions(-)
Please apply
Adrian
--- linux-2.6.0-test5-Os/init/Kconfig.old 2003-09-13 17:30:50.000000000 +0200
+++ linux-2.6.0-test5-Os/init/Kconfig 2003-09-13 17:30:59.000000000 +0200
@@ -65,6 +65,15 @@
menu "General setup"
+config OPTIMIZE_FOR_SIZE
+ bool "Optimize for size" if EXPERIMENTAL
+ default n
+ help
+ Enabling this option will pass "-Os" instead of "-O2" to gcc
+ resulting in a smaller kernel.
+
+ If unsure, say N.
+
config SWAP
bool "Support for paging of anonymous memory"
depends on MMU
--- linux-2.6.0-test5-Os/Makefile.old 2003-09-13 17:30:50.000000000 +0200
+++ linux-2.6.0-test5-Os/Makefile 2003-09-13 17:30:59.000000000 +0200
@@ -223,7 +223,7 @@
NOSTDINC_FLAGS = -nostdinc -iwithprefix include
CPPFLAGS := -D__KERNEL__ -Iinclude
-CFLAGS := -Wall -Wstrict-prototypes -Wno-trigraphs -O2 \
+CFLAGS := -Wall -Wstrict-prototypes -Wno-trigraphs \
-fno-strict-aliasing -fno-common
AFLAGS := -D__ASSEMBLY__
@@ -370,6 +370,12 @@
# ---------------------------------------------------------------------------
+ifdef CONFIG_OPTIMIZE_FOR_SIZE
+CFLAGS += -Os
+else
+CFLAGS += -O2
+endif
+
ifndef CONFIG_FRAME_POINTER
CFLAGS += -fomit-frame-pointer
endif
--- linux-2.6.0-test5-Os/arch/arm/Makefile.old 2003-09-13 17:30:50.000000000 +0200
+++ linux-2.6.0-test5-Os/arch/arm/Makefile 2003-09-13 17:30:59.000000000 +0200
@@ -14,8 +14,6 @@
GZFLAGS :=-9
#CFLAGS +=-pipe
-CFLAGS :=$(CFLAGS:-O2=-Os)
-
ifeq ($(CONFIG_FRAME_POINTER),y)
CFLAGS +=-fno-omit-frame-pointer -mapcs -mno-sched-prolog
endif
--- linux-2.6.0-test5-Os/arch/h8300/Makefile.old 2003-09-13 17:30:50.000000000 +0200
+++ linux-2.6.0-test5-Os/arch/h8300/Makefile 2003-09-13 17:30:59.000000000 +0200
@@ -34,7 +34,7 @@
ldflags-$(CONFIG_CPU_H8S) := -mh8300self
CFLAGS += $(cflags-y)
-CFLAGS += -mint32 -fno-builtin -Os
+CFLAGS += -mint32 -fno-builtin
CFLAGS += -g
CFLAGS += -D__linux__
CFLAGS += -DUTS_SYSNAME=\"uClinux\"
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [2.6 patch] add a config option for -Os compilation
2003-09-14 12:16 Adrian Bunk
@ 2003-09-14 12:33 ` Russell King
2003-09-14 13:21 ` Adrian Bunk
2003-09-14 13:53 ` Wade
1 sibling, 1 reply; 40+ messages in thread
From: Russell King @ 2003-09-14 12:33 UTC (permalink / raw)
To: Adrian Bunk; +Cc: Andrew Morton, linux-kernel
On Sun, Sep 14, 2003 at 02:16:56PM +0200, Adrian Bunk wrote:
> The patch below adds a config option OPTIMIZE_FOR_SIZE for telling gcc
> to use -Os instead of -O2. Besides this, it removes constructs on
> architectures that had a -Os hardcoded in their Makefiles.
I'd rather retain the -Os default for ARM please. (The init/Kconfig
defaults it to 'n' for everything.)
--
Russell King (rmk@arm.linux.org.uk) http://www.arm.linux.org.uk/personal/
Linux kernel maintainer of:
2.6 ARM Linux - http://www.arm.linux.org.uk/
2.6 PCMCIA - http://pcmcia.arm.linux.org.uk/
2.6 Serial core
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [2.6 patch] add a config option for -Os compilation
2003-09-14 12:33 ` Russell King
@ 2003-09-14 13:21 ` Adrian Bunk
2003-09-14 14:52 ` Russell King
0 siblings, 1 reply; 40+ messages in thread
From: Adrian Bunk @ 2003-09-14 13:21 UTC (permalink / raw)
To: Andrew Morton, linux-kernel
On Sun, Sep 14, 2003 at 01:33:49PM +0100, Russell King wrote:
> On Sun, Sep 14, 2003 at 02:16:56PM +0200, Adrian Bunk wrote:
> > The patch below adds a config option OPTIMIZE_FOR_SIZE for telling gcc
> > to use -Os instead of -O2. Besides this, it removes constructs on
> > architectures that had a -Os hardcoded in their Makefiles.
>
> I'd rather retain the -Os default for ARM please. (The init/Kconfig
> defaults it to 'n' for everything.)
Below is the patch with the ARM part omitted.
cu
Adrian
--- linux-2.6.0-test5-Os/init/Kconfig.old 2003-09-13 17:30:50.000000000 +0200
+++ linux-2.6.0-test5-Os/init/Kconfig 2003-09-13 17:30:59.000000000 +0200
@@ -65,6 +65,15 @@
menu "General setup"
+config OPTIMIZE_FOR_SIZE
+ bool "Optimize for size" if EXPERIMENTAL
+ default n
+ help
+ Enabling this option will pass "-Os" instead of "-O2" to gcc
+ resulting in a smaller kernel.
+
+ If unsure, say N.
+
config SWAP
bool "Support for paging of anonymous memory"
depends on MMU
--- linux-2.6.0-test5-Os/Makefile.old 2003-09-13 17:30:50.000000000 +0200
+++ linux-2.6.0-test5-Os/Makefile 2003-09-13 17:30:59.000000000 +0200
@@ -223,7 +223,7 @@
NOSTDINC_FLAGS = -nostdinc -iwithprefix include
CPPFLAGS := -D__KERNEL__ -Iinclude
-CFLAGS := -Wall -Wstrict-prototypes -Wno-trigraphs -O2 \
+CFLAGS := -Wall -Wstrict-prototypes -Wno-trigraphs \
-fno-strict-aliasing -fno-common
AFLAGS := -D__ASSEMBLY__
@@ -370,6 +370,12 @@
# ---------------------------------------------------------------------------
+ifdef CONFIG_OPTIMIZE_FOR_SIZE
+CFLAGS += -Os
+else
+CFLAGS += -O2
+endif
+
ifndef CONFIG_FRAME_POINTER
CFLAGS += -fomit-frame-pointer
endif
--- linux-2.6.0-test5-Os/arch/h8300/Makefile.old 2003-09-13 17:30:50.000000000 +0200
+++ linux-2.6.0-test5-Os/arch/h8300/Makefile 2003-09-13 17:30:59.000000000 +0200
@@ -34,7 +34,7 @@
ldflags-$(CONFIG_CPU_H8S) := -mh8300self
CFLAGS += $(cflags-y)
-CFLAGS += -mint32 -fno-builtin -Os
+CFLAGS += -mint32 -fno-builtin
CFLAGS += -g
CFLAGS += -D__linux__
CFLAGS += -DUTS_SYSNAME=\"uClinux\"
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [2.6 patch] add a config option for -Os compilation
2003-09-14 13:21 ` Adrian Bunk
@ 2003-09-14 14:52 ` Russell King
2003-09-25 14:38 ` Adrian Bunk
0 siblings, 1 reply; 40+ messages in thread
From: Russell King @ 2003-09-14 14:52 UTC (permalink / raw)
To: Adrian Bunk; +Cc: Andrew Morton, linux-kernel
On Sun, Sep 14, 2003 at 03:21:43PM +0200, Adrian Bunk wrote:
> On Sun, Sep 14, 2003 at 01:33:49PM +0100, Russell King wrote:
> > On Sun, Sep 14, 2003 at 02:16:56PM +0200, Adrian Bunk wrote:
> > > The patch below adds a config option OPTIMIZE_FOR_SIZE for telling gcc
> > > to use -Os instead of -O2. Besides this, it removes constructs on
> > > architectures that had a -Os hardcoded in their Makefiles.
> >
> > I'd rather retain the -Os default for ARM please. (The init/Kconfig
> > defaults it to 'n' for everything.)
>
> Below is the patch with the ARM part omitted.
But it doesn't make sense - you include a generic configuration option
which people will see, yet it makes no effect on ARM - seems to be rather
silly putting it there in the first place.
Also, do users particularly care what -Os and -O2 mean?
Maybe you need to change init/Kconfig to be something like the following,
and reinstate the change to the ARM makefile:
config OPTIMIZE_FOR_SIZE
bool "Optimize for size" if EXPERIMENTAL
default n if !ARM
default y if ARM
help
Enabling this option will cause the compiler to reduce the code
size of the kernel by disabling certain optimisations. However,
the resulting kernel may run faster due to more efficient
cache utilisation.
If unsure, say N.
--
Russell King (rmk@arm.linux.org.uk) http://www.arm.linux.org.uk/personal/
Linux kernel maintainer of:
2.6 ARM Linux - http://www.arm.linux.org.uk/
2.6 PCMCIA - http://pcmcia.arm.linux.org.uk/
2.6 Serial core
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [2.6 patch] add a config option for -Os compilation
2003-09-14 14:52 ` Russell King
@ 2003-09-25 14:38 ` Adrian Bunk
2003-09-25 18:11 ` Sam Ravnborg
0 siblings, 1 reply; 40+ messages in thread
From: Adrian Bunk @ 2003-09-25 14:38 UTC (permalink / raw)
To: Andrew Morton, linux-kernel, Yoshinori Sato
On Sun, Sep 14, 2003 at 03:52:45PM +0100, Russell King wrote:
>
> But it doesn't make sense - you include a generic configuration option
> which people will see, yet it makes no effect on ARM - seems to be rather
> silly putting it there in the first place.
>
> Also, do users particularly care what -Os and -O2 mean?
The "If unsure, say N." should take care of it. People who really need
small kernels usually know what -Os means.
> Maybe you need to change init/Kconfig to be something like the following,
> and reinstate the change to the ARM makefile:
>
> config OPTIMIZE_FOR_SIZE
> bool "Optimize for size" if EXPERIMENTAL
> default n if !ARM
> default y if ARM
That's a good idea.
The patch below does this for ARM and H8300.
Since there was no H8300 symbol, I added it to arch/h8300/Kconfig
similar to the symbols on other architectures.
> help
> Enabling this option will cause the compiler to reduce the code
> size of the kernel by disabling certain optimisations. However,
> the resulting kernel may run faster due to more efficient
> cache utilisation.
>...
I don't like this part, it would cause confusion. -O2 is more widely
tested, and though if there might be small improvements on some CPUs
with some compiler versions, it's untested whether -Os might cause worse
performance of some fast path code in any area of the kernel.
OPTIMIZE_FOR_SIZE should, although of low risk, be an "only use it if
you know what you are doing" option.
diffstat output for the patch below:
Makefile | 8 +++++++-
arch/arm/Makefile | 2 --
arch/h8300/Kconfig | 4 ++++
arch/h8300/Makefile | 2 +-
init/Kconfig | 10 ++++++++++
5 files changed, 22 insertions(+), 4 deletions(-)
cu
Adrian
--- linux-2.6.0-test5-mm4/init/Kconfig.old 2003-09-25 14:38:18.000000000 +0200
+++ linux-2.6.0-test5-mm4/init/Kconfig 2003-09-25 14:47:12.000000000 +0200
@@ -65,6 +65,16 @@
menu "General setup"
+config OPTIMIZE_FOR_SIZE
+ bool "Optimize for size" if EXPERIMENTAL
+ default y if ARM || H8300
+ default n
+ help
+ Enabling this option will pass "-Os" instead of "-O2" to gcc
+ resulting in a smaller kernel.
+
+ If unsure, say N.
+
config SWAP
bool "Support for paging of anonymous memory"
depends on MMU
--- linux-2.6.0-test5-mm4/Makefile.old 2003-09-25 14:38:18.000000000 +0200
+++ linux-2.6.0-test5-mm4/Makefile 2003-09-25 14:40:26.000000000 +0200
@@ -274,7 +274,7 @@
CPPFLAGS := -D__KERNEL__ -Iinclude \
$(if $(KBUILD_SRC),-Iinclude2 -I$(srctree)/include)
-CFLAGS := -Wall -Wstrict-prototypes -Wno-trigraphs -O2 \
+CFLAGS := -Wall -Wstrict-prototypes -Wno-trigraphs \
-fno-strict-aliasing -fno-common
AFLAGS := -D__ASSEMBLY__
@@ -421,6 +421,12 @@
# ---------------------------------------------------------------------------
+ifdef CONFIG_OPTIMIZE_FOR_SIZE
+CFLAGS += -Os
+else
+CFLAGS += -O2
+endif
+
ifndef CONFIG_FRAME_POINTER
CFLAGS += -fomit-frame-pointer
endif
--- linux-2.6.0-test5-mm4/arch/arm/Makefile.old 2003-09-25 14:38:18.000000000 +0200
+++ linux-2.6.0-test5-mm4/arch/arm/Makefile 2003-09-25 14:40:47.000000000 +0200
@@ -14,8 +14,6 @@
GZFLAGS :=-9
#CFLAGS +=-pipe
-CFLAGS :=$(CFLAGS:-O2=-Os)
-
ifeq ($(CONFIG_FRAME_POINTER),y)
CFLAGS +=-fno-omit-frame-pointer -mapcs -mno-sched-prolog
endif
--- linux-2.6.0-test5-mm4/arch/h8300/Kconfig.old 2003-09-25 14:43:27.000000000 +0200
+++ linux-2.6.0-test5-mm4/arch/h8300/Kconfig 2003-09-25 14:43:44.000000000 +0200
@@ -5,6 +5,10 @@
mainmenu "uClinux/h8300 (w/o MMU) Kernel Configuration"
+config H8300
+ bool
+ default y
+
config MMU
bool
default n
--- linux-2.6.0-test5-mm4/arch/h8300/Makefile.old 2003-09-25 14:38:18.000000000 +0200
+++ linux-2.6.0-test5-mm4/arch/h8300/Makefile 2003-09-25 14:38:24.000000000 +0200
@@ -34,7 +34,7 @@
ldflags-$(CONFIG_CPU_H8S) := -mh8300self
CFLAGS += $(cflags-y)
-CFLAGS += -mint32 -fno-builtin -Os
+CFLAGS += -mint32 -fno-builtin
CFLAGS += -g
CFLAGS += -D__linux__
CFLAGS += -DUTS_SYSNAME=\"uClinux\"
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [2.6 patch] add a config option for -Os compilation
2003-09-25 14:38 ` Adrian Bunk
@ 2003-09-25 18:11 ` Sam Ravnborg
2003-09-26 11:44 ` Russell King
2003-09-26 22:36 ` Adrian Bunk
0 siblings, 2 replies; 40+ messages in thread
From: Sam Ravnborg @ 2003-09-25 18:11 UTC (permalink / raw)
To: Adrian Bunk; +Cc: Andrew Morton, linux-kernel, Yoshinori Sato
On Thu, Sep 25, 2003 at 04:38:45PM +0200, Adrian Bunk wrote:
> --- linux-2.6.0-test5-mm4/init/Kconfig.old 2003-09-25 14:38:18.000000000 +0200
> +++ linux-2.6.0-test5-mm4/init/Kconfig 2003-09-25 14:47:12.000000000 +0200
> @@ -65,6 +65,16 @@
>
> menu "General setup"
>
> +config OPTIMIZE_FOR_SIZE
> + bool "Optimize for size" if EXPERIMENTAL
> + default y if ARM || H8300
> + default n
> + help
> + Enabling this option will pass "-Os" instead of "-O2" to gcc
> + resulting in a smaller kernel.
> +
> + If unsure, say N.
> +
This is a general file, and it is wrong to include architecture specific
knowledge here.
I recall that Roman Zippel introduced "enable" for exactly this purpose.
I looked into Documentation/kbuild/kconfig-language.txt but did not
see it documented - Roman?
Another comment about the naming of the config symbol.
We keep getting more config symbols controlling options to GCC.
A naming scheme like: CONFIG_CC_OPTIMIZE_FOR_SIZE, CONFIG_CC_DEBUG_INFO
is preferable since it give better context information.
Let's start with this option, and rename the others later.
Sam
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [2.6 patch] add a config option for -Os compilation
2003-09-25 18:11 ` Sam Ravnborg
@ 2003-09-26 11:44 ` Russell King
2003-09-26 22:36 ` Adrian Bunk
1 sibling, 0 replies; 40+ messages in thread
From: Russell King @ 2003-09-26 11:44 UTC (permalink / raw)
To: Adrian Bunk, Andrew Morton, linux-kernel, Yoshinori Sato
On Thu, Sep 25, 2003 at 08:11:27PM +0200, Sam Ravnborg wrote:
> On Thu, Sep 25, 2003 at 04:38:45PM +0200, Adrian Bunk wrote:
> > --- linux-2.6.0-test5-mm4/init/Kconfig.old 2003-09-25 14:38:18.000000000 +0200
> > +++ linux-2.6.0-test5-mm4/init/Kconfig 2003-09-25 14:47:12.000000000 +0200
> > @@ -65,6 +65,16 @@
> >
> > menu "General setup"
> >
> > +config OPTIMIZE_FOR_SIZE
> > + bool "Optimize for size" if EXPERIMENTAL
> > + default y if ARM || H8300
> > + default n
> > + help
> > + Enabling this option will pass "-Os" instead of "-O2" to gcc
> > + resulting in a smaller kernel.
> > +
> > + If unsure, say N.
> > +
>
> This is a general file, and it is wrong to include architecture specific
> knowledge here.
In which case we need to replicate the option in each of the per-
architecture files. That seems a bit wasteful though.
I don't think "select" will hack it in this case though.
--
Russell King (rmk@arm.linux.org.uk) http://www.arm.linux.org.uk/personal/
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of: 2.6 PCMCIA - http://pcmcia.arm.linux.org.uk/
2.6 Serial core
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [2.6 patch] add a config option for -Os compilation
2003-09-25 18:11 ` Sam Ravnborg
2003-09-26 11:44 ` Russell King
@ 2003-09-26 22:36 ` Adrian Bunk
1 sibling, 0 replies; 40+ messages in thread
From: Adrian Bunk @ 2003-09-26 22:36 UTC (permalink / raw)
To: Andrew Morton, linux-kernel, Yoshinori Sato
On Thu, Sep 25, 2003 at 08:11:27PM +0200, Sam Ravnborg wrote:
> On Thu, Sep 25, 2003 at 04:38:45PM +0200, Adrian Bunk wrote:
> > --- linux-2.6.0-test5-mm4/init/Kconfig.old 2003-09-25 14:38:18.000000000 +0200
> > +++ linux-2.6.0-test5-mm4/init/Kconfig 2003-09-25 14:47:12.000000000 +0200
> > @@ -65,6 +65,16 @@
> >
> > menu "General setup"
> >
> > +config OPTIMIZE_FOR_SIZE
> > + bool "Optimize for size" if EXPERIMENTAL
> > + default y if ARM || H8300
> > + default n
> > + help
> > + Enabling this option will pass "-Os" instead of "-O2" to gcc
> > + resulting in a smaller kernel.
> > +
> > + If unsure, say N.
> > +
>
> This is a general file, and it is wrong to include architecture specific
> knowledge here.
> I recall that Roman Zippel introduced "enable" for exactly this purpose.
>...
I can't see how this would help in this situation, we need a default,
not a dependency (OPTIMIZE_FOR_SIZE=n should be possible on ARM).
It's not the only option that sets defaults depending on the
architecture and I can't see why it should be a bad thing.
> Another comment about the naming of the config symbol.
> We keep getting more config symbols controlling options to GCC.
> A naming scheme like: CONFIG_CC_OPTIMIZE_FOR_SIZE, CONFIG_CC_DEBUG_INFO
> is preferable since it give better context information.
> Let's start with this option, and rename the others later.
Below is the patch with CONFIG_CC_OPTIMIZE_FOR_SIZE.
> Sam
cu
Adrian
--- linux-2.6.0-test5-mm4/init/Kconfig.old 2003-09-25 14:38:18.000000000 +0200
+++ linux-2.6.0-test5-mm4/init/Kconfig 2003-09-25 14:47:12.000000000 +0200
@@ -65,6 +65,16 @@
menu "General setup"
+config CC_OPTIMIZE_FOR_SIZE
+ bool "Optimize for size" if EXPERIMENTAL
+ default y if ARM || H8300
+ default n
+ help
+ Enabling this option will pass "-Os" instead of "-O2" to gcc
+ resulting in a smaller kernel.
+
+ If unsure, say N.
+
config SWAP
bool "Support for paging of anonymous memory"
depends on MMU
--- linux-2.6.0-test5-mm4/Makefile.old 2003-09-25 14:38:18.000000000 +0200
+++ linux-2.6.0-test5-mm4/Makefile 2003-09-25 14:40:26.000000000 +0200
@@ -274,7 +274,7 @@
CPPFLAGS := -D__KERNEL__ -Iinclude \
$(if $(KBUILD_SRC),-Iinclude2 -I$(srctree)/include)
-CFLAGS := -Wall -Wstrict-prototypes -Wno-trigraphs -O2 \
+CFLAGS := -Wall -Wstrict-prototypes -Wno-trigraphs \
-fno-strict-aliasing -fno-common
AFLAGS := -D__ASSEMBLY__
@@ -421,6 +421,12 @@
# ---------------------------------------------------------------------------
+ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
+CFLAGS += -Os
+else
+CFLAGS += -O2
+endif
+
ifndef CONFIG_FRAME_POINTER
CFLAGS += -fomit-frame-pointer
endif
--- linux-2.6.0-test5-mm4/arch/arm/Makefile.old 2003-09-25 14:38:18.000000000 +0200
+++ linux-2.6.0-test5-mm4/arch/arm/Makefile 2003-09-25 14:40:47.000000000 +0200
@@ -14,8 +14,6 @@
GZFLAGS :=-9
#CFLAGS +=-pipe
-CFLAGS :=$(CFLAGS:-O2=-Os)
-
ifeq ($(CONFIG_FRAME_POINTER),y)
CFLAGS +=-fno-omit-frame-pointer -mapcs -mno-sched-prolog
endif
--- linux-2.6.0-test5-mm4/arch/h8300/Kconfig.old 2003-09-25 14:43:27.000000000 +0200
+++ linux-2.6.0-test5-mm4/arch/h8300/Kconfig 2003-09-25 14:43:44.000000000 +0200
@@ -5,6 +5,10 @@
mainmenu "uClinux/h8300 (w/o MMU) Kernel Configuration"
+config H8300
+ bool
+ default y
+
config MMU
bool
default n
--- linux-2.6.0-test5-mm4/arch/h8300/Makefile.old 2003-09-25 14:38:18.000000000 +0200
+++ linux-2.6.0-test5-mm4/arch/h8300/Makefile 2003-09-25 14:38:24.000000000 +0200
@@ -34,7 +34,7 @@
ldflags-$(CONFIG_CPU_H8S) := -mh8300self
CFLAGS += $(cflags-y)
-CFLAGS += -mint32 -fno-builtin -Os
+CFLAGS += -mint32 -fno-builtin
CFLAGS += -g
CFLAGS += -D__linux__
CFLAGS += -DUTS_SYSNAME=\"uClinux\"
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [2.6 patch] add a config option for -Os compilation
2003-09-14 12:16 Adrian Bunk
2003-09-14 12:33 ` Russell King
@ 2003-09-14 13:53 ` Wade
2003-09-14 14:57 ` Alan Cox
1 sibling, 1 reply; 40+ messages in thread
From: Wade @ 2003-09-14 13:53 UTC (permalink / raw)
To: Linux Kernel Mailing List
Adrian Bunk wrote:
> The patch below adds a config option OPTIMIZE_FOR_SIZE for telling gcc
> to use -Os instead of -O2. Besides this, it removes constructs on
> architectures that had a -Os hardcoded in their Makefiles.
Someone told me that -Os is actually faster than -O2 for Athlons, is
that true?
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [2.6 patch] add a config option for -Os compilation
2003-09-14 13:53 ` Wade
@ 2003-09-14 14:57 ` Alan Cox
2003-09-15 15:15 ` Martin J. Bligh
0 siblings, 1 reply; 40+ messages in thread
From: Alan Cox @ 2003-09-14 14:57 UTC (permalink / raw)
To: Wade; +Cc: Linux Kernel Mailing List
On Sul, 2003-09-14 at 14:53, Wade wrote:
> Adrian Bunk wrote:
> > The patch below adds a config option OPTIMIZE_FOR_SIZE for telling gcc
> > to use -Os instead of -O2. Besides this, it removes constructs on
> > architectures that had a -Os hardcoded in their Makefiles.
>
> Someone told me that -Os is actually faster than -O2 for Athlons, is
> that true?
On gcc 2.95 -Os was faster for most stuff. I would intuitively expect
the best result to be a mix varied by function but I don't think gcc has
the support to do that.
I've also not benched gcc 3.2 -Os v -O2 at real workloads - thats a
nice little project for someone.
^ permalink raw reply [flat|nested] 40+ messages in thread
* Re: [2.6 patch] add a config option for -Os compilation
2003-09-14 14:57 ` Alan Cox
@ 2003-09-15 15:15 ` Martin J. Bligh
0 siblings, 0 replies; 40+ messages in thread
From: Martin J. Bligh @ 2003-09-15 15:15 UTC (permalink / raw)
To: Alan Cox, Wade; +Cc: Linux Kernel Mailing List
--Alan Cox <alan@lxorguk.ukuu.org.uk> wrote (on Sunday, September 14, 2003 15:57:49 +0100):
> On Sul, 2003-09-14 at 14:53, Wade wrote:
>> Adrian Bunk wrote:
>> > The patch below adds a config option OPTIMIZE_FOR_SIZE for telling gcc
>> > to use -Os instead of -O2. Besides this, it removes constructs on
>> > architectures that had a -Os hardcoded in their Makefiles.
>>
>> Someone told me that -Os is actually faster than -O2 for Athlons, is
>> that true?
>
> On gcc 2.95 -Os was faster for most stuff. I would intuitively expect
> the best result to be a mix varied by function but I don't think gcc has
> the support to do that.
>
> I've also not benched gcc 3.2 -Os v -O2 at real workloads - thats a
> nice little project for someone.
I think it depends heavily on the chip - I tried 2.95 and 3.3. For me,
-Os was slower for both, but I have a 2MB L2 cache. If you have a 128K
celeron or something, I'm sure it'd be faster.
M.
^ permalink raw reply [flat|nested] 40+ messages in thread
end of thread, other threads:[~2003-10-21 8:22 UTC | newest]
Thread overview: 40+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-10-15 22:50 [2.6 patch] add a config option for -Os compilation Adrian Bunk
2003-10-15 23:12 ` Andrew Morton
2003-10-15 23:24 ` Adrian Bunk
2003-10-15 23:52 ` Andrew Morton
2003-10-18 10:21 ` Adrian Bunk
2003-10-18 15:45 ` Martin J. Bligh
2003-10-18 17:24 ` Andrew Morton
2003-10-18 17:44 ` Adrian Bunk
2003-10-18 17:57 ` Andrew Morton
2003-10-19 15:43 ` Martin J. Bligh
2003-10-19 15:59 ` Adrian Bunk
2003-10-19 16:25 ` Arjan van de Ven
2003-10-19 18:32 ` Andrew Morton
2003-10-20 14:27 ` Martin J. Bligh
2003-10-21 8:22 ` Jan-Benedict Glaw
[not found] <Ip4B.8lT.23@gated-at.bofh.it>
[not found] ` <Ip4B.8lT.25@gated-at.bofh.it>
[not found] ` <Ip4B.8lT.27@gated-at.bofh.it>
[not found] ` <Ip4B.8lT.29@gated-at.bofh.it>
[not found] ` <Ip4B.8lT.31@gated-at.bofh.it>
[not found] ` <Ip4B.8lT.33@gated-at.bofh.it>
[not found] ` <Ip4B.8lT.35@gated-at.bofh.it>
[not found] ` <Ip4B.8lT.37@gated-at.bofh.it>
[not found] ` <Ip4B.8lT.39@gated-at.bofh.it>
[not found] ` <Ip4B.8lT.41@gated-at.bofh.it>
[not found] ` <Ip4B.8lT.43@gated-at.bofh.it>
[not found] ` <Ip4B.8lT.21@gated-at.bofh.it>
2003-10-19 17:04 ` Ihar 'Philips' Filipau
[not found] <Ioi6.7kG.15@gated-at.bofh.it>
[not found] ` <Ioi6.7kG.17@gated-at.bofh.it>
[not found] ` <Ioi6.7kG.19@gated-at.bofh.it>
[not found] ` <Ioi6.7kG.21@gated-at.bofh.it>
[not found] ` <Ioi6.7kG.23@gated-at.bofh.it>
[not found] ` <Ioi6.7kG.25@gated-at.bofh.it>
[not found] ` <Ioi6.7kG.27@gated-at.bofh.it>
[not found] ` <Ioi6.7kG.29@gated-at.bofh.it>
[not found] ` <Ioi6.7kG.31@gated-at.bofh.it>
[not found] ` <Ioi6.7kG.11@gated-at.bofh.it>
[not found] ` <IorM.7wQ.11@gated-at.bofh.it>
2003-10-19 16:55 ` Ihar 'Philips' Filipau
[not found] <I2Ue.7PG.3@gated-at.bofh.it>
[not found] ` <I2Ue.7PG.5@gated-at.bofh.it>
[not found] ` <I2Ue.7PG.7@gated-at.bofh.it>
[not found] ` <I2Ue.7PG.9@gated-at.bofh.it>
[not found] ` <I2Ue.7PG.11@gated-at.bofh.it>
[not found] ` <I2Ue.7PG.13@gated-at.bofh.it>
[not found] ` <I2Ue.7PG.1@gated-at.bofh.it>
[not found] ` <ImzK.4TR.25@gated-at.bofh.it>
[not found] ` <ImzK.4TR.23@gated-at.bofh.it>
[not found] ` <InYQ.6OJ.21@gated-at.bofh.it>
2003-10-19 16:05 ` Ihar 'Philips' Filipau
2003-10-19 16:14 ` Wichert Akkerman
2003-10-19 16:31 ` Valdis.Kletnieks
2003-10-19 16:57 ` Maciej Zenczykowski
2003-10-19 18:00 ` Valdis.Kletnieks
[not found] <20031015225055.GS17986@fs.tum.de.suse.lists.linux.kernel>
[not found] ` <20031015161251.7de440ab.akpm@osdl.org.suse.lists.linux.kernel>
[not found] ` <20031015232440.GU17986@fs.tum.de.suse.lists.linux.kernel>
[not found] ` <20031015165205.0cc40606.akpm@osdl.org.suse.lists.linux.kernel>
[not found] ` <20031018102127.GE12423@fs.tum.de.suse.lists.linux.kernel>
[not found] ` <649730000.1066491920@[10.10.2.4].suse.lists.linux.kernel>
[not found] ` <20031018102402.3576af6c.akpm@osdl.org.suse.lists.linux.kernel>
[not found] ` <20031018174434.GJ12423@fs.tum.de.suse.lists.linux.kernel>
[not found] ` <20031018105733.380ea8d2.akpm@osdl.org.suse.lists.linux.kernel>
2003-10-18 19:19 ` Andi Kleen
2003-10-19 13:56 ` Ingo Oeser
2003-10-19 14:09 ` Michael Buesch
2003-10-19 17:37 ` Sam Ravnborg
[not found] <H2MN.3cm.7@gated-at.bofh.it>
[not found] ` <H366.3IC.9@gated-at.bofh.it>
[not found] ` <H3fO.3VO.13@gated-at.bofh.it>
[not found] ` <H3IO.4yt.9@gated-at.bofh.it>
[not found] ` <HWvz.5PI.9@gated-at.bofh.it>
[not found] ` <I1EP.5QO.1@gated-at.bofh.it>
2003-10-18 17:10 ` Ihar 'Philips' Filipau
[not found] ` <20031019113743.GO12423@fs.tum.de>
2003-10-19 14:15 ` Ihar 'Philips' Filipau
2003-10-19 15:40 ` Martin J. Bligh
-- strict thread matches above, loose matches on Subject: below --
2003-09-14 12:16 Adrian Bunk
2003-09-14 12:33 ` Russell King
2003-09-14 13:21 ` Adrian Bunk
2003-09-14 14:52 ` Russell King
2003-09-25 14:38 ` Adrian Bunk
2003-09-25 18:11 ` Sam Ravnborg
2003-09-26 11:44 ` Russell King
2003-09-26 22:36 ` Adrian Bunk
2003-09-14 13:53 ` Wade
2003-09-14 14:57 ` Alan Cox
2003-09-15 15:15 ` Martin J. Bligh
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.