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
November 2000

http://www.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},
    Institution = {EECS Department, University of California, Berkeley},
    Year = {2000},
    Month = {Nov},
    URL = {http://www.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://www.eecs.berkeley.edu/Pubs/TechRpts/2000/5340.html
%F Gay:CSD-00-1115