On Thursday, 11 December 2014 at 11:02:31 UTC, Stefan Koch wrote:
On Thursday, 11 December 2014 at 10:59:24 UTC, Daniel Murphy wrote:

Why? If the inliner is out because of DMD's merging process, then so is the rest of the frontend.

It is not out!

But my question was not about dmd specific things, I meant it more generally.

More generally, you don't want to optimize anything in the frontend:
 - It is gonna create unscrutable code for debug.
- You optimize before inlining, and so won't get the optimization allowed by inlining.

You want to add metadata to your IR int he front end to inform the middle and back end. You proceed to :
 - optimize callee
 - estimate cost of inlining optimized callee and possibly inline
 - optimize caller

Note that this is a recursive process. You may do a second dance in the backend to get all platform specific optimization going on.

Reply via email to