TY - GEN
T1 - Identification of logically related heap regions
AU - Marron, Mark
AU - Kapur, Deepak
AU - Hermenegildo, Manuel
PY - 2009
Y1 - 2009
N2 - This paper introduces a novel set of heuristics for identifying logically related sections of the heap such as recursive data structures, objects that are part of the same multi-component structure, and related groups of objects stored in the same collection/array. When combined with lifetime properties of these structures, this information can be used to drive a range of program optimizations including pool allocation, object co-location, static deallocation, and region-based garbage collection. The technique outlined in this paper also improves the efficiency of the static analysis by providing a compact normal form for the abstract models (speeding the convergence of the static analysis). We focus on two techniques for grouping parts of the heap. The first is a technique for identifying recursive data structures in object-oriented programs based on connectivity and type information. The second technique is a method for grouping objects that make up the same composite structure and that allows us to partition the objects stored in a collection/array into groups based on a similarity relation. We provide a parametric component in the similarity relation to support specialized analysis applications (e.g. numeric analysis of object fields). Using the Em3d and Barnes-Hut benchmarks from the JOlden suite we show how these grouping methods can be used to identify various types of logical structures and enable the application of many region-based optimizations.
AB - This paper introduces a novel set of heuristics for identifying logically related sections of the heap such as recursive data structures, objects that are part of the same multi-component structure, and related groups of objects stored in the same collection/array. When combined with lifetime properties of these structures, this information can be used to drive a range of program optimizations including pool allocation, object co-location, static deallocation, and region-based garbage collection. The technique outlined in this paper also improves the efficiency of the static analysis by providing a compact normal form for the abstract models (speeding the convergence of the static analysis). We focus on two techniques for grouping parts of the heap. The first is a technique for identifying recursive data structures in object-oriented programs based on connectivity and type information. The second technique is a method for grouping objects that make up the same composite structure and that allows us to partition the objects stored in a collection/array into groups based on a similarity relation. We provide a parametric component in the similarity relation to support specialized analysis applications (e.g. numeric analysis of object fields). Using the Em3d and Barnes-Hut benchmarks from the JOlden suite we show how these grouping methods can be used to identify various types of logical structures and enable the application of many region-based optimizations.
UR - http://www.scopus.com/inward/record.url?scp=70450248732&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=70450248732&partnerID=8YFLogxK
U2 - 10.1145/1542431.1542446
DO - 10.1145/1542431.1542446
M3 - Conference contribution
AN - SCOPUS:70450248732
SN - 9781605583471
T3 - International Symposium on Memory Management, ISMM
SP - 89
EP - 98
BT - ISMM'09 - Proceedings of the 2009 ACM SIGPLAN International Symposium on Memory Management
T2 - 2009 ACM SIGPLAN International Symposium on Memory Management, ISMM'09
Y2 - 19 June 2009 through 20 June 2009
ER -