DocumentCode :
3355042
Title :
Compiler optimization-space exploration
Author :
Triantafyllis, Spyridon ; Vachharajani, Manish ; Vachharajani, Neil ; August, David I.
Author_Institution :
Departments of Comput. Sci. & Electr. Eng., Princeton Univ., NJ, USA
fYear :
2003
fDate :
23-26 March 2003
Firstpage :
204
Lastpage :
215
Abstract :
To meet the demands of modern architectures, optimizing compilers must incorporate an ever larger number of increasingly complex transformation algorithms. Since code transformations may often degrade performance or interfere with subsequent transformations, compilers employ predictive heuristics to guide optimizations by predicting their effects a priori. Unfortunately, the unpredictability of optimization interaction and the irregularity of today´s wide-issue machines severely limit the accuracy of these heuristics. As a result, compiler writers may temper high variance optimizations with overly conservative heuristics or may exclude these optimizations entirely. While this process results in a compiler capable of generating good average code quality across the target benchmark set, it is at the cost of missed optimization opportunities in individual code segments. To replace predictive heuristics, researchers have proposed compilers which explore many optimization options, selecting the best one a posteriori. Unfortunately, these existing iterative compilation techniques are not practical for reasons of compile time and applicability. We present the Optimization-Space Exploration (OSE) compiler organization, the first practical iterative compilation strategy applicable to optimizations in general-purpose compilers. Instead of replacing predictive heuristics, OSE uses the compiler writer´s knowledge encoded in the heuristics to select a small number of promising optimization alternatives for a given code segment. Compile time is limited by evaluating only these alternatives for hot code segments using a general compile-time performance estimator An OSE-enhanced version of Intel´s highly-tuned, aggressively optimizing production compiler for IA-64 yields a significant performance improvement, more than 20% in some cases, on Itanium for SPEC codes.
Keywords :
heuristic programming; optimising compilers; IA-64; OSE; Optimization-Space Exploration compiler organization; SPEC codes; aggressively optimizing production compiler; average code quality; code segment; code transformations; compile time performance estimator; compiler optimization-space exploration; compiler writers; complex transformation algorithms; conservative heuristics; general-purpose compilers; high variance optimizations; hot code segments; individual code segments; iterative compilation strategy; iterative compilation techniques; missed optimization opportunities; optimizing compilers; performance improvement; predictive heuristics; target benchmark set; wide-issue machines; Computer architecture; Computer science; Cost function; Degradation; Microarchitecture; Optimizing compilers; Parallel processing; Performance gain; Production; Resource management;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Code Generation and Optimization, 2003. CGO 2003. International Symposium on
Print_ISBN :
0-7695-1913-X
Type :
conf
DOI :
10.1109/CGO.2003.1191546
Filename :
1191546
Link To Document :
بازگشت