Re: GCC and SPARC leaf procedures

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
>>
>>
>>     
>
>
>       
>
>   





[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux