17-Nov-2013 16:36, Jonathan M Davis пишет:
On Sunday, November 17, 2013 13:06:11 Chris Nicholson-Sauls wrote:
Something I'm wondering: if one were to split the implementation
along these lines:


void error (string file = __FILE__, size_t line = __LINE__,
Args...) (string msg, Args args) {
      errorImpl(file, line, msg, args);
}

void errorImpl (Args...) (string file, size_t line, string msg,
Args args) {...}


What are the chances of the middle-man function being inlined,
thus cutting down on template bloat in the final product?  I
should hope it would be practically guaranteed.

Without using -inline, the odds are zero. With the -inline... maybe. To be
honest, dmd's inliner is horrible. e.g. it completely fails to inline any of
std.ascii right now even though almost everything in there is a one line
function.

At least we should fix this embarrassing limitation that kills inlining of std.ascii on ALL compilers.

https://d.puremagic.com/issues/show_bug.cgi?id=10985

And it's not only std.ascii pretty much all non-templated stuff.

We really, really need to improve the inliner.

Amen.

--
Dmitry Olshansky

Reply via email to