Finite-state code generation

Christopher W. Fraser, Todd A. Proebsting

Research output: Contribution to conferencePaper

7 Scopus citations

Abstract

This paper describes GBURG, which generates tiny, fast code generators based on finite-state machine pattern matching. The code generators translate postfix intermediate code into machine instructions in one pass (except, of course, for backpatching addresses). A stack-based virtual machine - known as the Lean Virtual Machine (LVM) - tuned for fast code generation is also described. GBURG translates the two-page LVM-to-x86 specification into a code generator that fits entirely in an 8 KB I-cache and that emits x86 code at 3.6 MB/sec on a 266-MHz P6. Our just-in-time code generator translates and executes small benchmarks at speeds within a factor of two of executables derived from the conventional compile-time code generator on which it is based.

Original languageEnglish (US)
Pages270-280
Number of pages11
StatePublished - Jan 1 1999
Externally publishedYes
EventProceedings of the Annual ACM SIGPLAN '99 Conference on Programming Language Design and Implementation (PLDI), FCRC'99 - Atlanta, GA, USA
Duration: May 1 1999May 4 1999

Other

OtherProceedings of the Annual ACM SIGPLAN '99 Conference on Programming Language Design and Implementation (PLDI), FCRC'99
CityAtlanta, GA, USA
Period5/1/995/4/99

ASJC Scopus subject areas

  • Software

Fingerprint Dive into the research topics of 'Finite-state code generation'. Together they form a unique fingerprint.

  • Cite this

    Fraser, C. W., & Proebsting, T. A. (1999). Finite-state code generation. 270-280. Paper presented at Proceedings of the Annual ACM SIGPLAN '99 Conference on Programming Language Design and Implementation (PLDI), FCRC'99, Atlanta, GA, USA, .