[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