================
@@ -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
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits