ACM Home Page
Please provide us with feedback. Feedback
Digital Library logoTake a look at the new version of this page: [ beta version ]. Tell us what you think.
Abstracting access patterns of dynamic memory using regular expressions
Full text PdfPdf (956 KB)
Source
ACM Transactions on Architecture and Code Optimization (TACO) archive
Volume 5 ,  Issue 4  (March 2009) table of contents
Article No.: 18  
Year of Publication: 2009
ISSN:1544-3566
Authors
Jinseong Jeon  Agency for Defense Development, Korea
Keoncheol Shin  Korea Advanced Institute of Science and Technology (KAIST)
Hwansoo Han  Sungkyunkwan University, Gyeonggi-do, Republic of Korea
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 14,   Downloads (12 Months): 199,   Citation Count: 0
Additional Information:

abstract   references   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/1498690.1498693
What is a DOI?

ABSTRACT

Unless the speed gap between CPU and memory disappears, efficient memory usage remains a decisive factor for performance. To optimize data usage of programs in the presence of the memory hierarchy, we are particularly interested in two compiler techniques: pool allocation and field layout restructuring. Since foreseeing runtime behaviors of programs at compile time is difficult, most of the previous work relied on profiling. On the contrary, our goal is to develop a fully automatic compiler that statically transforms input codes to use memory efficiently. Noticing that regular expressions, which denote repetition explicitly, are sufficient for memory access patterns, we describe how to extract memory access patterns as regular expressions in detail. Based on static patterns presented in regular expressions, we apply pool allocation to repeatedly accessed structures and exploit field layout restructuring according to field affinity relations of chosen structures. To make a scalable framework, we devise and apply new abstraction techniques, which build and interpret access patterns for the whole programs in a bottom-up fashion. We implement our analyses and transformations with the CIL compiler. To verify the effect and scalability of our scheme, we examine 17 benchmarks including 2 SPECINT 2000 benchmarks whose source lines of code are larger than 10,000. Our experiments demonstrate that the static layout transformations for dynamic memory can reduce L1D cache misses by 16% and execution times by 14% on average.


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
 
3
Bourdoncle, F. 1993. Efficient chaotic iteration strategies with widenings. In Proceedings of the International Conference on Formal Methods in Programming and Their Applications (FMPA'93). ACM, New York, 128--141.
4
5
6
7
8
9
 
10
11
 
12
13
 
14
McGill benchmark suite. http://llvm.org/.
 
15
16
17
 
18
Rundberg, P. and Warg, F. Freebench v1.0 benchmark suite. http://www.freebench.org/.
19
20
 
21
22
23
24
 
25
 
26
Valgrind. http://valgrind.org.
 
27
Wheeler, D. A. SLOCcount. http://www.dwheeler.com/sloccount/.
28

Collaborative Colleagues:
Jinseong Jeon: colleagues
Keoncheol Shin: colleagues
Hwansoo Han: colleagues