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.