[all-commits] [llvm/llvm-project] 76c782: [PGO] Collect dense AMDGPU block wave counts
Yaxun (Sam) Liu via All-commits
all-commits at lists.llvm.org
Mon Sep 28 18:03:06 PDT 2026
Branch: refs/heads/users/yxsamliu/pgo-device-wave-counters
Home: https://github.com/llvm/llvm-project
Commit: 76c7824f3da2727c233bf4736784b501215140bc
https://github.com/llvm/llvm-project/commit/76c7824f3da2727c233bf4736784b501215140bc
Author: Yaxun (Sam) Liu <yaxun.liu at amd.com>
Date: 2026-09-28 (Mon, 28 Sep 2026)
Changed paths:
M llvm/docs/InstrProfileFormat.md
M llvm/include/llvm/ProfileData/InstrProf.h
M llvm/include/llvm/ProfileData/InstrProfData.inc
M llvm/include/llvm/ProfileData/InstrProfReader.h
M llvm/include/llvm/ProfileData/InstrProfWriter.h
M llvm/lib/ProfileData/InstrProfReader.cpp
M llvm/lib/ProfileData/InstrProfWriter.cpp
M llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
A llvm/test/Transforms/PGOProfile/dense-wave-cfg.ll
A llvm/test/Transforms/PGOProfile/dense-wave-instrumentation.ll
A llvm/test/Transforms/PGOProfile/dense-wave-profile-use.ll
A llvm/test/tools/llvm-profdata/dense-wave-layout.test
M llvm/tools/llvm-profdata/llvm-profdata.cpp
M llvm/unittests/ProfileData/InstrProfTest.cpp
Log Message:
-----------
[PGO] Collect dense AMDGPU block wave counts
Wave visits are not additive across divergent control flow. Sparse scalar
counter sites can leave repeated loop blocks unmeasured, so their wave
frequencies cannot be reconstructed from entry and edge counts.
Append zero-step instrumentation for eligible unmeasured AMDGPU blocks,
keeping the existing lane and select counter indices unchanged. Exclude the
appended slots from lane-flow reconstruction and uniformity annotation.
Identify the layout with a profile variant bit, preserve it through raw and
indexed readers/writers, and select it automatically during profile use.
Keep sparse profiles readable and reject incompatible merges, including
concatenated raw profiles. Ignore empty merge-worker contexts.
Enable dense collection for ordinary AMDGPU IR-PGO by default, with the
hidden -pgo-instrument-dense-wave-counts option for debugging. Leave
context-sensitive, coverage, and temporal instrumentation unchanged.
Test loop counter placement, critical-edge splitting, EH insertion points,
scalar/select reconstruction, uniformity coverage and merge layout.
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