## MLton 20241230+git20251029+dfsg-5

# Inline

Inline is an optimization pass for the SSA IntermediateLanguage, invoked from SSASimplify.

## Description

This pass inlines SSA functions using a size-based metric.

## Implementation

- `inline.sig`

- `inline.fun`

## Details and Notes

The Inline pass can be invoked to use one of three metrics:

- `NonRecursive(product, small)`— inline any function satisfying `(numCalls - 1) * (size - small) ⇐ product`, where `numCalls` is the static number of calls to the function and `size` is the size of the function.

- `Leaf(size)`— inline any leaf function smaller than `size`

- `LeafNoLoop(size)`— inline any leaf function without loops smaller than `size`