AutoFDO builds tools using clang
Top 58.1% on sourcepulse
AutoFDO is a toolchain extension that automatically optimizes C/C++ programs by leveraging hardware performance counters and profile-guided optimization (PGO). It targets developers and researchers seeking to improve application performance without manual code changes, by generating optimized binaries based on runtime profiling data.
How It Works
AutoFDO instruments binaries to collect hardware performance counter data (like cache misses, branch mispredictions) during execution. This data is then used to generate a profile that guides the compiler (Clang/GCC) to make optimization decisions, such as function layout and inlining, to improve instruction cache locality and reduce branch mispredictions.
Quick Start & Requirements
sudo apt install libunwind-dev libgflags-dev libssl-dev libelf-dev protobuf-compiler cmake zstd clang g++
v0.20.1
, mkdir build && cd build
, cmake -DCMAKE_C_COMPILER=clang-10 -DCMAKE_CXX_COMPILER=clang++-10 -DCMAKE_BUILD_TYPE=Release ../
, make -j 4
.Highlighted Details
Maintenance & Community
Licensing & Compatibility
Limitations & Caveats
The build process requires specific compiler versions (clang-10 or g++-9) and is demonstrated on Ubuntu 20.04, suggesting potential compatibility issues on other distributions or newer Ubuntu versions.
1 week ago
Inactive