Meta

Accelerate large-scale applications with BOLT

Jun 19, 2018Maxim Panchenko
Accelerate large-scale applications with BOLT
SummaryAI, from the source post

Introduced BOLT, a binary optimization and layout tool that addresses instruction starvation by optimizing instruction placement in memory. BOLT reconstructs control flow graphs, uses LLVM's MCInst format, and supports Linux binaries (x86-64, AArch64). It leverages sample-based profiling from Linux `perf` tool. BOLT achieved 3-8% performance improvement on HHVM and 2-15% for other services, by isolating frequently executed code and optimizing for hardware features like macro-fusion. BOLT also performs advanced jump table placement, identical code folding, PLT optimization, and constant load elimination.

More from the Scalability and Large-Scale Systems Engineering trail