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

The Mahler experience: using an intermediate language as the machine description

Published: 01 October 1987 Publication History

Abstract

Division of a compiler into a front end and a back end that communicate via an intermediate language is a well-known technique. We go farther and use the intermediate language as the official description of a family of machines with simple instruction sets and addressing capabilities, hiding some of the inconvenient details of the real machine from the users and the front end compilers.To do this credibly, we have had to hide not only the existence of the details but also the performance consequences of hiding them. The back end that compiles and links the intermediate language tries to produce code that does not suffer a performance penalty because of the details that were hidden from the front end compiler. To accomplish this, we have used a number of link-time optimizations, including instruction scheduling and interprocedural register allocation, to hide the existence of such idiosyncracies as delayed branches and non-infinite register sets. For the most part we have been sucessful.

References

[1]
Jack J. Dongarra. Performance of various computers using standard linear equations software in a Fortran environment. Computer Architecture News 11 (5): 22--27, December 1983.
[2]
R. Steven Glanville and Susan L. Graham. A new method for compiler code generation. Fifth Annual ACM Symposium on Principles of Programming Languages: 231--240 (January 1978).
[3]
John Hennessy. Stanford benchmark suite. Personal communication.
[4]
John L. Hennessy and Thomas R. Gross. Code generation and reorganization in the presence of pipeline constraints. Ninth Annual ACM Symposium on Principles of Programming Languages: 120--127 (January 1982)
[5]
John L. Hennessy, Norman P. Jouppi, Steven Przybylski, Christopher Rowen, and Thomas Gross. Design of a high performance VLSI processor. In Randal Bryant, editor, Third Caltech Conference on Very Large Scale Integration, pages 33--54. Computer Science Press, 11 Taft Court, Rockville, Maryland.
[6]
David A. Patterson. Reduced instruction set computers. Communication of the ACM 28 (1): 8--21, January 1985.
[7]
Michael L. Powell. Efficient dynamic measurement of deterministic run-time behavior. In preparation.
[8]
George Radin. The 801 minicomputer. Proceedings of the Symposium on Architectural Support for Programming Languages and Operating Systems, pages 39--47 (March 1982). Published as SIGARCH Computer Architecture News 10 (2), March 1982, and as SIGPLAN Notices 17 (4), April 1982.
[9]
Christopher J. Terman. User's Guide to NET, PRESIM, and RNL/NL. M. I. T. Laboratory for Computer Science, 545 Technology Square, Room 418, Cambridge, Massachusetts.
[10]
David W. Wall. Global register allocation at link-time. Proceedings of the SIGPLAN '86 Symposium on Compiler Construction. Published as SIGPLAN Notices 21 (7): 264--275 (July 1986). Available in slightly longer form as WRL Research Report 86/3, 1986.
[11]
David W. Wall and Michael L. Powell. The Mahler experience: Using an intermediate language as the machine description. WRL Research Report 87/1, 1987.

Cited By

View all
  • (2007)Techniques for Classifying Executions of Deployed Software to Support Software Engineering TasksIEEE Transactions on Software Engineering10.1109/TSE.2007.100433:5(287-304)Online publication date: 1-May-2007
  • (2005)Generating efficient code from continuation semanticsCompiler Compilers10.1007/3-540-53669-8_81(165-178)Online publication date: 4-Jun-2005
  • (1997)System support for automatic profiling and optimizationACM SIGOPS Operating Systems Review10.1145/269005.26664031:5(15-26)Online publication date: 1-Oct-1997
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
ASPLOS II: Proceedings of the second international conference on Architectual support for programming languages and operating systems
October 1987
205 pages
ISBN:0818608056
DOI:10.1145/36206
Permission to make digital or hard copies of part or all 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 third-party components of this work must be honored. For all other uses, contact the Owner/Author.

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 October 1987

Check for updates

Qualifiers

  • Article

Conference

ASPLOS II
Sponsor:

Acceptance Rates

Overall Acceptance Rate 535 of 2,713 submissions, 20%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)233
  • Downloads (Last 6 weeks)42
Reflects downloads up to 28 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2007)Techniques for Classifying Executions of Deployed Software to Support Software Engineering TasksIEEE Transactions on Software Engineering10.1109/TSE.2007.100433:5(287-304)Online publication date: 1-May-2007
  • (2005)Generating efficient code from continuation semanticsCompiler Compilers10.1007/3-540-53669-8_81(165-178)Online publication date: 4-Jun-2005
  • (1997)System support for automatic profiling and optimizationACM SIGOPS Operating Systems Review10.1145/269005.26664031:5(15-26)Online publication date: 1-Oct-1997
  • (1997)System support for automatic profiling and optimizationProceedings of the sixteenth ACM symposium on Operating systems principles10.1145/268998.266640(15-26)Online publication date: 1-Oct-1997
  • (1996)Whole-program optimization for time and space efficient threadsACM SIGPLAN Notices10.1145/248209.23714931:9(50-59)Online publication date: 1-Sep-1996
  • (1996)Whole-program optimization for time and space efficient threadsACM SIGOPS Operating Systems Review10.1145/248208.23714930:5(50-59)Online publication date: 1-Sep-1996
  • (1996)Whole-program optimization for time and space efficient threadsProceedings of the seventh international conference on Architectural support for programming languages and operating systems10.1145/237090.237149(50-59)Online publication date: 1-Oct-1996
  • (1994)Rewriting executable files to measure program behaviorSoftware—Practice & Experience10.1002/spe.438024020424:2(197-218)Online publication date: 1-Feb-1994
  • (1992)Migrating a CISC computer family onto RISC via object code translationACM SIGPLAN Notices10.1145/143371.14352027:9(213-222)Online publication date: 1-Sep-1992
  • (1992)Migrating a CISC computer family onto RISC via object code translationProceedings of the fifth international conference on Architectural support for programming languages and operating systems10.1145/143365.143520(213-222)Online publication date: 1-Sep-1992
  • Show More Cited By

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