[all-commits] [llvm/llvm-project] 614807: [BOLT] Support multiple perf data inputs

Amir Ayupov via All-commits all-commits at lists.llvm.org
Mon Jun 1 08:24:32 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 61480755ee91a7e1a24726fbcf4d6fd0e9b561e9
      https://github.com/llvm/llvm-project/commit/61480755ee91a7e1a24726fbcf4d6fd0e9b561e9
  Author: Amir Ayupov <aaupov at fb.com>
  Date:   2026-06-01 (Mon, 01 Jun 2026)

  Changed paths:
    M bolt/include/bolt/Profile/DataAggregator.h
    M bolt/include/bolt/Utils/CommandLineOpts.h
    M bolt/lib/Profile/DataAggregator.cpp
    M bolt/lib/Rewrite/RewriteInstance.cpp
    M bolt/lib/Utils/CommandLineOpts.cpp
    M bolt/test/X86/pre-aggregated-perf.test
    M bolt/test/perf2bolt/perf_test.test
    M bolt/tools/driver/llvm-bolt.cpp
    M bolt/tools/heatmap/heatmap.cpp

  Log Message:
  -----------
  [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



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list