kirancodes.me
To Proof Maintenance & Beyond!

Modular, higher-order cardinality analysis in theory and practice

Ilya Sergey, Dimitrios Vytiniotis, Simon L. Peyton Jones

Abstract

Since the mid '80s, compiler writers for functional languages (especially lazy ones) have been writing papers about identifying and exploiting thunks and lambdas that are used only once. However it has proved difficult to achieve both power and simplicity in practice. We describe a new, modular analysis for a higher-order language, which is both simple and effective, and present measurements of its use in a full-scale, state of the art optimising compiler. The analysis finds many single-entry thunks and one-shot lambdas and enables a number of program optimisations.

Related papers