Skip to main content

How generic is a generic back end? using MLRISC as a back end for the TIL compiler

Preliminary Report

  • Conference paper
  • First Online:
Types in Compilation (TIC 1998)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1473))

Included in the following conference series:

  • 90 Accesses

Abstract

We describe the integration of MLRISC, a “generic” compiler back end, with TIL, a type-directed compiler for Standard ML. The TIL run-time system uses a form of type information to enable partially tag-free garbage collection. We show how we propagate this information through the final phases of the compiler, even though the back end is unaware of the existence of this information. Additionally, we identify the characteristics of MLRISC that enable us to use it with TIL and suggest ways in which it might better support our compiler. Preliminary performance measurements show that we pay a significant cost for using MLRISC, relative to a custom back end.

This research was sponsored in part by the Advanced Research Projects Agency CSTO under the title “The Fox Project: Advanced Languages for Systems Software”, ARPA Order No. C533, issued by ESC/ENS under Contract No. F19628-95-C-0050, and in part by the National Science Foundation under Grant No. CCR-9502674. The views and conclusions contained in this document are those of the authors and should not be interpreted as representing official policies, either expressed or implied, of the Defense Advanced Research Projects Agency, the National Science Foundation, or the U.S. Government.

This material is based on work supported under under a National Science Foundation Graduate Fellowship. Any opinions, findings, conclusions or recommendations expressed in this publication are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. A. V. Aho, R. Sethi, and J. D. Ullman. Compilers: principles, techniques, tools. Addison-Wesley, 1986.

    Google Scholar 

  2. Andrew W. Appel. A runtime system. Lisp and Symbolic Computation 3, pages 343–380, 1990.

    Google Scholar 

  3. Andrew W. Appel. Modern Compiler Implementation in ML. Cambridge University Press, 1998.

    Google Scholar 

  4. Andrew W. Appel and David B. MacQueen. Standard ML of new jersey. In Third International Symposium on Programming Language Implementation and Logic Programming, pages 1–13. Springer-Verlag, August 1991.

    Google Scholar 

  5. Andrew W. Appel et al. The national compiler infrastructure project.

    Google Scholar 

  6. Robert P. Wilson et al. SUIF: An infrastructure for research on parallelizing and optimizing compilers. Technical report, Computer Systems Laboratory, Stanford University.

    Google Scholar 

  7. Lal George. Personal Communication.

    Google Scholar 

  8. Lal George. MLRISC: Customizable and reusable code generators. Technical report, Bell Labs, December 1996. submitted to PLDI.

    Google Scholar 

  9. Lal George and Andrew W. Appel. Iterated register coalescing. ACM Transactions on Programming Languages and Systems, 18(3): 300–324, May 1996.

    Article  Google Scholar 

  10. Robert Harper and Greg Morrisett. Compiling polymorphism using intensional type analysis. In Conference Record of the 22nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 130–141. ACM, January 1995.

    Google Scholar 

  11. Robert Harper and Chris Stone. A type-theroretic interpretation of standard ML. Technical report, Carnegie Mellon University, 1997. submitted for publication.

    Google Scholar 

  12. Greg Morrisett, David Walker, Karl Crary, and Neal Glew. From system F to typed assembly language. In Conference Record of the 25th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 85–97. ACM, January 1998.

    Google Scholar 

  13. J. Gregory Morrisett. Compiling with Types. PhD thesis, Carnegie Mellon University, December 1995. Published as CMU Technical Report CMU-CS-95-226.

    Google Scholar 

  14. George C. Necula. Proof-carrying code. In Conference Record of the 24th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. ACM, January 1997.

    Google Scholar 

  15. George C. Necula and Peter Lee. The design and implementation of a certifying compiler. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implemantation, New York, 1998. ACM Press.

    Google Scholar 

  16. Zhong Shao and Andrew W. Appel. Space-efficient closure representations. In Conference on Lisp and Functional programming, June 94.

    Google Scholar 

  17. D. Tarditi, G. Morrisett, P. Cheng, C. Stone, R. Harper, and P. Lee. TIL: A type-directed optimizing compiler for ML. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implemantation, pages 181–192, New York, May21–24 1996. ACM Press.

    Google Scholar 

  18. Andrew Tolmach. Tag-free garbage collection using explicit type parameters. In Proceedings 1994 ACM Conference on Lisp and Functional Programming, June 1994.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Xavier Leroy Atsushi Ohori

Rights and permissions

Reprints and permissions

Copyright information

© 1998 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Bernard, A., Harper, R., Lee, P. (1998). How generic is a generic back end? using MLRISC as a back end for the TIL compiler. In: Leroy, X., Ohori, A. (eds) Types in Compilation. TIC 1998. Lecture Notes in Computer Science, vol 1473. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0055512

Download citation

  • DOI: https://doi.org/10.1007/BFb0055512

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-64925-0

  • Online ISBN: 978-3-540-68308-7

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics