This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/49881] [AVR] Inefficient stack manipulation around calls
- From: "rth at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 28 Jul 2011 15:44:36 +0000
- Subject: [Bug target/49881] [AVR] Inefficient stack manipulation around calls
- Auto-submitted: auto-generated
- References: <bug-49881-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49881
Richard Henderson <rth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #24848|0 |1
is obsolete| |
--- Comment #4 from Richard Henderson <rth at gcc dot gnu.org> 2011-07-28 15:43:49 UTC ---
Created attachment 24857
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=24857
patch to generate pushes
Really just a simple matter of defining the right stuff.
On the aforementioned test case we now get
lds r24,a1+1
push r24
lds r24,a1
push r24
ldd r24,Y+1
push r24
ld r24,Y
push r24
push r15
push r14
rcall printf
and
text data bss dec hex filename
1487 32 0 1519 5ef z.o
which is even better than the hacky A_O_A patch, and
nearly 1K smaller than the unpatched output.
Would one of you be so kind as to do a full test run?
I don't have avr-libc et al set up on this machine...