Templates are slow.

H. S. Teoh via Digitalmars-d digitalmars-d at puremagic.com
Thu Sep 8 10:08:37 PDT 2016


On Thu, Sep 08, 2016 at 04:37:36PM +0000, Stefan Koch via Digitalmars-d wrote:
[...]
> Also we need to special case ranges in general.
> And try harder to inline calls to range functions.
> Maybe even early in the frontend.
[...]

Yeah, dmd's inliner is really pessimistic. It gives up too easily, and
as a result often misses a whole series of further opportunities that
could have opened up, had it decided to inline.

Having range-specific optimizations is a good idea, I think.  Since it's
one of D's big selling points, it needs to be as high-performance as we
can possibly make it.  I think there is a lot we can do in this area
that we can't do as general optimizations; range-based code has certain
recurring structures that should be highly-exploitable in terms of
optimization opportunities.

IME I've found that GDC is much better at optimizing range-based code
because of its aggressive inliner (and also better loop optimization
algorithms); but there's probably still room for range-specific
optimizations that a general optimizer like the gcc backend wouldn't
have.


T

-- 
Democracy: The triumph of popularity over principle. -- C.Bond


More information about the Digitalmars-d mailing list