View source code
Display the source code in dmd/backend/inliner.d from which this page was generated on github.
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 local clone.

Module dmd.backend.inliner

Function inliner.

This is meant to replace the previous inliner, which inlined the front end AST. This inlines based on the intermediate code, after it is optimized, which is simpler and presumably can inline more functions. It does not yet have full functionality, - it does not inline expressions with string literals in them, as these get turned into local symbols which cannot be referenced from another object file - exception handling code for Win32 is not inlined - it does not give warnings for failed attempts at inlining pragma(inline, true) functions - it can only inline functions that have already been compiled - it cannot inline statements

Compiler implementation of the D programming language.

Functions

NameDescription
canInlineFunction(sfunc) Determine if function can be inline'd. Used to decide to save a function's intermediate code for later inlining.
scanForInlines(sfunc) Examine all of the function calls in sfunc, and inline-expand any that can be.

Authors

Walter Bright

License

Boost License 1.0