[PATCH] D142556: [DebugInfo] Merge partially matching chains of inlined locations
David Stenberg via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Feb 7 10:31:22 PST 2023
dstenb added a comment.
In D142556#4103178 <https://reviews.llvm.org/D142556#4103178>, @dblaikie wrote:
> Numbers look fairly good - wonder if you could get this run through the LLVM perf tracker to get some more stable/precise numbers?
Just to make sure, is that https://llvm-compile-time-tracker.com/? I can try, otherwise I'll build binaries on a smaller machine that is otherwise unused during the nights, to get rid of most of the noise.
> & any chance you could use something like bloaty ( https://github.com/google/bloaty ) or by hand comparison on a per-section basis on the clang binary? Getting a sense of, specifically, how much bigger this makes .debug_info (but any incidental changes to other sections too) might be helpful
Here are results for the above mentioned RelWithDebInfo opt build:
$ bloaty normal/build-with/bin/opt -- normal/build-without/bin/opt
FILE SIZE VM SIZE
-------------- --------------
+101% +924Ki [ = ] 0 .debug_info
+100% +179Ki [ = ] 0 .debug_str
+101% +146Ki [ = ] 0 .debug_line
+101% +123Ki [ = ] 0 .debug_addr
+102% +112Ki [ = ] 0 .debug_rnglists
+101% +31.6Ki [ = ] 0 .debug_abbrev
+100% +16.9Ki [ = ] 0 .debug_str_offsets
+100% +543 [ = ] 0 .debug_loclists
+100% -18 [ = ] 0 .debug_line_str
+100% +324Mi +100% +35.6Mi TOTAL
RelWithDebInfo + Full LTO opt binary:
$ bloaty full-lto/build-with/bin/opt -- full-lto/build-without/bin/opt
FILE SIZE VM SIZE
-------------- --------------
+101% +800Ki [ = ] 0 .debug_info
+101% +152Ki [ = ] 0 .debug_line
+102% +130Ki [ = ] 0 .debug_rnglists
+101% +101Ki [ = ] 0 .debug_addr
+100% +92.8Ki [ = ] 0 .debug_str
+100% +2.85Ki [ = ] 0 .debug_str_offsets
+100% +120 [ = ] 0 .debug_abbrev
+100% -5 [ = ] 0 .debug_loclists
+100% -14 [ = ] 0 .debug_line_str
+101% +243Mi +100% +37.7Mi TOTAL
RelWithDebInfo + Thin LTO opt binary:
$ bloaty thin-lto/build-with/bin/opt -- thin-lto/build-without/bin/opt
FILE SIZE VM SIZE
-------------- --------------
+101% +790Ki [ = ] 0 .debug_info
+101% +148Ki [ = ] 0 .debug_line
+102% +121Ki [ = ] 0 .debug_rnglists
+101% +105Ki [ = ] 0 .debug_addr
+100% +102Ki [ = ] 0 .debug_str
+101% +34.7Ki [ = ] 0 .debug_abbrev
+100% +10.1Ki [ = ] 0 .debug_str_offsets
+100% +1.04Ki [ = ] 0 .debug_loclists
+100% -15 [ = ] 0 .debug_line_str
+100% -3.07Ki [ = ] 0 .strtab
+100% +332Mi +100% +38.0Mi TOTAL
330668 normal/build-without/bin/opt
332204 normal/build-with/bin/opt # ~0.5% increase.
248560 full-lto/build-without/bin/opt
249840 full-lto/build-with/bin/opt # ~0.5% increase.
339144 thin-lto/build-without/bin/opt
340456 thin-lto/build-with/bin/opt # ~0.4% increase.
So, around a 0.5% increase of the total binary size, with at max a 1-2% increase of some of the debug information sections for these RelWithDebInfo builds. I used the opt binary since I had used that before in my earlier comments, but the diffs look the same for a clang binary.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D142556/new/
https://reviews.llvm.org/D142556
More information about the llvm-commits
mailing list