[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