Journal of Universal Computer Science (Jan 2019)

Pinhão: An Auto-tunning System for Compiler Optimizations Guided by Hot Functions

  • Marcos Siraichi,
  • Caio Henrique Segawa Tonetti,
  • Anderson Faustino da Silva

DOI
https://doi.org/10.3217/jucs-025-01-0042
Journal volume & issue
Vol. 25, no. 1
pp. 42 – 72

Abstract

Read online Read online Read online

The literature presents several auto-tunning systems for compiler optimizations, which employ a variety of techniques; however, most systems do not explore the premise that a large amount of program runtime is spent by hot functions which are the portions at which compiler optimizations will provide the greatest benefit. In this paper, we propose Pinhão, an auto-tunning system for compiler optimizations that uses hot functions to guide the process of exploring which compiler optimizations should be enabled during target code generation. Pinhão employs a hybrid technique - a machine learning technique, as well as an iterative compilation technique - to find an effective compiler optimization sequence that fits the characteristics of the unseen program. We implemented Pinhão as a LLVM tool, and the experimental results indicate that Pinhão finds effective sequences evaluating a few points in the search space. Furthermore, Pinh~ao outperforms the well-engineered compiler optimization levels, as well as other techniques.

Keywords