[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