DocumentCode :
3472015
Title :
Inline analysis: beyond selection heuristics
Author :
Chakrabarti, Dhruva R. ; Liu, Shin-Ming
Author_Institution :
Java, Compilers, & Tools Lab., Hewlett-Packard Co., Cupertino, CA, USA
fYear :
2006
fDate :
26-29 March 2006
Abstract :
Research on procedure inlining has mainly focused on heuristics that decide whether inlining a particular call-site maximizes application performance. However, other equally important aspects of inline analysis such as call-site analysis order, indirect effects of inlining, and selection of the most profitable version of a procedure warrant more attention. This paper evaluates a number of different sequences in which call-sites are examined for inlining and shows that choosing the correct order is crucial to obtaining the best run-time performance. We then present a novel, work-list-based, and updated sequence that achieves the best results. While applying cross-module inline analysis on large applications with thousands of files and millions of lines of code, we separate the analysis from the transformation phase and allow the former to work solely on summary information in order to reduce compile-time and memory consumption. A focus of this paper is to enumerate the summaries that our compiler maintains, present a technique to compute the goodness factor on which the work-list sequence is based, and describe methods to continuously update the summaries as and when a call-site is accepted for inlining. We then introduce inline specialization, a new technique that facilitates inlining into call chains selectively. The power of inline specialization lies in its ability to choose the most profitable version of the called procedure without having to maintain multiple versions at any point of time. We discuss implementation of these techniques in the HPUX Itanium® production compiler and present experimental results showing that a dynamic work-list based analysis order, comprehensive summary updates, and inline specialization significantly improve performance of applications.
Keywords :
optimising compilers; HPUX Itanium production compiler; call chains; compile-time; cross-module inline analysis; inline specialization; memory consumption; selection heuristics; work-list based analysis order; work-list sequence; Information analysis; Iron; Java; Laboratories; Optimizing compilers; Performance analysis; Production; Profitability; Runtime; Scalability;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Code Generation and Optimization, 2006. CGO 2006. International Symposium on
Print_ISBN :
0-7695-2499-0
Type :
conf
DOI :
10.1109/CGO.2006.17
Filename :
1611543
Link To Document :
بازگشت