2003•Unpublished venueRequires access

Compiler Optimization-Space Exploration

Spyridon Triantafyllis, Manish Vachharajani, Neil Vachharajani, David I. August

Open publisher page 193 citations

Abstract

To meet the demands of modern architectures, optimizing compilers must incorporate an ever larger number of increas-ingly complex transformation algorithms. Since code transfor-mations may often degrade performance or interfere with sub-sequent transformations, compilers employ predictive heuris-tics 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 en-tirely. While this process results in a compiler capable of gen-erating good average code quality across the target benchmark set, it is at the cost of missed optimization opportunities in in-dividual code segments. To replace predictive heuristics, researchers have proposed compilers which explore many optimization options, select-ing the best one a posteriori. Unfortunately, these existing it-erative compilation techniques are not practical for reasons of compile time and applicability. In this paper, we present the Optimization-SpaceExploration (OSE) compiler organiza-tion, the first practical iterative compilation strategy applica-ble 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 num-ber 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 com-piler for IA-64 yields a significant performance improvement, more than 20 % in some cases, on Itanium for SPEC codes. 1.

About this research paper

What this paper is about

To meet the demands of modern architectures, optimizing compilers must incorporate an ever larger number of increas-ingly complex transformation algorithms. Since code transfor-mations may often degrade performance or interfere with sub-sequent transformations, compilers employ predictive heuris-tics 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 en-tirely. While this process results in a compiler capable of gen-erating good average code quality across the target benchmark set, it is at the cost of missed optimization opportunities in in-dividual code segments. To replace predictive heuristics, researchers have proposed compilers which explore many optimization options, select-ing the best one a posteriori. Unfortunately, these existing it-erative compilation techniques are not practical for reasons of compile time and applicability. In this paper, we present the Optimization-SpaceExploration (OSE) compiler organiza-tion, the first practical iterative compilation strategy applica-ble 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 num-ber 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 com-piler for IA-64 yields a significant performance improvement, more than 20 % in some cases, on Itanium for SPEC codes. 1.

Why it matters

OpenAlex reports 193 citations for this work. Citation counts describe recorded attention and do not establish research quality.

Key contribution

A contribution statement is not available in the OpenAlex record.

Method / approach

Method details are not available in the OpenAlex metadata.

Main findings

Findings are not separately available in the OpenAlex metadata.

Limitations

Limitations are not available in the OpenAlex metadata.

Applications

Application details are not available in the OpenAlex metadata.

Available abstract

To meet the demands of modern architectures, optimizing compilers must incorporate an ever larger number of increas-ingly complex transformation algorithms. Since code transfor-mations may often degrade performance or interfere with sub-sequent transformations, compilers employ predictive heuris-tics 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 en-tirely. While this process results in a compiler capable of gen-erating good average code quality across the target benchmark set, it is at the cost of missed optimization opportunities in in-dividual code segments. To replace predictive heuristics, researchers have proposed compilers which explore many optimization options, select-ing the best one a posteriori. Unfortunately, these existing it-erative compilation techniques are not practical for reasons of compile time and applicability. In this paper, we present the Optimization-SpaceExploration (OSE) compiler organiza-tion, the first practical iterative compilation strategy applica-ble 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 num-ber 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 com-piler for IA-64 yields a significant performance improvement, more than 20 % in some cases, on Itanium for SPEC codes. 1.

Key concepts: Compiler, Computer science, Heuristics, Benchmark (surveying), Optimizing compiler, Loop optimization, Interprocedural optimization, Parallel computing

Related papers

Back to paper searchBrowse research topicsOriginal source