[PATCH] D65585: WIP: [llvm-locstats] Add the llvm-locstats tool

David Blaikie via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 1 09:26:30 PDT 2019


Sounds a lot like the existing statistics support in llvm-dwarfdump. Might
be worth comparing/contrasting the two to understand the purpose of this
new thing? (and/or integrate the functionality you'd like into the existing
llvm-dwarfdump statistics support)

On Thu, Aug 1, 2019 at 9:07 AM Djordje Todorovic via Phabricator <
reviews at reviews.llvm.org> wrote:

> djtodoro created this revision.
> djtodoro added reviewers: aprantl, vsk.
> djtodoro added a project: debug-info.
> Herald added subscribers: llvm-commits, mgorny.
> Herald added a project: LLVM.
>
> As we discussed, I am sharing the patch that introduces the llvm-locstats
> tool.
>
> (I am copying the summary from the README from
> https://github.com/djolertrk/llvm-locstats).
>
> This tool calculates and reports verbose output for the debug location
> coverage of a binary.
>
> It is very similar to a tool (locstats) from the Elfutils package, but the
> tool is not being maintained and released for a long time.
>
> The llvm-locstats for each variable or formal parameter DIE computes what
> percentage from the code section bytes, where it is in scope, it has
> location description. There are options to ignore inlined instances or/and
> entry value locations. The line 0 shows the number (and the percentage) of
> DIEs with no location information, but the line 100 shows the number (and
> the percentage) of DIEs where there is location information in all code
> section bytes (where the variable or parameter is in the scope). The line
> 51..59 shows the number (and the percentage) of DIEs where the location
> information is in between 51 and 59 percentage of its scope covered.
> ...
> **Using the tool**
>
> Running the tool on a simple test case:
> bin/llvm-locstats test
>
>   =================================================
>             Debug Location Statistics
>   =================================================
>     cov%          samples       percentage
>   -------------------------------------------------
>       0                1              25%
>       1..9             0               0%
>       11..19           0               0%
>       21..29           0               0%
>       31..39           0               0%
>       41..49           0               0%
>       51..59           0               0%
>       61..69           0               0%
>       71..79           0               0%
>       81..89           0               0%
>       91..99           0               0%
>       100              3              75%
>   =================================================
>     -the number of debug variables processed: 4
>     -the average coverage per var: ~ 75%
>   =================================================
>
> //Running the tool on the GDB 7.11 binary://
> bin/llvm-locstats gdb
>
>   =================================================
>             Debug Location Statistics
>   =================================================
>     cov%          samples       percentage
>   -------------------------------------------------
>       0             8495               8%
>       1..9          3037               3%
>       11..19        3015               3%
>       21..29        2769               2%
>       31..39        2802               2%
>       41..49        2766               2%
>       51..59        3141               3%
>       61..69        3173               3%
>       71..79        3923               3%
>       81..89        4948               5%
>       91..99        7354               7%
>       100          53433              54%
>   =================================================
>     -the number of debug variables processed: 98856
>     -the average coverage per var: ~ 76%
>   =================================================
>
> //Running the tool on the GDB 7.11 binary by ignoring debug entry values://
> bin/llvm-locstats --ignore-entry-values gdb
>
>   =================================================
>             Debug Location Statistics
>   =================================================
>     cov%          samples       percentage
>   -------------------------------------------------
>       0             8765               8%
>       1..9          3948               3%
>       11..19        4436               4%
>       21..29        4152               4%
>       31..39        4107               4%
>       41..49        3846               3%
>       51..59        4490               4%
>       61..69        4140               4%
>       71..79        4998               5%
>       81..89        7072               7%
>       91..99       15478              15%
>       100          33424              33%
>   =================================================
>     -the number of debug variables processed: 98856
>     -the average coverage per var: ~ 69%
>   =================================================
>
>
> https://reviews.llvm.org/D65585
>
> Files:
>   llvm/tools/llvm-locstats/CMakeLists.txt
>   llvm/tools/llvm-locstats/LLVMBuild.txt
>   llvm/tools/llvm-locstats/llvm-locstats.cpp
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190801/1f026ef4/attachment.html>


More information about the llvm-commits mailing list