Allyn Dimock, Ian Westmacott, Robert Muller,
Franklyn Turbak, J. B. Wells.
Functioning without Closure: Type-Safe Customized
Function Representations for Standard ML.
International Conference on Functional Programming (ICFP '01).
The CIL compiler for core Standard ML compiles whole ML programs using a
novel typed intermediate language that supports the generation of type-safe
customized data representations.
In this paper, we present empirical data comparing the relative efficacy of
several different flow-based customization strategies for function
We develop a cost model to interpret dynamic counts of operations required
for each strategy.
In this cost model, customizing the representation of closed functions
gives a 12--17% improvement on average over uniform
closure representations, depending on the layout of the closure.
We also present data on the relative effectiveness of various strategies
for reducing representation pollution, i.e., situations where
flow constraints require the representation of a value to be less
efficient than it would be in ideal circumstances.
For the benchmarks tested and the types of representation pollution
detected by our compiler,
the pollution removal strategies we consider
often cost more in overhead than they gain via
Notable exceptions are selective defunctionalization
a function representation strategy that often achieves significant
customization benefits via aggressive pollution removal, and
a simple form of flow-directed inlining, in which
pollution removal allows multiple functions to be inlined at the
same call site.