[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