[llvm] [SampleProfileLoader] Fix integer overflow in generateMDProfMetadata (PR #90217)

via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 26 10:57:06 PDT 2024


================
@@ -1713,13 +1713,16 @@ void SampleProfileLoader::generateMDProfMetadata(Function &F) {
       // if needed. Sample counts in profiles are 64-bit unsigned values,
       // but internally branch weights are expressed as 32-bit values.
       if (Weight > std::numeric_limits<uint32_t>::max()) {
-        LLVM_DEBUG(dbgs() << " (saturated due to uint32_t overflow)");
+        LLVM_DEBUG(dbgs() << " (saturated due to uint32_t overflow)\n");
         Weight = std::numeric_limits<uint32_t>::max();
----------------
WenleiHe wrote:

Unrelated to this particular fix, but I'm also wondering if we would benefit from proper scaling/normalization, instead of just saturate uint32_t in the case of overflow. We can do some sanity check to see how much we actually hit such saturation. 

https://github.com/llvm/llvm-project/pull/90217


More information about the llvm-commits mailing list