Published January 16, 2019 | Version v1
Software Open

Artifact for BOLT: A Practical Binary Optimizer for Data Centers and Beyond

Description

This artifact contains the software required to reproduce the experimental findings of the paper "BOLT: A Practical Binary Optimizer for Data Centers and Beyond", CGO 2019. The open-source workload evaluated on this paper is clang 7 and gcc 8.2. Our goal is to demonstrate that building clang/gcc with all optimizations, including LTO and PGO, still leaves opportunities for a post-link optimizer such as BOLT to do a better job at basic block placement and function reordering, significantly improving workload performance.

The paper advocates for a two-step profiling pipeline (PGO and BOLT) evaluated on a data-center environment, showing that doing a single pass of profile collection is not enough to leverage the full potential of profile-guide optimizations. In this two-step approach, PGO or AutoFDO can be used to feed the compiler with profile information, which is an important enabler of better inlining decisions, while a second pass is used to collect profile for a post-link optimizer such as BOLT, enabling us to improve basic block order and function order in the final binary and further increase performance.

Files

Files (2.7 GB)

Name Size Download all
md5:76bd3670bb8c93874de58e4d8c29daa2
2.7 GB Download