ACM Home Page
Please provide us with feedback. Feedback
Automatic pool allocation: improving performance by controlling data structure layout in the heap
Full text PdfPdf (215 KB)
Source Conference on Programming Language Design and Implementation archive
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation table of contents
Chicago, IL, USA
SESSION: Optimization table of contents
Pages: 129 - 142  
Year of Publication: 2005
ISBN:1-59593-056-6
Also published in ...
Authors
Chris Lattner  University of Illinois at Urbana-Champaign, Urbana, IL
Vikram Adve  University of Illinois at Urbana-Champaign, Urbana, IL
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 6,   Downloads (12 Months): 89,   Citation Count: 23
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1065010.1065027
What is a DOI?

ABSTRACT

This paper describes Automatic Pool Allocation, a transformation framework that segregates distinct instances of heap-based data structures into seperate memory pools and allows heuristics to be used to partially control the internal layout of those data structures. The primary goal of this work is performance improvement, not automatic memory management, and the paper makes several new contributions. The key contribution is a new compiler algorithm for partitioning heap objects in imperative programs based on a context-sensitive pointer analysis, including a novel strategy for correct handling of indirect (and potentially unsafe) function calls. The transformation does not require type safe programs and works for the full generality of C and C++. Second, the paper describes several optimizations that exploit data structure partitioning to further improve program performance. Third, the paper evaluates how memory hierarchy behavior and overall program performance are impacted by the new transformations. Using a number of benchmarks and a few applications, we find that compilation times are extremely low, and overall running times for heap intensive programs speed up by 10-25% in many cases, about 2x in two cases, and more than 10x in two small benchmarks. Overall, we believe this work provides a new framework for optimizing pointer intensive programs by segregating and controlling the layout of heap-based data structures.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

1
 
2
T. Austin, et al. The Pointer-intensive Benchmark Suite. www.cs.wisc.edu/~austin/ptr-dist.html+, Sept 1995.
3
4
5
6
 
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
23
24
25
 
26
27
28
29
 
30
 
31
 
32
33
 
34
35
36
 
37
 
38
E. M. Nystrom, H.-S. Kim, and W. mei W. Hwu. Bottom-up and top-down context-sensitive summary-based pointer analysis. In SAS, 2004.
39
 
40
P. Rundberg and F. Warg. The FreeBench v1.0 Benchmark Suite. http://www.freebench.org+, Jan 2002.
41
 
42
R. Shaham, E. Yahav, E. K. Kolodner, and M. Sagiv. Establishing local temporal heap safety properties with applications to compile-time memory management. In SAS, San Diego, USA, June 2003.
43
44
45
46

CITED BY  23

Collaborative Colleagues:
Chris Lattner: colleagues
Vikram Adve: colleagues