Automatically Generating Back Ends for a Portable Assembly Language Using Declarative Machine Descriptions

João Dias and Norman Ramsey

We show how to generate the back end of an optimizing compiler from a formal description of the syntax and semantics of machine instructions. Our generated back ends for x86, ARM, and PowerPC perform as well as their hand-written counterparts. Automatic generation is enabled by two new ideas: a model of machine-level computation that reduces back-end generation to the problem of finding implementations of about a hundred simple, machine-level operations; and an algorithm that finds these implementations by combining machine instructions.

Full paper

This technical report describes some of the main results of João Dias's doctoral work. The technical report is rather difficult to follow, and a sensible person would instead ask Dias for a copy of his dissertation.

With that caveat, the technical report is available as US Letter PostScript (437K), US Letter PDF (294K), US Letter TeX DVI (217K), and US Letter DjVu (373K).