Litcius/Paper detail

VESPA: static profiling for binary optimization

Angélica Aparecida Moreira, Guilherme Ottoni, Fernando Magno Quintão Pereira

2021Proceedings of the ACM on Programming Languages17 citationsDOIOpen Access PDF

Abstract

Over the past few years, there has been a surge in the popularity of binary optimizers such as BOLT, Propeller, Janus and HALO. These tools use dynamic profiling information to make optimization decisions. Although effective, gathering runtime data presents developers with inconveniences such as unrepresentative inputs, the need to accommodate software modifications, and longer build times. In this paper, we revisit the static profiling technique proposed by Calder et al. in the late 90’s, and investigate its application to drive binary optimizations, in the context of the BOLT binary optimizer, as a replacement for dynamic profiling. A few core modifications to Calder et al.’s original proposal, consisting of new program features and a new regression model, are sufficient to enable some of the gains obtained through runtime profiling. An evaluation of BOLT powered by our static profiler on four large benchmarks (clang, GCC, MySQL and PostgreSQL) yields binaries that are 5.47 % faster than the executables produced by clang -O3.

Topics & Concepts

Profiling (computer programming)Computer scienceBinary numberExecutableSoftwareStatic analysisOperating systemProgramming languageArithmeticMathematicsSoftware Testing and Debugging TechniquesMetaheuristic Optimization Algorithms ResearchParallel Computing and Optimization Techniques
VESPA: static profiling for binary optimization | Litcius