# Learning Branch Probabilities in Compiler from Datacenter Workloads

arXiv: https://arxiv.org/abs/2202.06728 · HTML: https://mlsanity.com/paper/2202.06728/

## Key facts

- No citing papers in the map yet (data through 14 Oct 2026).
- Builds on 1 of its 25 references that are in the map.
- First posted on arXiv 10 Feb 2022.

## Builds on (most cited first, 1 of 1)

- [TensorFlow: Large-Scale Machine Learning on Heterogeneous Distributed Systems](https://mlsanity.com/paper/1603.04467/) (2016)

## Abstract (arXiv)

Estimating the probability with which a conditional branch instruction is taken is an important analysis that enables many optimizations in modern compilers. When using Profile Guided Optimizations (PGO), compilers are able to make a good estimation of the branch probabilities. In the absence of profile information, compilers resort to using heuristics for this purpose. In this work, we propose learning branch probabilities from a large corpus of data obtained from datacenter workloads. Using metrics including Root Mean Squared Error, Mean Absolute Error and cross-entropy, we show that the machine learning model improves branch probability estimation by 18-50% in comparison to compiler heuristics. This translates to performance improvement of up to 8.1% on 24 out of a suite of 40 benchmarks with a 1% geomean improvement on the suite. This also results in greater than 1.2% performance improvement in an important search application.
