language: en

Optimizing ML with Run-Time Code Generation

Peter Lee Mark Leone
School of Computer Science Carnegie Mellon University
Pittsburgh, Pennsylvania 15213-3891
petel@cs.cmu.edu mleone@cs.cmu.edu

Abstract We describe the design and implementation of a compiler that automatically translates ordinary programs written in a subset of ML into code that generates native code at run time. Run-time code generation can make use of values and invariants that cannot be exploited at compile time, yielding code that is often superior to statically optimal code. But the cost of optimizing and generating code at run time can be prohibitive. We demonstrate how compile-time specialization can reduce the cost of run-time code generation by an order of magnitude without greatly affecting code quality. Several benchmark programs are examined, which exhibit an average cost of only six cycles per instruction generated at run time.

1 Introduction