http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46278

Georg-Johann Lay <gjl at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Last reconfirmed|                            |2011-07-07
                 CC|avr at gjlay dot de         |gjl at gcc dot gnu.org
      Known to work|                            |3.4.6
   Target Milestone|---                         |4.7.0
      Known to fail|                            |4.6.1, 4.7.0

--- Comment #4 from Georg-Johann Lay <gjl at gcc dot gnu.org> 2011-07-07 
12:19:13 UTC ---
For the Created attachment 22240 "vektor-zeichen-i.c"
   http://gcc.gnu.org/bugzilla/attachment.cgi?id=22240
I get the following sizes (-Os -mmcu=atmega128):

avr-gcc-4.6.1:
   text    data     bss     dec     hex filename
   1076       0     190    1266     4f2 vektor-zeichen-i.o

avr-gcc-4.7.0:
   text    data     bss     dec     hex filename
   1088       0     190    1278     4fe vektor-zeichen-i.o

avr-gcc-4.7.0 with patch:
   text    data     bss     dec     hex filename
    728       0     190     918     396 vektor-zeichen-i.o


For the Created attachment 24582 "snake.c"
   http://gcc.gnu.org/bugzilla/attachment.cgi?id=24582
I get the following sizes (-Os -mmcu=atmega168 -std=gnu99):

avr-gcc-4.6.1:
   text    data     bss     dec     hex filename
   1549       0       0    1549     60d snake-i.o

avr-gcc-4.7.0
   text    data     bss     dec     hex filename
   1625       0       0    1625     659 snake-i.o

avr-gcc-4.7.0 with patch:
   text    data     bss     dec     hex filename
   1507       0       0    1507     5e3 snake-i.o

the "with patch" version patches by the tentative patch attached in
http://gcc.gnu.org/ml/gcc-patches/2011-07/msg00437.html

This shows that the fake X addresses increase the code size and that avoiding
fake X addresses as proposed by the patch are pointing into the right
direction.

BTW: With avr-gcc-3.4.6 I get a codesize of ~1400 bytes for the "snake.c"
testcase which is because the old compiler is smarter with register allocation
and no function needs a frame whereas 4.7 needs frame for some functions.

But that's a different story.

Reply via email to