code generator generators?

mike@vlsivie.tuwien.ac.at (Michael Gschwind - EECS)
Thu, 5 Sep 91 13:33:09 -0700

          From comp.compilers

Related articles
code generator generators? mike@vlsivie.tuwien.ac.at (1991-09-05)
Re: code generator generators? pardo@gar.cs.washington.edu (1991-09-06)
Re: code generator generators? horst@techfak.uni-bielefeld.de (1991-09-09)
Re: code generator generators? bill@hcx2.ssd.csd.harris.com (1991-09-09)
Re: code generator generators? shuksan!scott@bcstec.ca.boeing.com (1991-09-09)
Re: code generator generators? clifton_r@zon.verifone.com (Clifton Royston HNL (808)625-3234) (1991-09-12)
Re: code generator generators? jourdan@minos.inria.fr (1991-09-16)
[1 later articles]
| List of all articles for this month |
Newsgroups: comp.compilers
From: mike@vlsivie.tuwien.ac.at (Michael Gschwind - EECS)
Keywords: code, design, question
Organization: Compilers Central
Date: Thu, 5 Sep 91 13:33:09 -0700

What's the current state of research on code generator generators? While the
front end side seems to be fairly well automated by now, back end
generation still seems to be an unresolved issue. There are only two systems
I can think of which are (or claim to be) able to generate back ends:


  * MESS, a system based on high-level semantics, by Lee&Pleban (if I remember
      correctly). They had two articles about 3 or 4 years ago, but one of the
      authors said that MESS was not in a distributable state. However, he
      was going to write a book on this approach. - Has anybody heard of any
      research in that direction.


  * GCC, which has probably the most workable - and the only
      in-production use - code generator generator. (There are several tool
      programs gen* which generate a set of insn-*.[ch] files, which could be
      thought of as "the code generator generator" part.) However GCC has some
      drawbacks, as it is targeted at a very specific subset of machines.
      Also, in a way, you can think of the back end of GCC-1.* as a glorified
      pattern matcher. GCC-2.* seems to be much better here. (I've never
      actually seen the GCC-2.* source code, but I've seen some machine
      descriptions for it, which allow for more sophisticated scheduling
      decisions than gcc-1.* machine descriptions do.)


What about using constraint logic programming for code generation? This should
allow to cut down on the possibilities to check, while still being more
flexible than a static pattern matcher. (I've read a paper by Krall&Ertl on
using CLP for scheduling of pipeline constraints for the Motorola 88k, and
this seems to have worked quite well.)


                                                                                Mike




Michael Gschwind, Dept. of VLSI-Design, Vienna University of Technology
mike@vlsivie.tuwien.ac.at || mike@vlsivie.uucp
[Peter Lee wrote a nice book on MESS, published by MIT Press, but still said
that the code was too awful to distribute. -John]
--


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.