| | |
Summary: Language Support for Regions
David Gay and Alex Aiken #
EECS Department
University of California, Berkeley
{dgay,aiken}@cs.berkeley.edu
ABSTRACT
Regionbased memory management systems structure mem
ory 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, pre
vents unsafe region deletions by keeping a count of refer
ences to each region. Using type annotations that make the
structure of a program's regions more explicit, we reduce the
overhead of reference counting from a maximum of 27% to
a maximum of 11% on a suite of realistic 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 par
tially or totally unknown. A distribution of RC is available
at http://www.cs.berkeley.edu/~dgay/rc.tar.gz.
|