On inlining in D libraries

Jonathan M Davis jmdavisProg at gmx.com
Mon Sep 9 21:02:21 PDT 2013


On Monday, September 09, 2013 18:58:47 Dmitry Olshansky wrote:
> 09-Sep-2013 18:39, Joseph Rushton Wakeling пишет:
> > On 09/09/13 16:34, Dmitry Olshansky wrote:
> >> On the bright side of things std.regex is real fast on LDC *when
> >> hacked* to
> >> inline the critical bits :)
> > 
> > Do you mean when manually inlined, or when the design is tweaked to
> > facilitate inlining?
> 
> When I put extra () to indicate that said functions are templates.
> Then compiler gets its grip on them and finally inlines.
> Otherwise it generates calls and links in object code from libphobos.
> 
> Which is the whole reason for the topic - is THAT is the way to go?
> Shouldn't compiler look into source for inlinable stuff (when source is
> available)?

The compiler should definitely be able to look at non-templated functions and 
inline them where appropriate. I expect that it will really hurt performance 
in general if it doesn't - especially with stuff like getters or setters. I 
don't know what the best way would be for the compiler to go about doing that 
and have no idea how the inliner currently works, but I don't think that 
there's any question that it needs to.

- Jonathan M Davis


More information about the Digitalmars-d mailing list