On Tue, Dec 09, 2014 at 10:08:35PM +0300, Dmitry Olshansky via Digitalmars-d wrote: > 09-Dec-2014 20:54, H. S. Teoh via Digitalmars-d пишет: > >On Tue, Dec 09, 2014 at 07:16:56PM +0300, Dmitry Olshansky via Digitalmars-d > >wrote: > >>08-Dec-2014 18:18, H. S. Teoh via Digitalmars-d пишет: [...] > >>>Yeah, I find in my own experience that gdc -O3 tends to produce > >>>code that's consistently ~20% faster than dmd -O, especially in > >>>compute-intensive code. > >> > >>And that's not nearly enough. Also both LDC & GDC often can't inline > >>many functions from phobos due to separate compilation. > >[...] > > > >Really? Most of the Phobos function I use are templates, so inlining > >shouldn't be a problem, should it? Besides, gdc is far better at > >inlining that dmd ever was, though of course there are some > >constructs that the front-end doesn't inline, and the backend doesn't > >have enough info to do so. This is an area that should be improved. > > > > std.ascii.isWhite ... and there are plenty of things our templates > inevitably unfold to. I mean come on phobos library is big pile of > object code, it can't be all templates. > > Last time I checked if you copy-paste isWhite it to your source code > it gets much faster then std one because of inlining. [...]
Hmm. Would it help to change isWhite into a template function? T -- It only takes one twig to burn down a forest.