JUCS - Journal of Universal Computer Science 25(1): 42-72, doi: 10.3217/jucs-025-01-0042
Pinhão: An Auto-tunning System for Compiler Optimizations Guided by Hot Functions
expand article infoMarcos Yukio Siraichi, Caio Henrique Segawa Tonetti, Anderson Faustino da Silva
‡ State University of Maringá, Maringá, Brazil
Open Access
Abstract
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
auto-tunning system, compiler, optimization, machine learning, iterative compilation