Modular, Higher-Order Cardinality Analysis in Theory and Practice

Ilya Sergey, Dimitrios Vytiniotis, and Simon 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.

This paper is an extended version of the eponymous POPL 2014 paper.

Details

Publication typeTechReport
NumberMSR-TR-2013-112
PublisherACM
> Publications > Modular, Higher-Order Cardinality Analysis in Theory and Practice