mirror-llvm-project/bolt/docs
Amir Ayupov 6b9929001d
[BOLT] Add fdata symbols mode (#209932)
Add a new fdata profile mode accepting symbol names as-is.

It addresses the UX gap surfaced by #208313 that all methods of selecting
functions to process (symbolized profile types, `-funcs*` options) expect
disambiguated local symbols. 

Introduce fdata mode activated by a `symbols` header line, where each subsequent
line is a (mangled) symbol name. The names are matched against restored function
names (with disambiguation suffix stripped), and every matching function gets an
execution count of 1. 

This can be used to drive selective instrumentation (`--instrument-hot-only`) or
basic linker-script style optimizations.

Symbols are stored as branch entry data so matching reuses the existing default
branch profile path.

Test Plan:
Update docs/profiles.md and add profile-symbols-mode.s
2026-07-16 17:31:30 -07:00
..
_static
BAT.md [BOLT][Documentation] Prepare documentation for hosting (#201378) 2026-06-28 21:20:57 +08:00
BinaryAnalysis.md [BOLT][Documentation] Prepare documentation for hosting (#201378) 2026-06-28 21:20:57 +08:00
BOLTAArch64OptimizationStatus.md [docs] Finish MyST migration for BOLT docs (#210199) 2026-07-16 23:57:41 +00:00
CMakeLists.txt [docs] try again to handle doxygen everywhere (#203081) 2026-06-11 08:58:36 -04:00
CommandLineArgumentReference.md [BOLT] Drop -znow requirement for PLT optimization on x86-64 (#178758) 2026-01-29 16:10:43 -08:00
conf.py [BOLT][Documentation] Prepare documentation for hosting (#201378) 2026-06-28 21:20:57 +08:00
doxygen-mainpage.dox
doxygen.cfg.in [docs] update CI to use latest release of doxygen (#202420) 2026-06-10 10:25:33 -04:00
generate_doc.py
GettingStarted.md [docs] Finish MyST migration for BOLT docs (#210199) 2026-07-16 23:57:41 +00:00
Heatmap.png
HeatmapHeader.png
Heatmaps.md [BOLT] Add --ba flag to deprecate --nl (#164257) 2025-10-23 10:13:28 +01:00
index.md [docs] Finish MyST migration for BOLT docs (#210199) 2026-07-16 23:57:41 +00:00
OptimizingClang.md [BOLT][Documentation] Prepare documentation for hosting (#201378) 2026-06-28 21:20:57 +08:00
OptimizingLinux.md [BOLT][NFC] Use brstack in guides and user outputs (#163950) 2025-10-20 09:30:06 +00:00
PointerAuthDesign.md [BOLT][Documentation] Prepare documentation for hosting (#201378) 2026-06-28 21:20:57 +08:00
profiles.md [BOLT] Add fdata symbols mode (#209932) 2026-07-16 17:31:30 -07:00
README.txt
RuntimeLibrary.md [bolt] Fix typos discovered by codespell (#124726) 2025-10-14 14:45:40 +02:00

BOLT Documentation
====================

The BOLT documentation is written using the Sphinx documentation generator. It
is currently tested with Sphinx 1.1.3.

To build the documents into html configure BOLT with the following cmake options:

  * -DLLVM_ENABLE_SPHINX=ON
  * -DBOLT_INCLUDE_DOCS=ON

After configuring BOLT with these options the make rule `docs-bolt-html` should
be available.