International Symposium on Code Generation and Optimization (CGO'07)
Rapidly Selecting Good Compiler Optimizations using Performance Counters
San Jose, California
March 11-March 14
ISBN: 0-7695-2764-7
Grigori Fursin, ALCHEMY Group, INRIA Futurs and LRI, Paris-Sud University, France
Olivier Temam, ALCHEMY Group, INRIA Futurs and LRI, Paris-Sud University, France
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-ofthe- 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.
Citation:
John Cavazos, Grigori Fursin, Felix Agakov, Edwin Bonilla, Michael F.P. O?Boyle, Olivier Temam, "Rapidly Selecting Good Compiler Optimizations using Performance Counters," cgo, pp.185-197, International Symposium on Code Generation and Optimization (CGO'07), 2007