MLton 20210117

# 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