On Monday, 18 November 2013 at 07:37:27 UTC, Jonathan M Davis
wrote:
This is middleend optimization stuff, though.
I'm not quite sure what you mean by this. There is no
middle-end. We have the
front-end, which is shared by dmd, gdc, and ldc, and then each
compiler has
its own backend. Anything D-specific is done in the front-end.
So, if there are
any D-specific optimizations (such as optimizations related to
pure), they need
to be in the front-end.
For me, middle-end is stuff, which is neither specific to input
language nor to output OS/architecture/runtime. Effectively, all
compiler optimizations which are useful everywhere. Maybe this
view is a little outdated, since most people consider LLVM has
simply a backend, while I would consider it middle- and backend
of a compiler.