ACM Home Page
Please provide us with feedback. Feedback
A lifetime optimal algorithm for speculative PRE
Full text PdfPdf (1.38 MB)
Source ACM Transactions on Architecture and Code Optimization (TACO) archive
Volume 3 ,  Issue 2  (June 2006) table of contents
Pages: 115 - 155  
Year of Publication: 2006
ISSN:1544-3566
Authors
Jingling Xue  University of New South Wales, Sydney, NSW, Australia
Qiong Cai  University of New South Wales, Sydney, NSW, Australia
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 8,   Downloads (12 Months): 55,   Citation Count: 1
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/1138035.1138036
What is a DOI?

ABSTRACT

A lifetime optimal algorithm, called MC-PRE, is presented for the first time that performs speculative PRE based on edge profiles. In addition to being computationally optimal in the sense that the total number of dynamic computations for an expression in the transformed code is minimized, MC-PRE is also lifetime optimal since the lifetimes of introduced temporaries are also minimized. The key in achieving lifetime optimality lies not only in finding a unique minimum cut on a transformed graph of a given CFG, but also in performing a data-flow analysis directly on the CFG to avoid making unnecessary code insertions and deletions. The lifetime optimal results are rigorously proved. We evaluate our algorithm in GCC against three previously published PRE algorithms, namely, MC-PREcopt (Qiong and Xue's computationally optimal version of MC-PRE), LCM (Knoop, Rüthing, and Steffen's lifetime optimal algorithm for performing nonspeculative classic PRE), and CMP-PRE (Bodik, Gupta, and Soffa's PRE algorithm based on code-motion preventing (CMP) regions, which is speculative but not computationally optimal). We report and analyze our experimental results, obtained from both actual program execution and instrumentation, for all 22 C, C++ and FORTRAN 77 benchmarks from SPECcpu2000 on an Itanium 2 computer system. Our results show that MC-PRE (or MC-PREcopt) is capable of eliminating more partial redundancies than both LCM and CMP-PRE (especially in functions with complex control flow), and, in addition, MC-PRE inserts temporaries with shorter lifetimes than MC-PREcopt. Each of both benefits has contributed to the performance improvements in benchmark programs at the costs of only small compile-time and code-size increases in some benchmarks.


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
Beszedes, A. 2003. Optimizing for space: Measurements and possibilities for improvement. In GCC Summit 2003.
 
3
4
5
 
6
7
 
8
 
9
10
 
11
12
13
14
15
 
16
 
17
Ford, L. R. and Fulkerson, D. R. 1962. Flows in Networks. Princeton University Press, Princeton, NJ.
 
18
Goldberg, A. 2003. Network Optimization Library. http://www.avglab.com/andrew/soft.html.
 
19
20
 
21
 
22
 
23
Hu, T. C. 1970. Integer Programming and Network Flows. Addison-Wesley, Reading, MA.
24
 
25
Kennedy, K. 1972. Safety of code motion. International Journal of Computer Mathematics 3, 2--3, 117--130.
 
26
27
 
28
 
29
30
31
 
32
33
34
35
 
36
 
37
38
39
40
 
41
 
42
 
43
 
44
 
45
Sverre Jarp. 2002. A methodology for using the Itanium 2 performance counters for bottleneck analysis. http://www.gelato.org/pdf/Performance_counters_final.pdf.
46