Optimization coaching: Optimizers learn to communicate with programmers

Vincent St-Amour*, Sam Tobin-Hochstadt, Matthias Felleisen

*Corresponding author for this work

Research output: Contribution to journalArticlepeer-review

3 Scopus citations


Optimizing compilers map programs in high-level languages to high-performance target language code. To most programmers, such a compiler constitutes an impenetrable black box whose inner workings are beyond their understanding. Since programmers often must understand the workings of their compilers to achieve their desired performance goals, they typically resort to various forms of reverse engineering, such as examining compiled code or intermediate forms. Instead, optimizing compilers should engage programmers in a dialog. This paper introduces one such possible form of dialog: optimization coaching. An optimization coach watches while a program is compiled, analyzes the results, generates suggestions for enabling further compiler optimization in the source program, and presents a suitable synthesis of its results to the programmer. We present an evaluation based on case studies, which illustrate how an optimization coach can help programmers achieve optimizations resulting in substantial performance improvements.

Original languageEnglish (US)
Pages (from-to)163-178
Number of pages16
JournalACM SIGPLAN Notices
Issue number10
StatePublished - Oct 2012


  • Optimization Coaching
  • Visualization

ASJC Scopus subject areas

  • General Computer Science


Dive into the research topics of 'Optimization coaching: Optimizers learn to communicate with programmers'. Together they form a unique fingerprint.

Cite this