powercp-linux cross GCC 4.2 vs GCC 4.0.0: -Os code size regression?

Sergei Poselenov sposelenov@emcraft.com
Thu Jan 17 12:47:00 GMT 2008


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
> 



More information about the Gcc mailing list