|
ABSTRACT
We consider the problem of supporting compacting garbage collection in the presence of modern compiler optimizations. Since our collector may move any heap object, it must accurately locate, follow, and update all pointers and values derived from pointers. To assist the collector, we extend the compiler to emit tables describing live pointers, and values derived from pointers, at each program location where collection may occur. Significant results include identification of a number of problems posed by optimizations, solutions to those problems, a working compiler, and experimental data concerning table sizes, table compression, and time overhead of decoding tables during collection. While gc support can affect the code produced, our sample programs show no significant changes, the table sizes are a modest fraction of the size of the optimized code, and stack tracing is a small fraction of total gc time. Since the compiler enhancements are also modest, we conclude that the approach is practical.
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
|
|
| |
3
|
|
| |
4
|
A.L. Hosking, "Main memory management for persistence," Oct. 1991. Position paper for OOPSLA '91 Workshop on Garbage Collection.
|
| |
5
|
J. F. Bartlett,"Compacting garbage collection with ambiguous roots," Research Report 88/2, Western Research Laboratory, Digital Equipment Corporation, Feb. 1988.
|
| |
6
|
J. F. Bartlett, "Mostly-copying garbage collection picks up generations and C++," Technical Note TN. 12, Western Research Laboratory, Digital Equipment Corporation, Palo Alto, CA 94301, Oct. 1989.
|
| |
7
|
R.M. Stallman, GCC. Free Software Foundation, Cambridge, MA.
|
| |
8
|
|
 |
9
|
|
| |
10
|
S. Harbison. Personal Communication, 1992.
|
| |
11
|
|
| |
12
|
A. L. Hosking, J. E. B. Moss, and D. Stefanovid, "A comparative performance evaluation of write barrier implementations." Submitted for publication, Feb. 1992.
|
| |
13
|
H.-j. Boehm, "A proposal for GC-safe C compilation," Oct. 1991. Position paper for OOPSLA '91 Workshop on Garbage Collection.
|
 |
14
|
|
| |
15
|
|
| |
16
|
P. Branquart and J. Lewi, "A scheme for storage allocation and garbage collection in Algol-68," in Algol 68 Implementation (J. E. L. Peck, ed.), North-Holland Publishing Company, 1971.
|
 |
17
|
|
| |
18
|
H.-J. Boehm, "Personal communication," July 1991.
|
| |
19
|
A. Diwan, "Exception handling in Modula-3." Internal OOS Document, 1990.
|
| |
20
|
L. W. Zurawski and R. E. Johnson, "Debugging optimized code with expected behavior," ACM Trans. Programming Languages and Systems, To appear.
|
CITED BY 24
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Michael Franz , Deepak Chandra , Andreas Gal , Vivek Haldar , Fermín Reig , Ning Wang, A portable Virtual Machine target for Proof-Carrying Code, Proceedings of the 2003 workshop on Interpreters, virtual machines and emulators, p.24-31, June 12-12, 2003, San Diego, California
|
|
|
D. Tarditi , G. Morrisett , P. Cheng , C. Stone , R. Harper , P. Lee, TIL: a type-directed optimizing compiler for ML, ACM SIGPLAN Notices, v.31 n.5, p.181-192, May 1996
|
|
|
|
|
|
David Tarditi , Greg Morrisett , Perry Cheng , Chris Stone , Robert Harper , Peter Lee, TIL: a type-directed, optimizing compiler for ML, ACM SIGPLAN Notices, v.39 n.4, April 2004
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Michael Franz , Deepak Chandra , Andreas Gal , Vivek Haldar , Christian W. Probst , Fermín Reig , Ning Wang, A portable virtual machine target for proof-carrying code, Science of Computer Programming, v.57 n.3, p.275-294, September 2005
|
|
|
|
|
|
|
|
|
|
|
|
|
|