Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using a local clone.

dmd.inline

Performs inlining, which is an optimization pass enabled with the -inline flag.
The AST is traversed, and every function call is considered for inlining using inlinecost.d. The function call is then inlined if this cost is below a threshold.
Authors:

Source inline.d

void inlineScanModule(Module m);
Scan function implementations in Module m looking for functions that can be inlined, and inline them in situ.
Parameters:
Module m module to scan
Expression inlineCopy(Expression e, Scope* sc);
Perform the "inline copying" of a default argument for a function parameter.

Todo The hack for https://issues.dlang.org/show_bug.cgi?id=4820 case is still questionable. Perhaps would have to handle a delegate expression with 'null' context properly in front-end.