Automatically Generating Back Ends
for a Portable Assembly Language
Using Declarative Machine Descriptions
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,
and an algorithm that finds these implementations by combining machine
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),
US Letter DjVu (373K).