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.