[clang] [compiler-rt] [llvm] [PGO][AMDGPU] Add uniformity-aware offload profile format and instrumentation (PR #190708)
Yaxun Liu via llvm-commits
llvm-commits at lists.llvm.org
Mon Jun 29 10:55:56 PDT 2026
================
@@ -949,6 +949,44 @@ void InstrProfRecord::mergeValueProfData(
ThisSiteRecords[I].merge(OtherSiteRecords[I], Weight, Warn);
}
+void InstrProfRecord::computeBlockUniformity() {
+ if (UniformCounts.empty())
+ return;
+
+ if (UniformCounts.size() != Counts.size()) {
+ UniformityBits.clear();
+ return;
+ }
+
+ UniformityBits.assign((Counts.size() + 7) / 8, 0xFF);
+ for (size_t I = 0, E = Counts.size(); I < E; ++I) {
+ uint64_t TotalCount = Counts[I];
+ uint64_t UniformCount = UniformCounts[I];
+ bool IsUniform =
+ TotalCount == 0 || (double)UniformCount / TotalCount >= 0.9;
----------------
yxsamliu wrote:
Good point. I opened a follow-up PR to use an integer comparison here: #206547.
https://github.com/llvm/llvm-project/pull/190708
More information about the llvm-commits
mailing list