Selective search of inlining vectors for program optimization

  • Authors:
  • Rosario Cammarota;Arun Kejariwal;Debora Donato;Alexandru Nicolau;Alexander Veidenbaum

  • Affiliations:
  • University of California Irvine, Irvine, CA, USA;Yahoo! Inc., Sunnyvale, CA, USA;Yahoo! Inc., Sunnyvale, CA, USA;University of California Irvine, Irvine, CA, USA;University of California Irvine, Irvine, CA, USA

  • Venue:
  • Proceedings of the 9th conference on Computing Frontiers
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

We propose a novel technique to select the inlining options of a compiler - referred to as an inlining vector, for program optimization. The proposed technique trains a machine learning algorithm to model the relation between inlining vectors and performance (completion time). The training set is composed of sample runs of the programs to optimize - that are compiled with a limited number of inlining vectors. Subject to a given compiler, the model evaluates the benefit of inlining combined with other compiler heuristics. The model is subsequently used to select the inlining vector which minimizes the predicted completion time of a program with respect to a given level of optimization. We present a case study based on the compiler GNU GCC. We used our technique to improve performance of 403.gcc from SPEC CPU2006 - a program which is notoriously hard to optimize - with respect to the optimization level -O3 as the baseline. On the state-of-the-art Intel Xeon Westmere architecture, 403.gcc, compiled using the inlining vectors selected by our technique, outperforms the baseline by up to 9%.