Design of an optimizing, dynamically retargetable compiler for common Lisp

We outline the components of a retargetable cross-compiler for the Common Lisp language. A description is given of a method for modeling the various hardware features in the compiler’s database, and a breakdown is shown of the compiler itself into various machine-independent and machine-dependent modules. A novel feature of this development is the dynamic nature of the retargeting: Databases for multiple hardware architectures are a standard part of the compiler, and the internal interfaces used by the compiler are such that the machine-dependent modules may be instantly switched from one to another. Examples of generated code in several environments will be given to demonstrate the high quality of the output available, even under this very modular approach.