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 |