mirror-llvm-project/bolt/lib/Profile
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
..
BoltAddressTranslation.cpp [bolt] Remove unused argument of DataExtractor constructor (NFC) (#191841) 2026-04-14 08:13:54 +03:00
CMakeLists.txt [BOLT] Use identify_magic for shared library detection (#190902) 2026-04-09 15:48:37 -07:00
DataAggregator.cpp [BOLT] Support multiple perf data inputs 2026-06-01 08:24:08 -07:00
DataReader.cpp [BOLT] Fix fdata parsing warning (#200725) 2026-06-01 06:54:13 -07:00
Heatmap.cpp [BOLT][heatmap] Produce zoomed-out heatmaps (#140153) 2025-05-30 16:20:19 -07:00
StaleProfileMatching.cpp [CodeGen,IRNormalizer,BOLT] Duplicate stable hash_16_bytes locally. NFC (#196854) 2026-05-11 21:08:22 -07:00
YAMLProfileReader.cpp [BOLT] Allow name matching stale profiles with infer-stale-profile (#165493) 2026-05-15 00:17:30 -07:00
YAMLProfileWriter.cpp [BOLT] Lookup top-level inline tree node in YAMLProfileWriter (#165491) 2025-12-22 14:47:21 -08:00