Affiliation:
1. EECS Department, University of California, Berkeley
Abstract
Region-based memory management systems structure 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. 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 partially or totally unknown. A distribution of RC is available at http://www.cs.berkeley.edu/~dgay/rc.tar.gz.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
25 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Reference Capabilities for Flexible Memory Management;Proceedings of the ACM on Programming Languages;2023-10-16
2. Parallelism in a Region Inference Context;Proceedings of the ACM on Programming Languages;2023-06-06
3. Garbage-Collection Safety for Region-Based Type-Polymorphic Programs;Proceedings of the ACM on Programming Languages;2023-06-06
4. Improving Automatic C-to-Rust Translation with Static Analysis;2023 IEEE/ACM 45th International Conference on Software Engineering: Companion Proceedings (ICSE-Companion);2023-05
5. Concrat: An Automatic C-to-Rust Lock API Translator for Concurrent Programs;2023 IEEE/ACM 45th International Conference on Software Engineering (ICSE);2023-05