[dmd-internals] 3rd Biweekly Sprint Planning

Iain Buclaw via dmd-internals dmd-internals at puremagic.com
Wed Aug 12 00:00:01 PDT 2015


On 12 August 2015 at 08:40, Martin Nowak via dmd-internals <
dmd-internals at puremagic.com> wrote:

> On Wednesday, 12 August 2015 at 00:44:19 UTC, Walter Bright wrote:
>
>> 30% is a problem, but not a disaster. Some mitigating factors:
>>
>> 1. I believe that there is an excessive number of template instantiations
>> going on. This is borne out by the profile results you supplied (thank
>> you). I.e. it should not be necessary to instantiate a template in order to
>> determine if it has already been instantiated.
>>
>
> Yes, but it's seems a bit unrealistic to rewrite template instantiation
> and make a ddmd switch in one release.
>
> 2. Not much effort has been expended in profiling dmd in a while. I
>> suspect there is more unrecognized low hanging fruit to speed it up.
>>
>
> ???
> Look at the profile again, there is nothing left but a smarter template
> instantiation (it dominates 65% when accounting for self+child time).
> Last time I squeezed 1% out of the compiler I had to rewrite StringTable.
>
> 3. dmd for Windows is compiled by the same backend as dmd has, so there
>> shouldn't be a speed difference there.
>>
>
> That's true, the slowdown would only hit half of our user base.
>
> 4. I want to unwind the changes that resulted in the large dmd slowdowns
>> that recently appeared and find other ways.
>>
>
> That only affected single file compilation, so it doesn't help.
> Also we can't undo this w/o reintroducing bugs.
>
> 5. Having the source code in D offers possibilities for optimization that
>> are not so practical in C++ source.
>>
>
> That's a vague hope at best. In fact we'll first have to deal with small
> slowdowns caused by D, e.g. unnecessary initialization.
>
>
> If you want to compensate the slowdown by optimizing the compiler we
> should first try to improve our template instantiation, then do the switch.
> https://trello.com/c/L0nV131G/17-investigate-fix-compiler-slowdown
>
> https://github.com/D-Programming-Language/dmd/pull/4780#issuecomment-124087604
>
> Let me try if I can get ddmd numbers for ldc, that seems like a more
> feasible approach to me.


For the sake of completeness, I can backport cppmangle from 2.067 down to
gdc to allow you to test that also, I have already verified that it is all
that's needed to build ddmd (with a couple of small omissions or changes)
and the resultant compile passes the D2 testsuite.

Regards
Iain
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/dmd-internals/attachments/20150812/9d6e5a69/attachment-0001.html>


More information about the dmd-internals mailing list