[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/301618.301680acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
Article
Free access

Finite-state code generation

Published: 01 May 1999 Publication History

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/set 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.

References

[1]
Alfred V. Aho, Mahedevan Ganapathi, and Steven W. K. Tjiang. Code generation using tree matching and dynamic programming. A CM Transactions on Programming Languages and Systems, 11(4):491-516, October 1989.
[2]
Ali-Reza Adl-Tabatabai, Geoff Langdale, Steven Lucco, and Robert Wahbe. Efficient and language-independent mobile programs. In Proceedings of the SIGPLAN '96 Conference on Programming Language Design and Implementation, pages 127-136, 1996.
[3]
Jack W. Davidson and Christopher W. Fraser. The design and application of a retargetable peephole optimizer. A CM Transactions on Programming Languages and Systems, 2(2):191-202, April 1980.
[4]
Jack W. Davidson and Christopher W. Fraser. Code selection through object code optimization. A CM Transactions on Programming Languages and Systems, 6(4):7-32, October 1984.
[5]
D.R. Engler. VCODE: a retargetable, extensible, very fast dynamic code generation system. In Proceedings of the SIGPLAN '96 Conference on Programming Language Design and Implementation, pages 160-170, May 1996.
[6]
Christopher W. Fraser and David R. Hanson. A Retargetable C Compiler: Design and implementation. Benjamin/Cummings, Redwood City, California, 1995.
[7]
Christopher W. Fraser, David R. Hanson, and Todd A. Proebsting. Engineering a simple, efficient code-generator generator. A UM Letters on Programming Languages and Systems, 1(3):213- 226, September 1992.
[8]
Christopher W. Fraser, Robert R. Henry, and Todd A. Proebsting. BURG fast optimal instruction selection and tree parsing. $IGPLAN Notices, 27(4):68-76, April 1992.
[9]
R. Steven Glanville and Susan L. Graham. A new method for compiler code generation. In Proceedings of the 5th Annual Symposium on Principles of Programming Languages, pages 231-240, 1978.
[10]
Ralph E. Griswold and Madge T. Griswold. The Icon Programming Language. Prentice-Hall, Inc., 1983. ISBN 0-13- 449777-5.
[11]
Christoph M. Hoffmann and Michael J. O'Donnell. Pattern matching in trees. Journal of the ACM, 29(1):68-95, january 1982.
[12]
Brian W. Kernighan and Dennis M Ritchie. The C Programming Language. Prentice-Hall, Inc., second edition, 1988. ISBN 0-13-110370-9.
[13]
Tim Lindholm and Frank Yellin. The Java Virtual Machine Specification. Addison-Wesley, 1997. ISBN 0-201- 63452-X.
[14]
Eduardo Pelegri-Llopart and Susan L. Graham. Optimal code generation for expression trees: An application of BURS theory. In Proceedings of the 15th Annual Symposium on Principles of Programming Languages, pages 294- 308, New York, 1988. ACM.
[15]
Todd A. Proebsting. BURS automata generation. A CM Transactions on Programming Languages and Systems, 17(3):461-486, May 1995.
[16]
Todd A. Proebsting and Benjamin R. Whaley. One-pass, optimal tree parsing with or without trees. In 1996 Inter- ~ational Conference on Compiler Construction, pages 294--308, April 1996.

Cited By

View all

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
PLDI '99: Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation
May 1999
304 pages
ISBN:1581130945
DOI:10.1145/301618
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 May 1999

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Conference

PLDI99

Acceptance Rates

PLDI '99 Paper Acceptance Rate 26 of 130 submissions, 20%;
Overall Acceptance Rate 406 of 2,067 submissions, 20%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)91
  • Downloads (Last 6 weeks)14
Reflects downloads up to 11 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2003)Code generation for just-in-time compiled mobile collector agentsSelected papers from the 2002 Pan-Sydney workshop on Visualisation - Volume 2210.5555/1164094.1164095(1-4)Online publication date: 1-May-2003
  • (2003)A brief history of just-in-timeACM Computing Surveys10.1145/857076.85707735:2(97-113)Online publication date: 1-Jun-2003
  • (2002)A study of CodePackProceedings of the tenth international symposium on Hardware/software codesign10.1145/774789.774811(103-108)Online publication date: 6-May-2002
  • (2002)A study of CodePack: optimizing embedded code spaceProceedings of the Tenth International Symposium on Hardware/Software Codesign. CODES 2002 (IEEE Cat. No.02TH8627)10.1109/CODES.2002.1003609(103-108)Online publication date: 2002
  • (2007)Automatic Generation of Code Optimizer for DFA Pattern MatchingThe KIPS Transactions:PartA10.3745/KIPSTA.2007.14-A.1.03114A:1(31-38)Online publication date: 28-Feb-2007
  • (2005)Table-Driven Code OptimizerProceedings of the Sixth International Conference on Parallel and Distributed Computing Applications and Technologies10.1109/PDCAT.2005.232(59-64)Online publication date: 5-Dec-2005
  • (2005)Table-Driven Code OptimizerInternational Conference on Computational Intelligence for Modelling, Control and Automation and International Conference on Intelligent Agents, Web Technologies and Internet Commerce (CIMCA-IAWTIC'06)10.1109/CIMCA.2005.1631509(444-449)Online publication date: 2005

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media