[llvm] [llvm-profgen] Improve sample profile density (PR #92144)

Lei Wang via llvm-commits llvm-commits at lists.llvm.org
Wed May 22 14:26:16 PDT 2024


================
@@ -768,9 +748,89 @@ void ProfileGenerator::populateBoundarySamplesForAllFunctions(
   }
 }
 
+// Note taht ideally the size should be the number of function's instruction.
+// However, for probe-based profile, we don't have the accurate instruction
+// count for each probe, Instead, the probe sample is the samples count for the
+// block, which is equivelant to total_instruction_samples/num_instruction in
+// one block. Hence, we use the number of probe as a proxy for the function's
+// size.
+void ProfileGeneratorBase::calculateBodySamplesAndSize(
+    const FunctionSamples &FSamples, uint64_t &TotalBodySamples,
----------------
wlei-llvm wrote:

> > total_samples is a sum of all the counts in the same line
> 
> For AutoFDO, based on `ProfileGeneratorBase::updateTotalSamples`, isn't total sample the same as sum of all body samples + callsite (inlinee) samples?

Yes, using `updateTotalSamples` is equal to the sum of all body samples + callsite (inlinee) samples..  But the `--update-total-samples` is default off.(I remember because there is regression with this on) 

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


More information about the llvm-commits mailing list