DocumentCode :
3357615
Title :
Context-aware code optimization
Author :
Bolat, Murat ; Li, Xiaoming
Author_Institution :
Dept. of Electr. & Comput. Eng., Univ. of Delaware, Newark, DE, USA
fYear :
2009
fDate :
14-16 Dec. 2009
Firstpage :
256
Lastpage :
263
Abstract :
A program segment such as a function or a basic block sequence may display different behaviors during the execution of the program. For example, a basic block sequence may consistently show few cache misses during the first 10 times it is executed, while the same basic block sequence may experience high number of cache misses when the sequence is invoked in the next 100 times. The divergence within the runtime behavior of program segment implies that different optimization choices should be made even for a single code segment if it shows different behaviors under different runtime contexts. However, traditional compilation technique rarely, if ever, takes advantage of that optimization opportunity. This concept is different from the finding of hot path, which has been done in both static compilation and dynamic optimization, whose purpose is to find the most frequently executed code segment and then to apply more aggressive and more expensive optimizations on that code segment. For the most part, behavior divergence other than execution frequency is not a factor in the determination of which optimizations to be applied to the segment. In this paper, we propose a novel feedback-driven program optimization technique that profiles and determines the runtime behaviors of code segments in a program to find the different patterns of behavior, correlates different runtime behaviors of a program segment with its program source code, and uses an empirical search method to customize the choice of optimization for same program segments under different runtime behaviors. We implement our optimization technique in LLVM and test our approach with SPEC2000 and SPEC2006 benchmarks. The preliminary results show promising performance improvement compared with the standard optimization settings used by the benchmarks.
Keywords :
optimisation; program compilers; ubiquitous computing; SPEC2000 benchmarks; SPEC2006 benchmarks; block sequence; context-aware code optimization; execution frequency; feedback-driven program optimization technique; program compilation technique; program segment; program source code; single code segment; Benchmark testing; Computer displays; Dynamic compiler; Frequency; Optimization methods; Runtime; Search methods;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Performance Computing and Communications Conference (IPCCC), 2009 IEEE 28th International
Conference_Location :
Scottsdale, AZ
ISSN :
1097-2641
Print_ISBN :
978-1-4244-5737-3
Type :
conf
DOI :
10.1109/PCCC.2009.5403838
Filename :
5403838
Link To Document :
بازگشت