Skip to main content
Article thumbnail
Location of Repository

A Code Generation Interface for ANSI C

By Christopher W. Fraser and David R. Hanson

Abstract

lcc is a retargetable, production compiler for ANSI C; it has been ported to the VAX, Motorola 68020, SPARC, and MIPS R3000, and some versions have been in use for over two years. It is smaller and faster than generally available alternatives, and its local code is comparable. This report describes the interface between the targetindependent front end and the target-dependent back ends. The interface consists of shared data structures, a few functions, and a dag language. While this approach couples the front and back ends tightly, it results in efficient, compact compilers. The interface is illustrated by detailing a complete code generator that emits naive VAX code. 1 Introduction lcc is a retargetable compiler for ANSI C [1]. It has been ported to the VAX, Motorola 68020, SPARC, and MIPS R3000. It emits code that is comparable with that from other generally available C compilers, but it runs up to twice as fast and is about half the size [5]. lcc is in production use at Princeton..

Year: 1991
OAI identifier: oai:CiteSeerX.psu:10.1.1.36.924
Provided by: CiteSeerX
Download PDF:
Sorry, we are unable to provide the full text but you may find it at the following location(s):
  • http://citeseerx.ist.psu.edu/v... (external link)
  • ftp://ftp.cs.princeton.edu/rep... (external link)
  • Suggested articles


    To submit an update or takedown request for this paper, please submit an Update/Correction/Removal Request.