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 language | English (US) |
---|---|
Title of host publication | Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI) |
Publisher | ACM |
Pages | 270-280 |
Number of pages | 11 |
State | Published - 1999 |
Externally published | Yes |
Event | Proceedings of the Annual ACM SIGPLAN '99 Conference on Programming Language Design and Implementation (PLDI), FCRC'99 - Atlanta, GA, USA Duration: May 1 1999 → May 4 1999 |
Other
Other | Proceedings of the Annual ACM SIGPLAN '99 Conference on Programming Language Design and Implementation (PLDI), FCRC'99 |
---|---|
City | Atlanta, GA, USA |
Period | 5/1/99 → 5/4/99 |
Fingerprint
ASJC Scopus subject areas
- Computer Science(all)
Cite this
Finite-state code generation. / Fraser, Christopher W.; Proebsting, Todd A.
Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI). ACM, 1999. p. 270-280.Research output: Chapter in Book/Report/Conference proceeding › Chapter
}
TY - CHAP
T1 - Finite-state code generation
AU - Fraser, Christopher W.
AU - Proebsting, Todd A
PY - 1999
Y1 - 1999
N2 - 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.
AB - 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.
UR - http://www.scopus.com/inward/record.url?scp=0032674049&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=0032674049&partnerID=8YFLogxK
M3 - Chapter
AN - SCOPUS:0032674049
SP - 270
EP - 280
BT - Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI)
PB - ACM
ER -