A Case-Based Reasoning Approach to Find Good Compiler Optimization Sequences

Among several optimizations provided by an optimizing compiler, it is a challenge, even for the most expert programmer, to know which compiler optimizations will generate the best target code. The goal of this paper is to describe a case-based reasoning approach that automatically selects a compiler optimization sequence that is able to outperform a well-engineered compiler optimization level in terms of runtime. The results obtained by our approach indicate that it achieves improvement on a set of standard benchmarks over a well-engineered compiler optimization sequence.

[1]  Markus Rupp,et al.  Compiler-based optimizations impact on embedded software power consumption , 2009, 2009 Joint IEEE North-East Workshop on Circuits and Systems and TAISA Conference.

[2]  N.G. Santiago,et al.  Impact of source code optimizations on power consumption of embedded systems , 2008, 2008 Joint 6th International IEEE Northeast Workshop on Circuits and Systems and TAISA Conference.

[3]  Dean M. Tullsen,et al.  The effect of compiler optimizations on Pentium 4 power consumption , 2003, Seventh Workshop on Interaction Between Compilers and Computer Architectures, 2003. INTERACT-7 2003. Proceedings..

[4]  Michael F. P. O'Boyle,et al.  Rapidly Selecting Good Compiler Optimizations using Performance Counters , 2007, International Symposium on Code Generation and Optimization (CGO'07).

[5]  Vikram S. Adve,et al.  LLVM: a compilation framework for lifelong program analysis & transformation , 2004, International Symposium on Code Generation and Optimization, 2004. CGO 2004..

[6]  Lizy K. John,et al.  Is Compiling for Performance — Compiling for Power? , 2001 .

[7]  Sameer Kulkarni,et al.  An evaluation of different modeling techniques for iterative compilation , 2011, 2011 Proceedings of the 14th International Conference on Compilers, Architectures and Synthesis for Embedded Systems (CASES).

[8]  Jack Dongarra,et al.  Using PAPI for Hardware Performance Monitoring on Linux Systems , 2001 .

[9]  L. Almagor,et al.  Finding effective compilation sequences , 2004, LCTES '04.

[10]  Suresh Purini,et al.  Finding good optimization sequences covering program space , 2013, TACO.

[11]  Mahmut T. Kandemir,et al.  Influence of compiler optimizations on system power , 2001, IEEE Trans. Very Large Scale Integr. Syst..

[12]  Krishna V. Palem,et al.  The emerging power crisis in embedded processors: what can a poor compiler do? , 2001, CASES '01.

[13]  Rudolf Eigenmann,et al.  Fast and effective orchestration of compiler optimizations for automatic performance tuning , 2006, International Symposium on Code Generation and Optimization (CGO'06).

[14]  Jichi Guo,et al.  Automated empirical tuning of scientific codes for performance and power consumption , 2011, HiPEAC.