On Wednesday, 19 August 2015 at 11:22:09 UTC, Dmitry Olshansky
wrote:
On 18-Aug-2015 15:37, Vladimir Panteleev wrote:
I think stability of the DMD backend is a goal of much higher
value than
the performance of the code it emits. DMD is never going to
match the
code generation quality of LLVM and GCC, which have had many,
many
man-years invested in them. Working on DMD optimizations is
essentially
duplicating this work, and IMHO I think it's not only a waste
of time,
but harmful to D because of the risk of regressions.
How about stress-testing with some simple fuzzer:
1. Generate a sequence of pluasable expressions/functions.
2. Spit out results via printf.
3. Permute -O -inline and compare the outputs.
Tools like csmith [0] are surprisingly good at finding ICEs, but
useless for performance regressions.
A "dsmith" would probably find lots of bugs in the dmd backend.
[0] https://embed.cs.utah.edu/csmith/