Which Part of the Heap is Useful? Improving Heap Liveness Analysis
Vini Kanvar, Uday P. Khedker

TL;DR
This paper presents an improved static heap liveness analysis method that uses access graphs and automata to better identify unused heap memory, significantly enhancing scalability and reducing analysis complexity.
Contribution
It introduces scalable, efficient heap liveness analysis using deterministic automata and minimized access paths, extending analysis capacity to larger codebases.
Findings
Scales to 36 kLoC from 10.5 kLoC in existing methods.
Reduces liveness information by up to 100 times.
Maintains soundness while significantly improving efficiency.
Abstract
With the growing sizes of data structures allocated in heap, understanding the actual use of heap memory is critically important for minimizing cache misses and reclaiming unused memory. A static analysis aimed at this is difficult because the heap locations are unnamed. Using allocation sites to name them creates very few distinctions making it difficult to identify allocated heap locations that are not used. Heap liveness analysis using access graphs solves this problem by (a) using a storeless model of heap memory by naming the locations with access paths, and (b) representing the unbounded sets of access paths (which are regular languages) as finite automata. We improve the scalability and efficiency of heap liveness analysis, and reduce the amount of computed heap liveness information by using deterministic automata and by minimizing the inclusion of aliased access paths in the…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsShoulder and Clavicle Injuries · Shoulder Injury and Treatment
