[all-commits] [llvm/llvm-project] 61acfb: [BOLT] Add pre-aggregated trace support (#127125)

Amir Ayupov via All-commits all-commits at lists.llvm.org
Thu Feb 13 15:15:17 PST 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 61acfb07e8333e29bbf435cdb188723b5a93ddd8
      https://github.com/llvm/llvm-project/commit/61acfb07e8333e29bbf435cdb188723b5a93ddd8
  Author: Amir Ayupov <aaupov at fb.com>
  Date:   2025-02-13 (Thu, 13 Feb 2025)

  Changed paths:
    M bolt/include/bolt/Profile/DataAggregator.h
    M bolt/lib/Profile/DataAggregator.cpp
    M bolt/test/X86/callcont-fallthru.s
    M bolt/test/link_fdata.py

  Log Message:
  -----------
  [BOLT] Add pre-aggregated trace support (#127125)

Traces are triplets of branch source, target, and fall-through end (next
branch).

Traces simplify differentiation of fall-throughs into local- and
external-origin, which improves performance over profile with
undifferentiated fall-throughs by eliminating profile discontinuity in
call to continuation fall-throughs. This makes it possible to avoid
converting return profile into call to continuation profile which may
introduce statistical biases.

The existing format makes provisions for local- (F) and external- (f)
origin fall-throughs, but the profile producer needs to know function
boundaries. BOLT has that information readily available, so providing
the origin branch of a fall-through is a functional replacement of the
fall-through kind (f or F). This also has an effect of combining
branches and fall-throughs into a single record.

As traces subsume other pre-aggregated profile kinds, BOLT may drop
support for them soon. Users of pre-aggregated profile format are
advised to migrate to the trace format.

Test Plan: Updated callcont-fallthru.s



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