================ @@ -821,15 +822,23 @@ void InstrProfRecord::merge(InstrProfRecord &Other, uint64_t Weight, for (size_t I = 0, E = Other.Counts.size(); I < E; ++I) { bool Overflowed; - uint64_t Value = - SaturatingMultiplyAdd(Other.Counts[I], Weight, Counts[I], &Overflowed); - if (Value > getInstrMaxCountValue()) { - Value = getInstrMaxCountValue(); - Overflowed = true; + uint64_t Value; + // When a profile has single byte coverage, use || to merge counters. + if (HasSingleByteCoverage) + Value = Other.Counts[I] || Counts[I]; ---------------- ellishg wrote:
I'm actually surprised this doesn't break any tests. If not, then I might need to add some more. https://github.com/llvm/llvm-project/pull/75425 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits