[PATCH] D58885: Variable auto-init: split out small arrays

JF Bastien via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Mar 4 12:20:58 PST 2019


jfb marked an inline comment as done.
jfb added a comment.

Comparing clang stage2 in release mode, with an without this change, we see a 408 byte size difference, which is ~nothing. Here's details, nothing surprising:

  $ /s/bloaty/bloaty -d sections /s/llvm1/llvm/stage2/bin/clang-9  -- /s/llvm2/llvm/stage2/bin/clang-9
       VM SIZE                                 FILE SIZE
   --------------                           --------------
     +44% +1.84Ki [__TEXT]                  +1.84Ki   +45%
     +65%    +408 [__LINKEDIT]                    0  [ = ]
    -0.0%      -8 Table of Non-instructions      -8  -0.0%
    -0.0%     -48 Symbol Table                  -48  -0.0%
    -0.0%    -120 Export Info                  -120  -0.0%
    -0.0%    -232 String Table                 -232  -0.0%
    -0.0%    -832 __TEXT,__text                -832  -0.0%
    -0.0% -1.03Ki __TEXT,__cstring          -1.03Ki  -0.0%
    [ = ]       0 TOTAL                        -408  -0.0%
  
  $ /s/bloaty/bloaty -d symbols /s/llvm1/llvm/stage2/bin/clang-9  -- /s/llvm2/llvm/stage2/bin/clang-9
       VM SIZE                                                                  FILE SIZE
   --------------                                                            --------------
     +45% +1.84Ki [__TEXT]                                                   +1.84Ki   +45%
    +0.0%    +280 [__LINKEDIT]                                                  -128  -0.0%
    +0.4%     +96 clang::ento::check::ASTDecl<>::_checkDecl<>()                  +96  +0.4%
    +2.9%     +48 emitStoresForConstant()                                        +48  +2.9%
    -0.9%     -16 clang::Sema::DeclareGlobalAllocationFunction()                 -16  -0.9%
    -0.0%     -16 clang::ento::check::PostStmt<>::_checkStmt<>()                 -16  -0.0%
    -8.3%     -78 clang::AnalyzerOptions::getCheckerStringOption()               -78  -8.3%
   -12.5%     -80 clang::ento::registerPaddingChecker()                          -80 -12.5%
    -6.3%     -96 clang::ASTContext::GetBuiltinType()                            -96  -6.3%
   -37.8%    -205 clang::AnalyzerOptions::getCheckerIntegerOption()             -205 -37.8%
   -49.5%    -269 clang::AnalyzerOptions::getCheckerBooleanOption()             -269 -49.5%
    -0.0%    -480 llvm::APInt::toString()::Digits                               -480  -0.0%
   -67.4%    -496 clang::driver::toolchains::NetBSD::addLibCxxIncludePaths()    -496 -67.4%
    -0.0%    -576 [__TEXT,__cstring]                                            -576  -0.0%
    [ = ]       0 TOTAL                                                         -408  -0.0%

For codebases with more small arrays this likely plays better, but at least we know it's not a regression.


Repository:
  rC Clang

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D58885/new/

https://reviews.llvm.org/D58885





More information about the cfe-commits mailing list