On 9/27/2014 3:26 PM, Brad Roberts via Digitalmars-d wrote:
What we're seeing here is pretty much the same problem that early c++ suffered
from: abstraction penalty.  It took years of work to help overcome it, both from
the compiler and the library.  Not having trivial functions inlined and
optimized down through standard techniques like dead store elimination, value
range propagation, various loop restructurings, etc means that code will look
like what Walter and you have shown.  Given DMD's relatively weak inliner, I'm
not shocked by Walter's example.  I am curious why ldc failed to inline those
functions.

Again, this accumulation of barnacles is not a failure of the optimizer. It's a failure of adding gee-gaws to the source code without checking their effect.

Reply via email to