On the D Blog: Lomuto's Comeback
Andrei Alexandrescu
SeeWebsiteForEmail at erdani.com
Tue Aug 4 13:50:21 UTC 2020
On 8/4/20 9:49 AM, Andrei Alexandrescu wrote:
> On 8/4/20 4:19 AM, Iain Buclaw wrote:
>> On 04/08/2020 03:14, Andrei Alexandrescu wrote:
>>> Interesting, thanks!
>>>
>>
>> Did a quick benchmark for n in `seq 1 10` ./lomuto.exe ${n}000000...
> [snip]
>> Looks good, so committing patch. :-)
>
> Awesome, thanks! That does solve a puzzler I had while benchmarking.
>
> I'm thinking the story of discovering and fixing this would be a great
> follow-up in the blog. It doesn't quite mesh with Mike's current
> introductory series, but it could be done as an intermezzo a la "Now For
> Something Completely Different (And Much Lower Level)".
>
> Sketch of an intro:
>
> Upon reading "Lomuto's Comeback" in the D blog, I noticed the
> performance were consistently juuust a bit worse for the D version than
> for the C++ version for the same source code. My own measurements
> confirmed the same. That bothered me at two levels. First, people
> unfamiliar with the D language would form the opinion that D cannot
> reach the efficiency of C++. Second, as the gdc creator and maintainer,
> I knew for a fact the produced code must be literally identical. Any
> difference would pin point a bug somewhere in the code generation
> pipeline. So I set out to find it and fix it. This is the story of that
> investigation, which will take us through looking through disassembly,
> finding the culprit, devising a fix, confirming with measurements, and
> patching the open-source gdc compiler.
>
> ...
Oh, and there are a few comments to the original blog post I'd be glad
to respond to in an appendix.
More information about the Digitalmars-d-announce
mailing list