Rapidly Selecting Good Compiler Optimizations Using Performance Counters

John Cavazos, Grigori Fursin, Felix Agakov, Edwin V. Bonilla, Michael O'Boyle, Olivier Temam

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract / Description of output

Applying the right compiler optimizations to a particular program can have a significant impact on program performance. Due to the non-linear interaction of compiler optimizations, however, determining the best setting is nontrivial. There have been several proposed techniques that search the space of compiler options to find good solutions; however such approaches can be expensive. This paper proposes a different approach using performance counters as a means of determining good compiler optimization settings. This is achieved by learning a model off-line which can then be used to determine good settings for any new program. We show that such an approach outperforms the state-of the- art and is two orders of magnitude faster on average. Furthermore, we show that our performance counter-based approach outperforms techniques based on static code features. Using our technique we achieve a 17% improvement over the highest optimization setting of the commercial PathScale EKOPath 2.3.1 optimizing compiler on the SPEC benchmark suite on a recent AMD Athlon 64 3700+ platform.
Original languageEnglish
Title of host publicationCode Generation and Optimization, 2007. CGO '07. International Symposium on
Place of PublicationWashington, DC, USA
PublisherInstitute of Electrical and Electronics Engineers (IEEE)
Number of pages13
ISBN (Print)0-7695-2764-7
Publication statusPublished - Mar 2007


Dive into the research topics of 'Rapidly Selecting Good Compiler Optimizations Using Performance Counters'. Together they form a unique fingerprint.

Cite this