[dmd-internals] Is there a reason that inlining happens so early?

Don Clugston dclugston at gmail.com
Tue Nov 27 01:00:22 PST 2012


One of the main reasons that implementing CTFE is difficult, is that
inlining happens so early.
It sometimes happens that CTFE gets run on a function BEFORE it is
inlined, and then the same function gets run again AFTER inlining.
Then the same function has a different number of variables, and all
kinds of evil transformations. This makes it very difficult to
pre-anaylze CTFE functions, before running them. (I've done
experiments which show that a minimal "compile" which merely allocates
variable numbers, can significantly increase CTFE speed).

Is there any reason why all the inlining couldn't be done after the
semantic3 pass has completed, instead of happening within it?


More information about the dmd-internals mailing list