Higher-order languages, such as Haskell, encourage the programmer to build abstractions by composing functions. A good compiler must inline many of these calls to recover an efficiently executable program. In principle, inlining is dead simple: just replace the call of a function by an instance of its body. But any compiler-writer will tell you that inlining is a black art, full of delicate compromises that work together to give good performance without unnecessary code bloat. The purpose of this paper is, therefore, to articulate the key lessons we learned from a full-scale "production" inliner, the one used in the Glasgow Haskell compiler. We focus mainly on the algorithmic aspects, but we also provide some indicative measuremen...
Abstract. Typed programming languages offer safety guarantees that help programmers write correct co...
Compilers for ML and Haskell use intermediate languages that incorporate deeply-embedded assumptions...
AbstractMany compilers do some of their work by means of correctness-preserving, and hopefully perfo...
We present an algorithm for unrolling recursion in the Haskell functional language. Adapted from a s...
We give an overview of the Glasgow Haskell compiler, focusing especially on way in which we have bee...
Functional programming languages such as Haskell are fundamentally different from imperative languag...
Functional programming languages such as Haskell are fundamentally different from imperative languag...
The decision to inline a procedure in the Open Research Compiler (ORC) was based on a temperature h...
Function inlining is a compiler optimization where the function call is replaced by the code from th...
Inlining is an important optimization that can lead to significant runtime improvements. When decidi...
A flow-directed inlining strategy uses information derived from control-flow analysis to specialize ...
. Inline function expansion is an optimization that may improve program performance by removing call...
Function inlining is a widely known technique which has been used to improve program performance. In...
Function inlining is a well known compiler optimization where a function call issubstituted with the...
The aim of the FAST Project is to provide an implementation of a functional language, Haskell, on a ...
Abstract. Typed programming languages offer safety guarantees that help programmers write correct co...
Compilers for ML and Haskell use intermediate languages that incorporate deeply-embedded assumptions...
AbstractMany compilers do some of their work by means of correctness-preserving, and hopefully perfo...
We present an algorithm for unrolling recursion in the Haskell functional language. Adapted from a s...
We give an overview of the Glasgow Haskell compiler, focusing especially on way in which we have bee...
Functional programming languages such as Haskell are fundamentally different from imperative languag...
Functional programming languages such as Haskell are fundamentally different from imperative languag...
The decision to inline a procedure in the Open Research Compiler (ORC) was based on a temperature h...
Function inlining is a compiler optimization where the function call is replaced by the code from th...
Inlining is an important optimization that can lead to significant runtime improvements. When decidi...
A flow-directed inlining strategy uses information derived from control-flow analysis to specialize ...
. Inline function expansion is an optimization that may improve program performance by removing call...
Function inlining is a widely known technique which has been used to improve program performance. In...
Function inlining is a well known compiler optimization where a function call issubstituted with the...
The aim of the FAST Project is to provide an implementation of a functional language, Haskell, on a ...
Abstract. Typed programming languages offer safety guarantees that help programmers write correct co...
Compilers for ML and Haskell use intermediate languages that incorporate deeply-embedded assumptions...
AbstractMany compilers do some of their work by means of correctness-preserving, and hopefully perfo...