Jason House Wrote: > Craig Black Wrote: > > > > One more thing - to clarify, Craig, are you implying that it's acceptable > > > for performance to be within 20%? If not, there are tweaks on the > > > algorithmic side we can do to improve sorting. > > > > 20% slower would be acceptable if I didn't have to do my own inlining. > > Closing the gap even more would be nice. Twice as slow is not acceptable. > > > > -Craig > > I wish I had your problems. I ported a sizable set of C++ code to D2 and > discovered D2 with dmd was 50x slower than C++ with gcc! I've been to > busy/disappointed to track down the bug(s) causing such a slowdown. If anyone > is sufficiently inspired to find the bugs, I can make the GPL source code > available.
I should add that I strongly suspect failure to inline as a cause. The C++ code has lots of mini functions returning compile-time constants. I know that the C++ code started out as low level code aimed at maximum performance and then gradually got cleaned up. Any cleanup that confused gcc's optimizer was rejected/reworked. The code may be closely tied to gcc's optimization/inlining, but dmd should come close. 20% slower would be acceptable.
