No problem Josef, however, I have tested that with GCC 3.4.4 and I'm pretty sure it does the optimization there too. Maybe you had an error during the cross-compiler build? PS: please always reply to the mailing list Josef Ahmad wrote: > Eh, you gave me the solution: I was using the version 3.4.4 of gcc. > I've just tried to compile my source code with gcc 4.4.2 and the optimization works. > > It's kind of weird, because there is an implementation for the leaf procedures optimization even in the former version, but perhaps it did not work yet. > > Now the problem is partially solved, because I am using a porting of gcc based on the version 3.4.4, and I would like to know how to obtain a leaf procedure optimization (if possible) on that version. Otherwise, I think I have to plan to update the porting to a newest version of gcc. > > Thank you! > > Josef > > --- On Fri, 10/22/10, Jorge PEREZ <jorge.perez@xxxxxxxx> wrote: > > >> From: Jorge PEREZ <jorge.perez@xxxxxxxx> >> Subject: GCC and SPARC leaf procedures >> To: gcc-help@xxxxxxxxxxx >> Cc: josef_ahm@xxxxxxxxx >> Date: Friday, October 22, 2010, 10:03 AM >> Hello Josef >> >> I was intrigued by your email since I actually think that >> GCC performs >> the leaf procedure optimization as indicated by the SPARC >> V8 manual ( >> www.*sparc*.org/standards/*V8*.pdf p. 194) >> >> However, note that there are certain conditions that must >> be met in >> order to allow such optimizations, quoting the above >> referenced manual: >> >> Some leaf procedures can be made to operate without their >> own register >> window >> or stack frame, using their callerâs instead. This can be >> done when the >> candidate >> leaf procedure meets all of the following conditions13: >> Contains no references to %sp, except in its SAVE >> instruction >> Contains no references to %fp >> Refers to (or can be made to refer to) no more than 8 of >> the 32 integer >> regis- >> ters14, inclusive of %o7 (the âreturn addressâ). >> >> Actually there is a good example in a recent thread >> http://gcc.gnu.org/ml/gcc-help/2010-10/msg00249.html >> where you can see that in the function "somme", which I >> think is a leaf >> procedure, the SAVE and RESTORE instructions have been >> removed. What do >> you think? >> >> >> Otherwise, which GCC version are you using? I don't think >> that can be >> related to that, but just to be sure. >> >> Cheers, >> >> >> George >> >> >> > > > > >