[all-commits] [llvm/llvm-project] 4cab01: [BOLT] Profile quality stats -- CFG discontinuity ...

ShatianWang via All-commits all-commits at lists.llvm.org
Tue Oct 8 16:08:05 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 4cab01f07262e0347cf08b061eef9a89957151ce
      https://github.com/llvm/llvm-project/commit/4cab01f07262e0347cf08b061eef9a89957151ce
  Author: ShatianWang <38512325+ShatianWang at users.noreply.github.com>
  Date:   2024-10-08 (Tue, 08 Oct 2024)

  Changed paths:
    A bolt/include/bolt/Passes/ContinuityStats.h
    M bolt/lib/Passes/CMakeLists.txt
    A bolt/lib/Passes/ContinuityStats.cpp
    M bolt/lib/Rewrite/BinaryPassManager.cpp
    A bolt/test/X86/cfg-discontinuity-reporting.test

  Log Message:
  -----------
  [BOLT] Profile quality stats -- CFG discontinuity (#109683)

In a perfect profile, each positive-execution-count block in the
function’s CFG should be reachable from a positive-execution-count
function entry block through a positive-execution-count path. This new
pass checks how well the BOLT input profile satisfies this “CFG
continuity” property.

More specifically, for each of the hottest 1000 functions, the pass
calculates the function’s fraction of basic block execution counts that
is “unreachable”. It then reports the 95th percentile of the
distribution of the 1000 unreachable fractions in a single BOLT-INFO
line. The smaller the reported value is, the better the BOLT profile
satisfies the CFG continuity property.

The default value of 1000 above can be changed via the hidden BOLT
option `-num-functions-for-continuity-check=[N]`. If more detailed stats
are needed, `-v=1` can be added to the BOLT invocation: the hottest N
functions will be grouped into 5 equally-sized buckets, from the hottest
to the coldest; for each bucket, various summary statistics of the
distribution of the fractions and the raw unreachable execution counts
will be reported.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list