[PATCH] D49240: [libc++] Introduce _LIBCPP_HIDE_FROM_ABI to replace _LIBCPP_INLINE_VISIBILITY

Reid Kleckner via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 10 12:07:17 PDT 2018


rnk added a comment.

In https://reviews.llvm.org/D49240#1195237, @ldionne wrote:

> In https://reviews.llvm.org/D49240#1195125, @thakis wrote:
>
> > When we updated out clang bundle in chromium (which includes libc++ headers), our ios simulator bots regressed debug info size by ~50% due to this commit (https://bugs.chromium.org/p/chromium/issues/detail?id=872926#c13). Is that expected?
>
>
> No, this is quite surprising. What happened with the size of the Release builds? We should investigate, perhaps this change exposed something in Clang's debug info generation.


It looks like the increase is entirely from more symbols in the symbol table. It's not a problem with clang's debug info. It would help a lot if ld64 de-duplicated strings in the symbol table, if that's possible.

  $ bloaty after_base_unittests -- before_base_unittests 
       VM SIZE                                 FILE SIZE
   --------------                           --------------
    +103% +51.4Mi String Table              +51.4Mi  +103%
    +105% +17.6Mi Symbol Table              +17.6Mi  +105%
     +49%  +827Ki Code Signature             +827Ki   +49%
     +92%  +263Ki Function Start Addresses   +263Ki   +92%
     +15% +4.50Ki __TEXT,__unwind_info      +4.50Ki   +15%
     +74% +3.52Ki Table of Non-instructions +3.52Ki   +74%
    -0.0%    -128 __TEXT,__const               -128  -0.0%
    -2.0%    -136 [__TEXT]                     -136  -2.0%
    [ = ]       0 [Unmapped]                   -480  -3.4%
    -1.0%    -516 __TEXT,__gcc_except_tab      -516  -1.0%
   -39.3% -1.07Ki [__LINKEDIT]                   +4   +33%
    -9.8% -5.61Mi __TEXT,__text             -5.61Mi  -9.8%
     +50% +64.5Mi TOTAL                     +64.5Mi   +50%


Repository:
  rCXX libc++

https://reviews.llvm.org/D49240





More information about the llvm-commits mailing list