GDC and leaf functions

Iain Buclaw ibuclaw at ubuntu.com
Mon Mar 4 10:02:07 PST 2013


On Mar 4, 2013 5:46 PM, "David Nadlinger" <see at klickverbot.at> wrote:
>
> On Monday, 4 March 2013 at 17:35:45 UTC, Iain Buclaw wrote:
>>
>> On Mar 4, 2013 3:27 PM, "Manu" <turkeyman at gmail.com> wrote:
>>>
>>>
>>> I'm doing a lot of experiments with GDC, and I'm noticing that leaf
>>
>> functions are still generating a stack frame and doing pointless work...
>>>
>>>
>>> int leaf() pure nothrow
>>> {
>>>   return 0;
>>> }
>>>
>>> compile with -frelease -finline -O3, etc
>>>
>>> I expect 2 opcodes, load immediate and return, but I get a whole
>>
>> pointless function including memory access O_O
>>>
>>>
>>> Any ideas? Is this normal?
>>
>>
>> I'd expect so.
>
>
> ?!
>
> I think you are seriously underestimating GCC here... ;)
>

I usually do.  :p

Regards
-- 
Iain Buclaw

*(p < e ? p++ : p) = (c & 0x0f) + '0';
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20130304/d159683f/attachment.html>


More information about the Digitalmars-d mailing list