Experiences with compiler-directed storage reclamation
- 1 July 1993
- proceedings article
- Published by Association for Computing Machinery (ACM)
Abstract
We describe a lifetime analysis method baaed on abstract interpretation of a parallel, non-strict functional language. This method is an extension to previous work in the area which has focused primarily on sequential languages, We present deallocation command verification and insertion algorithms that use this analysis method, and we describe the compile-time and run-time performance of these sJgorithms when applied to several large benchmarks. No previous studies seriously evaluated the performance of compiler-directed storage reclamation. We have found these algorithms to be quite effective on scientific Id programs using tuples and arrays, as well es a symbolic Id program using recursive data structures. Using our techniques, we were able to insert code that reclaimed 80 to 100 percent of the total dynamic storage allocated by several programs at a cost of a factor of 1.5 to 30 increase in compilation time. Although compilation time may be increased significantly by these techniques, the payoff in terms of the improved storage management behavior of programs seems worthwhile.Keywords
This publication has 8 references indexed in Scilit:
- A syntactic approach to program transformationsPublished by Association for Computing Machinery (ACM) ,1991
- On determining lifetime and aliasing of dynamically allocated data in higher-order functional specificationsPublished by Association for Computing Machinery (ACM) ,1990
- The interprocedural analysis and automatic parallelization of Scheme programsHigher-Order and Symbolic Computation, 1989
- Vectorization on Monte Carlo particle transport: an architectural study using the LANL benchmark “GAMTEB”Published by Association for Computing Machinery (ACM) ,1989
- Lifetime analysis of dynamically allocated objectsPublished by Association for Computing Machinery (ACM) ,1988
- Garbage collection can be faster than stack allocationInformation Processing Letters, 1987
- Shifting garbage collection overhead to compile timeCommunications of the ACM, 1977
- Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpointsPublished by Association for Computing Machinery (ACM) ,1977