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
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.