On Sunday, 27 July 2014 at 07:48:18 UTC, Marc Schütz wrote:
On Sunday, 27 July 2014 at 07:01:52 UTC, Daniel Murphy wrote:
"Dicebot" wrote in message
news:[email protected]...
I can't PR but there were one by Kenji that did inline of
such calls in the frontend providing 100% gurantee whatever
backend is used.
There is no 100% guarantee, the frontend's inliner is not
capable of inlining the majority of function calls. The only
guarantee is that it will try to inline the lambda whether or
not the -inline switch is used.
Too bad... If it was guaranteed, there would then be a compiler
independent way to force inlining. Is there a chance that the
limits to inlining in DMD will ever be removed?
IIRC the core reason is that expression nodes in the AST cannot
contain statements. Isn't it possible to create a "bridge" node
type that is allowed to appear in expressions, but may also
contain statements?