dmd codegen improvements
Ivan Kazmenko via Digitalmars-d
digitalmars-d at puremagic.com
Tue Aug 18 06:58:28 PDT 2015
On Tuesday, 18 August 2015 at 10:45:49 UTC, Walter Bright wrote:
> ...
> 3. data flow analysis optimizations like constant propagation,
> dead code elimination, register allocation, loop invariants,
> etc.
>
> Modern compilers (including dmd) do all three.
>
> So if you're comparing code generated by dmd/gdc/ldc, and
> notice something that dmd could do better at (1, 2 or 3),
> please let me know. Often this sort of thing is low hanging
> fruit that is fairly easily inserted into the back end.
> ...
I've once tried to trace the slowdown cause in a simple program
and reduced it to https://issues.dlang.org/show_bug.cgi?id=11821,
I think if falls under point 3 in your post (redundant
instruction in a simple loop). Despite 1.5 years have passed,
the issue still stands with 2.068.0.
That's for -m32. The -m64 version of the loop does not look as
having a redundant instruction to me, but is still longer than
the output of GDC or LDC.
More information about the Digitalmars-d
mailing list