August 04, 2020
On Tuesday, 4 August 2020 at 12:55:44 UTC, Seb wrote:
> There was a recent internal discussion and everyone on the D dev team (except Walter) agreed that ...

This seems to be a recurring trend lately.


August 04, 2020
On Tuesday, 4 August 2020 at 12:42:04 UTC, Steven Schveighoffer wrote:
> On 8/4/20 12:41 AM, Mathias LANG wrote:
>> [...]
>
> Looking at that change, a few functions were force-inlined. Most of them were trivial.
>
> And I don't think these are ones that are used in a lot of places. Phobos is compiled all-at-once. So you can't explain the slowdown by multiple instances of compilation.
>
> Has anyone profiled to see where the slowdown is? If I remove the pragma(inline) from the two functions T_SHA2_0_15 and T_SHA2_16_79, the compile time comes back to normal.
>
> Looking at uses of those functions I get a total of 80 uses. Considering the compile time goes from 12 seconds on my system to 92 seconds, that's a full second to inline each call. Something doesn't add up, it can't be that bad.
>

Instruction cache thrashing. The bane of overzealous inlining and code geenration.
August 04, 2020
On Tue, Aug 04, 2020 at 10:13:02PM +0000, Patrick Schluter via Digitalmars-d wrote:
> On Tuesday, 4 August 2020 at 12:42:04 UTC, Steven Schveighoffer wrote:
[...]
> > Looking at uses of those functions I get a total of 80 uses. Considering the compile time goes from 12 seconds on my system to 92 seconds, that's a full second to inline each call. Something doesn't add up, it can't be that bad.
> > 
> 
> Instruction cache thrashing. The bane of overzealous inlining and code geenration.

But this is a problem with long *compile* times, not long runtimes. Something screwy is going on inside dmd.

Then again, I never fully trusted dmd's inliner... it has been a source of nasty codegen bugs in the past, like wrong-code bugs that appear when you compile with -O -inline but disappear when you omit either or both options.

As someone has said, if you care about runtime performance, don't bother with dmd, use ldc or gdc.  Dmd is really only useful for lightning fast compile times; if even that has gone out the window, then I've just about lost all reasons to use dmd at all.


T

-- 
"Computer Science is no more about computers than astronomy is about telescopes." -- E.W. Dijkstra
August 04, 2020
On Tuesday, 4 August 2020 at 22:24:51 UTC, H. S. Teoh wrote:
> don't bother with dmd, use ldc or gdc.  Dmd is really only useful for lightning fast compile times; if even that has gone out the window, then I've just about lost all reasons to use dmd at all.

Not yet, dmd is still blazingly fast when compiling "simple" code:

https://github.com/nordlow/compiler-benchmark#sample-run-output

Pay special attention to the Rust-numbers.
August 05, 2020
On Tuesday, 4 August 2020 at 22:40:58 UTC, Per Nordlöw wrote:
> On Tuesday, 4 August 2020 at 22:24:51 UTC, H. S. Teoh wrote:
>> don't bother with dmd, use ldc or gdc.  Dmd is really only useful for lightning fast compile times; if even that has gone out the window, then I've just about lost all reasons to use dmd at all.
>
> Not yet, dmd is still blazingly fast when compiling "simple" code:
>
> https://github.com/nordlow/compiler-benchmark#sample-run-output
>
> Pay special attention to the Rust-numbers.

This table is very awkward too read.
The columns Time and Slowdown are cut off.
I'd like to suggest to hyphenate 'Tem-plated' to reduce the width of that column and move the 'exec path' column (which tells the used language, too) to the right hand edge of the table. Thanks.
August 05, 2020
On Wednesday, 5 August 2020 at 13:22:22 UTC, wjoe wrote:
> This table is very awkward too read.
> The columns Time and Slowdown are cut off.
> I'd like to suggest to hyphenate 'Tem-plated' to reduce the width of that column and move the 'exec path' column (which tells the used language, too) to the right hand edge of the table. Thanks.

Thanks for the feedback.

I've updated the presentation according to your preferences:

https://github.com/nordlow/compiler-benchmark#sample-run-output
August 06, 2020
On Wednesday, 5 August 2020 at 23:38:03 UTC, Per Nordlöw wrote:
> On Wednesday, 5 August 2020 at 13:22:22 UTC, wjoe wrote:
>> This table is very awkward too read.
>> The columns Time and Slowdown are cut off.
>> I'd like to suggest to hyphenate 'Tem-plated' to reduce the width of that column and move the 'exec path' column (which tells the used language, too) to the right hand edge of the table. Thanks.
>
> Thanks for the feedback.
>
> I've updated the presentation according to your preferences:
>
> https://github.com/nordlow/compiler-benchmark#sample-run-output

That's perfect, thanks! :)
1 2
Next ›   Last »