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.
Preview
Unable to display preview. Download preview PDF.
References
A. V. Aho, R. Sethi, and J. D. Ullman. Compilers: principles, techniques, tools. Addison-Wesley, 1986.
Andrew W. Appel. A runtime system. Lisp and Symbolic Computation 3, pages 343–380, 1990.
Andrew W. Appel. Modern Compiler Implementation in ML. Cambridge University Press, 1998.
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.
Andrew W. Appel et al. The national compiler infrastructure project.
Robert P. Wilson et al. SUIF: An infrastructure for research on parallelizing and optimizing compilers. Technical report, Computer Systems Laboratory, Stanford University.
Lal George. Personal Communication.
Lal George. MLRISC: Customizable and reusable code generators. Technical report, Bell Labs, December 1996. submitted to PLDI.
Lal George and Andrew W. Appel. Iterated register coalescing. ACM Transactions on Programming Languages and Systems, 18(3): 300–324, May 1996.
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.
Robert Harper and Chris Stone. A type-theroretic interpretation of standard ML. Technical report, Carnegie Mellon University, 1997. submitted for publication.
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.
J. Gregory Morrisett. Compiling with Types. PhD thesis, Carnegie Mellon University, December 1995. Published as CMU Technical Report CMU-CS-95-226.
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.
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.
Zhong Shao and Andrew W. Appel. Space-efficient closure representations. In Conference on Lisp and Functional programming, June 94.
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.
Andrew Tolmach. Tag-free garbage collection using explicit type parameters. In Proceedings 1994 ACM Conference on Lisp and Functional Programming, June 1994.
Author information
Authors and Affiliations
Editor information
Rights 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