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