Language Support and Compilation Techniques for Regions

2000 
Region-based memory management systems bring structure to memory management by grouping objects in regions under program control. Memory can only be 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. We show how RC can be compiled to C while still providing good performance. RC is from 13% slower to 53% faster than malloc/free on our benchmarks. We also introduce some new type annotations in RC that make the structure of a program''s regions more explicit and reduce the overhead of reference counting. We generalise these annotations in a region type system whose main novelty is the use of existentially quantified abstract regions. These abstract regions are used to represent pointers to objects whose region is partially or totally unknown.
    • Correction
    • Source
    • Cite
    • Save
    • Machine Reading By IdeaReader
    17
    References
    1
    Citations
    NaN
    KQI
    []