[MLton] leaf inlining

Matthew Fluet fluet at tti-c.org
Mon Jun 25 05:20:12 PDT 2007


skaller wrote:
> On Sun, 2007-06-24 at 22:46 -0500, Matthew Fluet wrote:
> 
>> I added an introduceLoops pass before inlining, since inlining can't be 
>> applied to recursive functions (and recursive functions aren't leaf).
> 
> Huh? Is Mlton only inlining non-recursive leaves?

In the leafInline optimization pass, yes.  In the later general inlining 
pass, there is a more permissive inlining heuristic.

In MLton, a function is inlined at all of its call sites, or not at all. 
  So, recursive functions may never be inlined.

> When you say 'pass' is this a single operation applied to
> the whole program?

An SSA optimization pass is an SSA IL program to SSA IL program 
transformation.

> Is there any ordering?

There is a fixed sequence of optimization passes, applied in order.
See 'ssaPassesDefault' in:
 
http://mlton.org/cgi-bin/viewsvn.cgi/*checkout*/mlton/trunk/mlton/ssa/simplify.fun?rev=5666





More information about the MLton mailing list