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.

Members

Functions

canInlineFunction
bool canInlineFunction(Symbol* sfunc)

Determine if function can be inline'd. Used to decide to save a function's intermediate code for later inlining.

scanForInlines
void scanForInlines(Symbol* sfunc)

Examine all of the function calls in sfunc, and inline-expand any that can be.

Meta