GDC and leaf functions
Iain Buclaw
ibuclaw at ubuntu.com
Mon Mar 4 09:35:31 PST 2013
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. Leaf functions in C require explicit attributes to mark
them. Now that we've integrated UDA attributes into gcc attributes, we
need to start building on what is needed to be implemented. :)
import gcc.attributes;
@attribute ("leaf") int leaf;
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/3513332d/attachment.html>
More information about the Digitalmars-d
mailing list