Hello Gabriel,
Gabriel Paubert wrote:
On Wed, Jan 16, 2008 at 04:55:19PM +0300, Sergei Poselenov wrote:
Hello,
I've just noted an error in my calculations: not 40%, but 10%
regression (used gdb to do the calculations and forgot to convert
inputs to float). Sorry.
But the problem still persists for me - I'm building an embedded
firmware (U-Boot) and it doesn't fit into the reserved space
anymore.
[snipped]
As for the CSiBE results - the average regression is
3%, including top 3 winners:
100% (32768 vs 16384 for "linux-2.4.23-pre3-testplatform -
arch/testplatform/kernel/init_task")
A change from an exact power of 2 to the next one looks very
suspiscious: I seriously doubt that it is a code generation
or instruction choice issue. While there might be a relatively
small increase in size inherent to the compiler, it looks like
it then goes to a "round to the next power of 2" step.
Probably your are right.
Do you set the right options for your particular processor
(-Os might not override some scheduling decisions and the
default target processor might have changed between GCC
releases)?
I don't know now, actually, this is what I'm asking. As for the
target processor - as I stated in the initial message:
...
Currently, it builds as following:
ppc-linux-gcc -g -Os -fPIC -ffixed-r14 -meabi -fno-strict-aliasing
-D__KERNEL__ -DTEXT_BASE=0xfffc0000 -I/work/psl/tmp/u-boot/include
-fno-builtin -ffreestanding -nostdinc -isystem
/opt/eldk-4.2-01-08/usr/bin/../lib/gcc/powerpc-linux/4.2.2/include
-pipe -DCONFIG_PPC -D__powerpc__ -DCONFIG_4xx -ffixed-r2 -ffixed-r29
-mstring -msoft-float -Wa,-m440 -mcpu=440 -DCONFIG_440=1 -Wall
-Wstrict-prototypes -c -o interrupts.o interrupts.c
...
Note the "-mcpu=440" switch.
I removed all "-ffixed" option (just for test - we surely need them)
- it doesn't change the size of the resultant gcc-4.2.2 code.
Regards,
Sergei
Regards,
Gabriel