mirror-llvm-project/bolt/tools
Amir Ayupov 61480755ee
[BOLT] Support multiple perf data inputs
Allow multiple -p/-perfdata args (comma-separated and repeated).
Process them in parallel with `--perfdata-jobs/-pj` (default 4,
0 for all available hardware threads). Keep YAML/DataReader
inputs single-profile only.

This also enables density computation with multiple perf files.
Prior to that, it was impossible to compute total density as
it wasn't computed from symbolized profiles.

Depends on
#199323
#199322
#199321
#199320

Test Plan:
Updated pre-aggregated-perf.test and perf_test

For a large binary (300MB text) and 7 ETM perf data files
(6GB each), compared to parallel perf2bolt + merge-fdata:
* processing time is equal: 670+3s -> 669s (within noise),
* output is equivalent: sorted fdata is equal.

Reviewers:
paschalis-mpeis, rafaelauler, yozhu, ayermolo, yavtuk, maksfb, yota9

Reviewed By: paschalis-mpeis, rafaelauler

Pull Request: https://github.com/llvm/llvm-project/pull/199324
2026-06-01 08:24:08 -07:00
..
bat-dump [BOLT] Remove unused local variables (NFC) (#140421) 2025-05-17 17:43:29 -07:00
binary-analysis [BOLT] Only link and initialize supported targets (#127509) 2025-02-18 09:17:51 +01:00
driver [BOLT] Support multiple perf data inputs 2026-06-01 08:24:08 -07:00
heatmap [BOLT] Support multiple perf data inputs 2026-06-01 08:24:08 -07:00
llvm-bolt-fuzzer [BOLT] Only link and initialize supported targets (#127509) 2025-02-18 09:17:51 +01:00
merge-fdata [BOLT][merge-fdata] Preserve event names 2026-05-27 00:38:55 -07:00
CMakeLists.txt