================
@@ -1441,6 +1458,22 @@ Error PrintProgramStats::runOnFunctions(BinaryContext
&BC) {
StaleSampleCount += SampleCount;
++NumAllStaleFunctions;
}
+
+ if (opts::ShowDensity) {
+ uint64_t Size = Function.getSize();
+ // In case of BOLT split functions registered in BAT, executed traces are
+ // automatically attributed to the main fragment. Add up function sizes
+ // for all fragments.
+ if (IsHotParentOfBOLTSplitFunction)
+ for (const BinaryFunction *Fragment : Function.getFragments())
+ Size += Fragment->getSize();
+ double Density = (double)1.0 * Function.getExecutedBytes() / Size;
+ FuncDensityList.emplace_back(Density, SampleCount);
----------------
wlei-llvm wrote:
> I'm neutral about using ExecutedBytes but we use SampleCount for other
> profile-wide stats, e.g. stale samples percent.
Sounds good. No strong option, it shouldn't affect to the density value.
https://github.com/llvm/llvm-project/pull/101094
_______________________________________________
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits