GCC-4.0 vs GCC-3.3.6 ia32 -Os: code size increase from 261 to 5339 bytes

Daniel Berlin dberlin@dberlin.org
Sat May 21 08:45:00 GMT 2005


On Fri, 2005-05-20 at 17:44 +0200, Giovanni Bajo wrote:
> Etienne Lorrain <etienne_lorrain@yahoo.fr> wrote:
> 
> > etienne@cygne:~/projet/gujin$ gcc -Os tst.c -c -o tst.o && size tst.o
> >    text    data     bss     dec     hex filename
> >     261       0       0     261     105 tst.o
> > etienne@cygne:~/projet/gujin$ ../toolchain/bin/gcc -Os tst.c -c -o tst.o
> &&
> > size tst.o
> >    text    data     bss     dec     hex filename
> >    5339       0       0    5339    14db tst.o
> > etienne@cygne:~/projet/gujin$
> 
> It's another issue with SRA and -Os. With an old 4.1, I have:
> 
> $ ./xgcc -c -Os -B. btst.c && size btst.o
>    text    data     bss     dec     hex filename
>    5339       0       0    5339    14db btst.o
> $ ./xgcc -c -Os -fno-tree-sra -B. btst.c && size btst.o
>    text    data     bss     dec     hex filename
>     224       0       0     224      e0 btst.o
> 
> So we're actually better than 3.3, after we disable -ftree-sra. I guess SRA
> should be tuned (disabled?) for -Os.

Structure aliasing should be able to make up for turning off SRA, i'm
guessing, at least as far as propagating constants and DCE is concerned.

You could test this by seeing if -fno-tree-sra -fno-tree-salias produces
an increased code size over the above.

> 
> Please, do file a bugreport.




More information about the Gcc mailing list