Language Support and Compilation Techniques for Regions
David E. Gay and Alex Aiken
EECS Department, University of California, Berkeley
Technical Report No. UCB/CSD-00-1115
, 2000
http://www2.eecs.berkeley.edu/Pubs/TechRpts/2000/CSD-00-1115.pdf
Region-based memory management systems structures memory by grouping objects in regions under program control. Memory is reclaimed by deleting regions, freeing all objects stored therein. Our compiler for C with regions, RC, prevents unsafe region deletions by keeping a count of references to each region. RC is compiled to C. Using type annotations that make the structure of a program's regions more explicit and a reference counting scheme that optimises reference count operations on local variables, we reduce the overhead of reference counting from a maximum of 27% to a maximum of 18% on our benchmarks. We generalise these annotations in a region type system whose main novelty is the use of existentially quantified abstract regions to represent pointers to objects whose region is partially or totally unknown.
BibTeX citation:
@techreport{Gay:CSD-00-1115, Author= {Gay, David E. and Aiken, Alex}, Title= {Language Support and Compilation Techniques for Regions}, Year= {2000}, Month= {Nov}, Url= {http://www2.eecs.berkeley.edu/Pubs/TechRpts/2000/5340.html}, Number= {UCB/CSD-00-1115}, Abstract= {Region-based memory management systems structures memory by grouping objects in regions under program control. Memory is reclaimed by deleting regions, freeing all objects stored therein. Our compiler for C with regions, RC, prevents unsafe region deletions by keeping a count of references to each region. RC is compiled to C. Using type annotations that make the structure of a program's regions more explicit and a reference counting scheme that optimises reference count operations on local variables, we reduce the overhead of reference counting from a maximum of 27% to a maximum of 18% on our benchmarks. We generalise these annotations in a region type system whose main novelty is the use of existentially quantified abstract regions to represent pointers to objects whose region is partially or totally unknown.}, }
EndNote citation:
%0 Report %A Gay, David E. %A Aiken, Alex %T Language Support and Compilation Techniques for Regions %I EECS Department, University of California, Berkeley %D 2000 %@ UCB/CSD-00-1115 %U http://www2.eecs.berkeley.edu/Pubs/TechRpts/2000/5340.html %F Gay:CSD-00-1115