[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