|
ABSTRACT
We present staged allocation, a technique for specifying calling conventions by composing tiny allocators called stages. A specification written using staged allocation has a precise, formal semantics, and it can be executed directly inside a compiler. Specifications of nine standard C~calling conventions range in size from 15 to 30 lines each. An implementation of staged allocation takes about 250 lines of ML or 650~lines of C++. Each specification can be used not only to help a compiler implement the calling convention but also to generate a test suite.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
|
| |
2
|
Apple Computer. 2003. Mach-O Runtime Architecture.
|
| |
3
|
|
 |
4
|
|
| |
5
|
--------. 1996. Target-sensitive construction of diagnostic programs for procedure calling sequence generators. Proceedings of the ACM SIGPLAN '96 Conference on Programming Language Design and Implementation, in SIGPLAN Notices 31 (May): 249--257.
|
| |
6
|
|
| |
7
|
|
| |
8
|
|
| |
9
|
George, Lal. 1999. SMLNJ: Garbage collection API. As of November 2005, available from http://www.smlnj.org/compiler-notes/gc-api.ps.
|
| |
10
|
|
| |
11
|
Hutton, Graham. 1992. Higher-order functions for parsing. Journal of Functional Programming 2 (July): 323--343.
|
| |
12
|
Ierusalimschy, Roberto. 2003. Programming in Lua. Lua.org. ISBN 85-903798-1-7.
|
| |
13
|
Leroy, Xavier, Damien Doligez, Jacques Garrigue, Didier Rémy, and Jérôme Vouillon. 2004. The Objective Caml system release 3.08: Documentation and user's manual. INRIA. Available at http://pauillac.inria.fr/ocaml/htmlman.
|
 |
14
|
|
| |
15
|
Lindig, Christian and Norman Ramsey. 2004. Declarative composition of stack frames. In 13th International Conference on Compiler Construction (CC 2004), Vol. 2985 of LNCS, pages 298--312.
|
| |
16
|
Mealy, George H. 1955. A method for synthesizing sequential circuits. Bell System Technical Journal 34 (5): 1045--1079.
|
| |
17
|
|
 |
18
|
|
| |
19
|
Ramsey, Norman and Christian Lindig. 2002. Custom calling conventions in a portable assembly language. Unpublished paper available at http://www.eecs.harvard.edu/~nr/pubs/custom-abstract.html.
|
 |
20
|
|
| |
21
|
Smith, Michael D. and Glenn Holloway. 2000. An introduction to Machine SUIF and its portable libraries for analysis and optimization. See http://www.eecs.harvard.edu/machsuif/software/nci/overview.html.
|
| |
22
|
|
|