[AMDGPU] Infer amdgpu-no-flat-scratch-init attribute in AMDGPUAttributor (#94647)
[llvm-project.git] / llvm / docs / CommandGuide / llvm-locstats.rst
blob3186566e449d5c7954d47d4eed79270c9bc659da
1 llvm-locstats - calculate statistics on DWARF debug location
2 ============================================================
4 .. program:: llvm-locstats
6 SYNOPSIS
7 --------
9 :program:`llvm-locstats` [*options*] [*filename*]
11 DESCRIPTION
12 -----------
14 :program:`llvm-locstats` works like a wrapper around :program:`llvm-dwarfdump`.
15 It parses :program:`llvm-dwarfdump` statistics regarding debug location by
16 pretty printing it in a more human readable way.
18 The line 0% shows the number and the percentage of DIEs with no location
19 information, but the line 100% shows the information for DIEs where there is
20 location information in all code section bytes (where the variable or parameter
21 is in the scope). The line [50%,60%) shows the number and the percentage of DIEs
22 where the location information is between 50 and 60 percentage of its scope
23 covered.
25 OPTIONS
26 -------
28 .. option:: --only-variables
30             calculate the location statistics only for local variables
32 .. option:: --only-formal-parameters
34             calculate the location statistics only for formal parameters
36 .. option:: --ignore-debug-entry-values
38             ignore the location statistics on locations containing the
39             debug entry values DWARF operation
41 .. option:: --draw-plot
43             make histogram of location buckets generated (requires
44             matplotlib)
46 .. option:: --compare
48             compare the debug location coverage on two files provided, and draw
49             a plot showing the difference (requires matplotlib)
51 EXIT STATUS
52 -----------
54 :program:`llvm-locstats` returns 0 if the input file were parsed
55 successfully. Otherwise, it returns 1.
57 EXAMPLE 1
58 --------------
60 Pretty print the location coverage on the standard output.
62 .. code-block:: none
64   llvm-locstats a.out
66     =================================================
67               Debug Location Statistics
68     =================================================
69           cov%          samples       percentage(~)
70     -------------------------------------------------
71        0%                    1              16%
72        (0%,10%)              0               0%
73        [10%,20%)             0               0%
74        [20%,30%)             0               0%
75        [30%,40%)             0               0%
76        [40%,50%)             0               0%
77        [50%,60%)             1              16%
78        [60%,70%)             0               0%
79        [70%,80%)             0               0%
80        [80%,90%)             1              16%
81        [90%,100%)            0               0%
82        100%                  3              50%
83     =================================================
84     -the number of debug variables processed: 6
85     -PC ranges covered: 81%
86     -------------------------------------------------
87     -total availability: 83%
88     =================================================
90 EXAMPLE 2
91 --------------
93 Generate a plot as an image file.
95 .. code-block:: none
97   llvm-locstats --draw-plot file1.out
99 .. image:: locstats-draw-plot.png
100   :align: center
102 EXAMPLE 3
103 --------------
105 Generate a plot as an image file showing the difference in the debug location
106 coverage.
108 .. code-block:: none
110   llvm-locstats --compare file1.out file1.withentryvals.out
112 .. image:: locstats-compare.png
113   :align: center
115 SEE ALSO
116 --------
118 :manpage:`llvm-dwarfdump(1)`