Improve Clang PCH build times |
|||
Issue descriptionIn https://bugs.chromium.org/p/chromium/issues/detail?id=667891#c11, we realized that we may not be getting the full benefit of PCH with Clang due to Chromium's plugins. However, further investigation showed that disabling the plugins only saved ~5% of build time on blink_tests. We should build some TUs with `-Xclang -print-stats` and see what percentage of the AST file we are deserializing and look into how to deserialize less of it.
,
Dec 7 2016
As part of this bug, we should change our RAV usage pattern to avoid walking through decls and declcontexts from AST files. That should recover some of the 5% of build time spent in plugins.
,
Dec 7 2016
,
Apr 14 2017
With the build commands I pasted in bug 711764 : C:\src\chrome\src\out\gn>..\..\..\..\tim\tim ..\..\third_party\llvm-build\Release+Asserts\bin\clang-cl.exe /nologo /show Includes /FC @obj/third_party/WebKit/Source/core/svg/svg/SVGAnimatedAngle.obj.rsp /c ../../third_party/WebKit/Source/cor e/svg/SVGAnimatedAngle.cpp /Foobj/third_party/WebKit/Source/core/svg/svg/SVGAnimatedAngle.obj /Fd"obj/third_party/WebKit /Source/core/svg/svg_cc.pdb" -Xclang -print-stats Note: including file: ../../third_party/WebKit/Source\core/svg/SVGAnimatedAngle.h Note: including file: ../../third_party/WebKit/Source\core/svg/SVGAngleTearOff.h Note: including file: ../../third_party/WebKit/Source\core/svg/SVGAngle.h Note: including file: ../../third_party/WebKit/Source\core/svg/SVGEnumeration.h Note: including file: ../../third_party/WebKit/Source\core/svg/SVGParsingError.h Note: including file: ../../third_party/WebKit/Source\core/svg/properties/SVGProperty.h Note: including file: ../../third_party/WebKit/Source\core/svg/properties/SVGPropertyInfo.h Note: including file: ../../third_party/WebKit/Source\core/svg/properties/SVGPropertyHelper.h Note: including file: ../../third_party/WebKit/Source\core/svg/properties/SVGPropertyTearOff.h Note: including file: ../../third_party/WebKit/Source\core/svg/SVGElement.h Note: including file: gen/blink\core/SVGNames.h Note: including file: gen/blink\core/SVGElementTypeHelpers.h Note: including file: ../../third_party/WebKit/Source\core/svg/SVGElement.h Note: including file: ../../third_party/WebKit/Source\core/svg/SVGAnimatedEnumeration.h Note: including file: ../../third_party/WebKit/Source\core/svg/SVGAnimatedEnumerationBase.h Note: including file: ../../third_party/WebKit/Source\core/svg/properties/SVGAnimatedProperty.h STATISTICS: *** Semantic Analysis Stats: 0 SFINAE diagnostics trapped. Number of memory regions: 76 Bytes used: 305904 Bytes allocated: 311296 Bytes wasted: 5392 (includes alignment, etc) *** Analysis Based Warnings Stats: 6010 functions analyzed (0 w/o CFGs). 29289 CFG blocks built. 4 average CFG blocks per function. 54 max CFG blocks per function. 755 functions analyzed for uninitialiazed variables 1562 variables analyzed. 2 average variables per function. 8 max variables per function. 8445 block visits. 11 average block visits per function. 57 max block visits per function. *** AST Context Stats: 278196 types total. 34 Builtin types 4 Complex types 26945 Pointer types 22551 LValueReference types 6270 RValueReference types 175 MemberPointer types 747 ConstantArray types 162 IncompleteArray types 201 DependentSizedArray types 17 Vector types 82145 FunctionProto types 532 Paren types 11680 Typedef types 113 Decayed types 661 Decltype types 3 UnaryTransform types 16340 Record types 998 Enum types 13070 Elaborated types 3143 Attributed types 18870 TemplateTypeParm types 16859 SubstTemplateTypeParm types 49200 TemplateSpecialization types 51 Auto types 1117 InjectedClassName types 5234 DependentName types 79 DependentTemplateSpecialization types 995 PackExpansion types Total bytes = 12145408 68/3920 implicit default constructors created 196/4017 implicit copy constructors created 138/3995 implicit move constructors created 76/4042 implicit copy assignment operators created 56/3993 implicit move assignment operators created 367/4620 implicit destructors created *** AST File Statistics: 30824/274915 source location entries read (11.212193%) 170005/211974 types read (80.200874%) 273719/319221 declarations read (85.745926%) 47424/74843 identifiers read (63.364643%) 97/25694 macros read (0.377520%) 288789/308806 statements read (93.517937%) 97/25694 macros read (0.377520%) 11542/23270 lexical declcontexts read (49.600346%) 38305/11967 visible declcontexts read (320.088562%) 47397 / 48232 identifier table lookups succeeded (98.268784%) *** PCH/ModuleFile Remappings: Global bit offset map: 0 -> obj/third_party/WebKit/Source/core/svg/svg_cc.pch Global source location entry map: 2 -> obj/third_party/WebKit/Source/core/svg/svg_cc.pch Global type map: 0 -> obj/third_party/WebKit/Source/core/svg/svg_cc.pch Global declaration map: 17 -> obj/third_party/WebKit/Source/core/svg/svg_cc.pch Global identifier map: 1 -> obj/third_party/WebKit/Source/core/svg/svg_cc.pch Global macro map: 1 -> obj/third_party/WebKit/Source/core/svg/svg_cc.pch *** PCH/Modules Loaded: Module: obj/third_party/WebKit/Source/core/svg/svg_cc.pch Base source location offset: 2123762070 Source location offset local -> global map: 0 -> 0 2 -> 2123762068 Base identifier ID: 0 Number of identifiers: 74843 Identifier ID local -> global map: 0 -> 0 Base macro ID: 0 Number of macros: 25694 Macro ID local -> global map: 0 -> 0 Base submodule ID: 0 Number of submodules: 0 Base selector ID: 0 Number of selectors: 0 Base preprocessed entity ID: 0 Number of preprocessed entities: 0 Base type index: 0 Number of types: 211974 Type index local -> global map: 0 -> 0 Base decl ID: 0 Number of decls: 319221 Decl ID local -> global map: 0 -> 0 Number of memory regions: 977 Bytes used: 106643354 Bytes allocated: 109051904 Bytes wasted: 2408550 (includes alignment, etc) *** Decl Stats: 333828 decls total. 10481 AccessSpec decls, 40 each (419240 bytes) 1 ClassScopeFunctionSpecialization decls, 464 each (464 bytes) 33 Empty decls, 32 each (1056 bytes) 1218 Friend decls, 56 each (68208 bytes) 946 LinkageSpec decls, 80 each (75680 bytes) 888 Namespace decls, 104 each (92352 bytes) 1 NamespaceAlias decls, 88 each (88 bytes) 1 BuiltinTemplate decls, 64 each (64 bytes) 1908 ClassTemplate decls, 80 each (152640 bytes) 8982 FunctionTemplate decls, 80 each (718560 bytes) 205 TypeAliasTemplate decls, 80 each (16400 bytes) 81 VarTemplate decls, 80 each (6480 bytes) 150 TemplateTemplateParm decls, 80 each (12000 bytes) 1003 Enum decls, 152 each (152456 bytes) 21133 CXXRecord decls, 152 each (3212216 bytes) 12648 ClassTemplateSpecialization decls, 192 each (2428416 bytes) 565 ClassTemplatePartialSpecialization decls, 216 each (122040 bytes) 18840 TemplateTypeParm decls, 72 each (1356480 bytes) 2104 TypeAlias decls, 96 each (201984 bytes) 15904 Typedef decls, 88 each (1399552 bytes) 1595 Using decls, 80 each (127600 bytes) 2 UsingDirective decls, 80 each (160 bytes) 2103 UsingShadow decls, 72 each (151416 bytes) 5 ConstructorUsingShadow decls, 96 each (480 bytes) 11849 Field decls, 80 each (947920 bytes) 15488 Function decls, 152 each (2354176 bytes) 55651 CXXMethod decls, 152 each (8458952 bytes) 14256 CXXConstructor decls, 168 each (2395008 bytes) 586 CXXConversion decls, 152 each (89072 bytes) 2822 CXXDestructor decls, 160 each (451520 bytes) 1410 NonTypeTemplateParm decls, 88 each (124080 bytes) 9361 Var decls, 96 each (898656 bytes) 5234 ImplicitParam decls, 96 each (502464 bytes) 106004 ParmVar decls, 96 each (10176384 bytes) 8982 EnumConstant decls, 80 each (718560 bytes) 527 IndirectField decls, 64 each (33728 bytes) 37 UnresolvedUsingValue decls, 80 each (2960 bytes) 1 PragmaComment decls, 40 each (40 bytes) 4 PragmaDetectMismatch decls, 40 each (160 bytes) 819 StaticAssert decls, 56 each (45864 bytes) Total bytes = 37915576 *** Stmt/Expr Stats: 500449 stmts/exprs total. 15 GCCAsmStmt, 72 each (1080 bytes) 56 BreakStmt, 8 each (448 bytes) 14 CXXForRangeStmt, 80 each (1120 bytes) 27421 CompoundStmt, 24 each (658104 bytes) 3 ContinueStmt, 8 each (24 bytes) 4666 DeclStmt, 24 each (111984 bytes) 632 DoStmt, 32 each (20224 bytes) 2965 ConditionalOperator, 48 each (142320 bytes) 3 ArrayInitIndexExpr, 16 each (48 bytes) 3 ArrayInitLoopExpr, 32 each (96 bytes) 1109 ArraySubscriptExpr, 40 each (44360 bytes) 1 AtomicExpr, 80 each (80 bytes) 22526 BinaryOperator, 40 each (901040 bytes) 388 CompoundAssignOperator, 56 each (21728 bytes) 3298 CXXBindTemporaryExpr, 32 each (105536 bytes) 4142 CXXBoolLiteralExpr, 24 each (99408 bytes) 6041 CXXConstructExpr, 48 each (289968 bytes) 3786 CXXTemporaryObjectExpr, 56 each (212016 bytes) 582 CXXDefaultArgExpr, 32 each (18624 bytes) 83 CXXDefaultInitExpr, 32 each (2656 bytes) 114 CXXDeleteExpr, 40 each (4560 bytes) 1603 CXXDependentScopeMemberExpr, 88 each (141064 bytes) 297 CXXNewExpr, 80 each (23760 bytes) 995 CXXNullPtrLiteralExpr, 24 each (23880 bytes) 87 CXXPseudoDestructorExpr, 80 each (6960 bytes) 256 CXXScalarValueInitExpr, 32 each (8192 bytes) 20899 CXXThisExpr, 24 each (501576 bytes) 328 CXXUnresolvedConstructExpr, 40 each (13120 bytes) 19466 CallExpr, 32 each (622912 bytes) 16251 CXXMemberCallExpr, 32 each (520032 bytes) 6858 CXXOperatorCallExpr, 48 each (329184 bytes) 4548 CStyleCastExpr, 40 each (181920 bytes) 408 CXXFunctionalCastExpr, 40 each (16320 bytes) 164 CXXConstCastExpr, 48 each (7872 bytes) 582 CXXReinterpretCastExpr, 48 each (27936 bytes) 2870 CXXStaticCastExpr, 48 each (137760 bytes) 108648 ImplicitCastExpr, 24 each (2607552 bytes) 103 CharacterLiteral, 24 each (2472 bytes) 47 CompoundLiteralExpr, 40 each (1880 bytes) 2 ConvertVectorExpr, 40 each (80 bytes) 86706 DeclRefExpr, 40 each (3468240 bytes) 6900 DependentScopeDeclRefExpr, 64 each (441600 bytes) 4657 ExprWithCleanups, 24 each (111768 bytes) 190 FloatingLiteral, 40 each (7600 bytes) 2668 ImplicitValueInitExpr, 16 each (42688 bytes) 493 InitListExpr, 64 each (31552 bytes) 19101 IntegerLiteral, 40 each (764040 bytes) 4 LambdaExpr, 40 each (160 bytes) 5876 MaterializeTemporaryExpr, 24 each (141024 bytes) 33176 MemberExpr, 56 each (1857856 bytes) 1 OffsetOfExpr, 40 each (40 bytes) 1158 OpaqueValueExpr, 32 each (37056 bytes) 7702 UnresolvedLookupExpr, 88 each (677776 bytes) 3207 UnresolvedMemberExpr, 104 each (333528 bytes) 204 PackExpansionExpr, 32 each (6528 bytes) 16288 ParenExpr, 32 each (521216 bytes) 1660 ParenListExpr, 40 each (66400 bytes) 229 PredefinedExpr, 32 each (7328 bytes) 32 ShuffleVectorExpr, 40 each (1280 bytes) 35 SizeOfPackExpr, 40 each (1400 bytes) 4157 StringLiteral, 40 each (166280 bytes) 3023 SubstNonTypeTemplateParmExpr, 40 each (120920 bytes) 669 TypeTraitExpr, 24 each (16056 bytes) 1668 UnaryExprOrTypeTraitExpr, 32 each (53376 bytes) 13093 UnaryOperator, 32 each (418976 bytes) 273 ForStmt, 56 each (15288 bytes) 4579 IfStmt, 56 each (256424 bytes) 476 NullStmt, 16 each (7616 bytes) 18327 ReturnStmt, 24 each (439848 bytes) 765 CaseStmt, 56 each (42840 bytes) 363 DefaultStmt, 32 each (11616 bytes) 377 SwitchStmt, 48 each (18096 bytes) 132 WhileStmt, 32 each (4224 bytes) Total bytes = 17900536 STATISTICS FOR '../../third_party/WebKit/Source/core/svg/SVGAnimatedAngle.cpp': *** Preprocessor Stats: 228 directives found: 143 #define. 0 #undef. #include/#include_next/#import: 18 source files entered. 5 max include stack depth 18 #if/#ifndef/#ifdef. 0 #else/#elif. 17 #endif. 0 #pragma. 1 #if/#ifndef#ifdef regions skipped 328/149/52 obj/fn/builtin macros expanded, 5 on the fast path. 65 token paste (##) operations performed, 65 on the fast path. Preprocessor Memory: 107247B total BumpPtr: 77824 Macro Expanded Tokens: 20184 Predefines Buffer: 15 Macros: 8192 #pragma push_macro Info: 0 Poison Reasons: 1024 Comment Handlers: 8 *** Identifier Table Stats: # Identifiers: 48475 # Empty Buckets: 17061 Hash density (#identifiers per bucket): 0.739670 Ave identifier length: 16.188200 Max identifier length: 91 Number of memory regions: 340 Bytes used: 2772198 Bytes allocated: 2949120 Bytes wasted: 176922 (includes alignment, etc) *** HeaderSearch Stats: 771 files tracked. 1 #import/#pragma once files. 27 included exactly once. 2 max times a file is included. 50 #include/#include_next/#import. 33 #includes skipped due to the multi-include optimization. 0 framework lookups. 0 subframework lookups. *** Source Manager Stats: 831 files mapped, 58 mem buffers mapped. 1375 local SLocEntry's allocated (49128 bytes of capacity), 213841B of Sloc address space used. 274915 loaded SLocEntries allocated, 23721578B of Sloc address space used. 8109258 bytes of files mapped, 664 files with line #'s computed, 0 files with macro args computed. FileID scans: 7095 linear, 6466069 binary. *** File Manager Stats: 852 real files found, 136 real dirs found. 0 virtual files found, 0 virtual dirs found. 1103 dir lookups, 214 dir cache misses. 1255 file lookups, 1043 file cache misses. ===-------------------------------------------------------------------------=== ... Statistics Collected ... ===-------------------------------------------------------------------------=== 180440 asm-printer - Number of machine instrs printed 36065 assembler - Number of emitted assembler fragments - align 47946 assembler - Number of emitted assembler fragments - data 196 assembler - Number of emitted assembler fragments - fill 95766 assembler - Number of emitted assembler fragments - total 95827 assembler - Number of fragment layouts 11150080 assembler - Number of emitted object file bytes 2 assembler - Number of assembler layout and relaxation steps 140562 assembler - Number of evaluated fixups 1 cgscc-passmgr - Maximum CGSCCPassMgr iterations on one SCC 98 dagcombine - Number of dag nodes combined 56 inline - Number of functions deleted because all callers found 82 inline - Number of functions inlined 1 instsimplify - Number of reassociations 52 isel - Number of blocks selected using DAG 57920 isel - Number of times dag isel has to try another path 7266 isel - Number of entry blocks encountered 15667 isel - Number of blocks selected entirely by fast isel 11293 isel - Number of dead insts removed on failure 7266 isel - Number of entry blocks where fast isel failed to lower arguments 2007 isel - Number of instructions fast isel failed on 88012 isel - Number of instructions fast isel selected 41267 isel - Number of insts selected by target-independent selector 44381 isel - Number of insts selected by target-specific selector 104 live-debug-values - Number of DBG_VALUE instructions inserted 827273 mcexpr - Number of MCExpr evaluations 633528 pei - Number of bytes used for stack in all functions 329 phielim - Number of phis lowered 65732 regalloc - Number of copies coalesced 8153 regalloc - Number of loads added 14944 regalloc - Number of stores added 1824 stack-protector - Number of local variables that have their address taken. 991 stack-protector - Number of functions protected 7266 stackmaps - Number of functions skipped 7266 stackmaps - Number of functions visited 8890 twoaddrinstr - Number of two-address instructions 7 x86-isel - Number of tail calls real: 0m10.671s
,
Apr 16 2017
For reference, the same on my (5 year old) macbook pro, where things to more smoothly (empty args.gn):
$ /usr/bin/time -l ../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF obj/third_party/WebKit/Source/core/svg/svg/SVGAnimatedAngle.o.d -DV8_DEPRECATION_WARNINGS -DNO_TCMALLOC -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DCHROMIUM_BUILD -DENABLE_MEDIA_ROUTER=1 -DFIELDTRIAL_TESTING_ENABLED -DCR_CLANG_REVISION=\"299960-1\" -DCR_XCODE_VERSION=0821 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -DCOMPONENT_BUILD -D__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORE=0 -D_DEBUG -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DWTF_USE_DYNAMIC_ANNOTATIONS=1 -DBLINK_CORE_IMPLEMENTATION=1 -DBLINK_IMPLEMENTATION=1 -DINSIDE_BLINK -DSK_IGNORE_LINEONLY_AA_CONVEX_PATH_OPTS -DSKIA_DLL -DGR_GL_IGNORE_ES3_MSAA=0 -DSK_SUPPORT_GPU=1 -DSK_BUILD_FOR_MAC -DENABLE_LAYOUT_UNIT_IN_INLINE_BOXES=0 -DENABLE_OILPAN=1 -DWTF_USE_DYNAMIC_ANNOTATIONS=1 -DWTF_USE_CONCATENATED_IMPULSE_RESPONSES=1 -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -DLIBXSLT_STATIC -DUSING_V8_SHARED -I../.. -Igen -I../../third_party/WebKit/Source/platform -I../../third_party/WebKit/Source -I../../third_party/WebKit -Igen/blink -Igen/third_party/WebKit -I../../third_party/khronos -I../../gpu -I../../third_party/libwebp -I../../third_party/WebKit/Source -Igen/blink -I../../skia/config -I../../skia/ext -I../../third_party/skia/include/c -I../../third_party/skia/include/config -I../../third_party/skia/include/core -I../../third_party/skia/include/effects -I../../third_party/skia/include/images -I../../third_party/skia/include/lazy -I../../third_party/skia/include/pathops -I../../third_party/skia/include/pdf -I../../third_party/skia/include/pipe -I../../third_party/skia/include/ports -I../../third_party/skia/include/utils -I../../third_party/skia/include/gpu -I../../third_party/skia/src/gpu -I../../third_party/skia/src/sksl -I../../third_party/icu/source/common -I../../third_party/icu/source/i18n -I../../third_party/angle/include -I../../third_party/angle/src/common/third_party/numerics -Igen/angle -I../../third_party/iccjpeg -I../../third_party/libpng -I../../third_party/zlib -I../../third_party/libxml/src/include -I../../third_party/libxml/mac/include -I../../third_party/libxslt -I../../third_party/ots/include -I../../third_party/snappy/src -I../../third_party/snappy/mac -I../../v8/include -Igen/v8/include -fno-strict-aliasing -fstack-protector-strong -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -fcolor-diagnostics -arch x86_64 -Wall -Werror -Wextra -Wpartial-availability -Wno-missing-field-initializers -Wno-unused-parameter -Wno-c++11-narrowing -Wno-covered-switch-default -Wno-unneeded-internal-declaration -Wno-inconsistent-missing-override -Wno-undefined-var-template -Wno-nonportable-include-path -Wno-address-of-packed-member -Wno-unused-lambda-capture -Wno-user-defined-warnings -O0 -fno-omit-frame-pointer -gdwarf-2 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -mmacosx-version-min=10.9 -fvisibility=hidden -Xclang -load -Xclang ../../third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.dylib -Xclang -add-plugin -Xclang find-bad-constructs -Xclang -plugin-arg-find-bad-constructs -Xclang check-auto-raw-pointer -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -Wexit-time-destructors -Xclang -load -Xclang ../../third_party/llvm-build/Release+Asserts/lib/libBlinkGCPlugin.dylib -Xclang -add-plugin -Xclang blink-gc-plugin -Xclang -plugin-arg-blink-gc-plugin -Xclang use-chromium-style-naming -Wglobal-constructors -DLIBXML_STATIC= -fvisibility-inlines-hidden -Wno-undefined-bool-conversion -Wno-tautological-undefined-compare -std=c++11 -stdlib=libc++ -fno-rtti -fno-exceptions -include obj/third_party/WebKit/Source/core/svg/svg/Precompile-core.h-cc -c ../../third_party/WebKit/Source/core/svg/SVGAnimatedAngle.cpp -o obj/third_party/WebKit/Source/core/svg/svg/SVGAnimatedAngle.o -Xclang -print-stats
STATISTICS:
*** Semantic Analysis Stats:
0 SFINAE diagnostics trapped.
Number of memory regions: 73
Bytes used: 290648
Bytes allocated: 299008
Bytes wasted: 8360 (includes alignment, etc)
*** Analysis Based Warnings Stats:
5319 functions analyzed (0 w/o CFGs).
25322 CFG blocks built.
4 average CFG blocks per function.
54 max CFG blocks per function.
656 functions analyzed for uninitialiazed variables
1333 variables analyzed.
2 average variables per function.
8 max variables per function.
7081 block visits.
10 average block visits per function.
57 max block visits per function.
*** AST Context Stats:
291464 types total.
34 Builtin types
4 Complex types
23314 Pointer types
21 BlockPointer types
20906 LValueReference types
6046 RValueReference types
188 MemberPointer types
566 ConstantArray types
127 IncompleteArray types
89 DependentSizedArray types
16 Vector types
75583 FunctionProto types
342 Paren types
12974 Typedef types
126 Decayed types
2 TypeOfExpr types
2255 Decltype types
3 UnaryTransform types
23712 Record types
930 Enum types
13324 Elaborated types
89 Attributed types
21808 TemplateTypeParm types
19668 SubstTemplateTypeParm types
60022 TemplateSpecialization types
32 Auto types
1456 InjectedClassName types
6450 DependentName types
42 DependentTemplateSpecialization types
1325 PackExpansion types
10 Atomic types
Total bytes = 12625560
103/6221 implicit default constructors created
257/6306 implicit copy constructors created
189/6283 implicit move constructors created
76/6325 implicit copy assignment operators created
55/6283 implicit move assignment operators created
412/6752 implicit destructors created
*** AST File Statistics:
23292/101787 source location entries read (22.883080%)
182550/250513 types read (72.870468%)
275536/335136 declarations read (82.216171%)
40415/52471 identifiers read (77.023499%)
85/9741 macros read (0.872600%)
384484/427723 statements read (89.890884%)
85/9741 macros read (0.872600%)
11705/31618 lexical declcontexts read (37.020050%)
38361/18108 visible declcontexts read (211.845581%)
40410 / 41240 identifier table lookups succeeded (97.987391%)
*** PCH/ModuleFile Remappings:
Global bit offset map:
0 -> obj/third_party/WebKit/Source/core/svg/svg/Precompile-core.h-cc.gch
Global source location entry map:
2 -> obj/third_party/WebKit/Source/core/svg/svg/Precompile-core.h-cc.gch
Global type map:
0 -> obj/third_party/WebKit/Source/core/svg/svg/Precompile-core.h-cc.gch
Global declaration map:
17 -> obj/third_party/WebKit/Source/core/svg/svg/Precompile-core.h-cc.gch
Global identifier map:
1 -> obj/third_party/WebKit/Source/core/svg/svg/Precompile-core.h-cc.gch
Global macro map:
1 -> obj/third_party/WebKit/Source/core/svg/svg/Precompile-core.h-cc.gch
*** PCH/Modules Loaded:
Module: obj/third_party/WebKit/Source/core/svg/svg/Precompile-core.h-cc.gch
Base source location offset: 2129505843
Source location offset local -> global map:
0 -> 0
2 -> 2129505841
Base identifier ID: 0
Number of identifiers: 52471
Identifier ID local -> global map:
0 -> 0
Base macro ID: 0
Number of macros: 9741
Macro ID local -> global map:
0 -> 0
Base submodule ID: 0
Number of submodules: 0
Base selector ID: 0
Number of selectors: 0
Base preprocessed entity ID: 0
Number of preprocessed entities: 0
Base type index: 0
Number of types: 250513
Type index local -> global map:
0 -> 0
Base decl ID: 0
Number of decls: 335136
Decl ID local -> global map:
0 -> 0
Number of memory regions: 988
Bytes used: 112146578
Bytes allocated: 114819072
Bytes wasted: 2672494 (includes alignment, etc)
*** Decl Stats:
332926 decls total.
10798 AccessSpec decls, 40 each (431920 bytes)
26 Empty decls, 32 each (832 bytes)
1685 Friend decls, 56 each (94360 bytes)
655 LinkageSpec decls, 80 each (52400 bytes)
11 Label decls, 72 each (792 bytes)
915 Namespace decls, 104 each (95160 bytes)
1 NamespaceAlias decls, 88 each (88 bytes)
2 BuiltinTemplate decls, 64 each (128 bytes)
2192 ClassTemplate decls, 80 each (175360 bytes)
9219 FunctionTemplate decls, 80 each (737520 bytes)
229 TypeAliasTemplate decls, 80 each (18320 bytes)
128 TemplateTemplateParm decls, 80 each (10240 bytes)
959 Enum decls, 152 each (145768 bytes)
28343 CXXRecord decls, 152 each (4308136 bytes)
20067 ClassTemplateSpecialization decls, 192 each (3852864 bytes)
709 ClassTemplatePartialSpecialization decls, 216 each (153144 bytes)
21771 TemplateTypeParm decls, 64 each (1393344 bytes)
2272 TypeAlias decls, 96 each (218112 bytes)
14341 Typedef decls, 88 each (1262008 bytes)
1547 Using decls, 80 each (123760 bytes)
7 UsingDirective decls, 80 each (560 bytes)
2323 UsingShadow decls, 72 each (167256 bytes)
8 ConstructorUsingShadow decls, 96 each (768 bytes)
10247 Field decls, 72 each (737784 bytes)
12615 Function decls, 152 each (1917480 bytes)
54850 CXXMethod decls, 152 each (8337200 bytes)
14678 CXXConstructor decls, 168 each (2465904 bytes)
584 CXXConversion decls, 152 each (88768 bytes)
2629 CXXDestructor decls, 160 each (420640 bytes)
2077 NonTypeTemplateParm decls, 88 each (182776 bytes)
11134 Var decls, 96 each (1068864 bytes)
343 ImplicitParam decls, 96 each (32928 bytes)
95937 ParmVar decls, 96 each (9209952 bytes)
8635 EnumConstant decls, 80 each (690800 bytes)
79 IndirectField decls, 64 each (5056 bytes)
31 UnresolvedUsingValue decls, 80 each (2480 bytes)
879 StaticAssert decls, 56 each (49224 bytes)
Total bytes = 38452696
*** Stmt/Expr Stats:
552089 stmts/exprs total.
17 GCCAsmStmt, 72 each (1224 bytes)
167 BreakStmt, 8 each (1336 bytes)
22 CXXForRangeStmt, 80 each (1760 bytes)
29838 CompoundStmt, 24 each (716112 bytes)
6 ContinueStmt, 8 each (48 bytes)
6829 DeclStmt, 24 each (163896 bytes)
743 DoStmt, 32 each (23776 bytes)
2765 ConditionalOperator, 48 each (132720 bytes)
2 ArrayInitIndexExpr, 16 each (32 bytes)
2 ArrayInitLoopExpr, 32 each (64 bytes)
1325 ArraySubscriptExpr, 40 each (53000 bytes)
24 AtomicExpr, 80 each (1920 bytes)
27335 BinaryOperator, 40 each (1093400 bytes)
730 CompoundAssignOperator, 56 each (40880 bytes)
3167 CXXBindTemporaryExpr, 32 each (101344 bytes)
5687 CXXBoolLiteralExpr, 24 each (136488 bytes)
5193 CXXConstructExpr, 48 each (249264 bytes)
3835 CXXTemporaryObjectExpr, 56 each (214760 bytes)
447 CXXDefaultArgExpr, 32 each (14304 bytes)
84 CXXDefaultInitExpr, 32 each (2688 bytes)
136 CXXDeleteExpr, 40 each (5440 bytes)
9458 CXXDependentScopeMemberExpr, 88 each (832304 bytes)
379 CXXNewExpr, 80 each (30320 bytes)
249 CXXNoexceptExpr, 40 each (9960 bytes)
1526 CXXNullPtrLiteralExpr, 24 each (36624 bytes)
110 CXXPseudoDestructorExpr, 80 each (8800 bytes)
191 CXXScalarValueInitExpr, 32 each (6112 bytes)
23139 CXXThisExpr, 24 each (555336 bytes)
1567 CXXUnresolvedConstructExpr, 40 each (62680 bytes)
29932 CallExpr, 32 each (957824 bytes)
14493 CXXMemberCallExpr, 32 each (463776 bytes)
9844 CXXOperatorCallExpr, 48 each (472512 bytes)
3102 CStyleCastExpr, 40 each (124080 bytes)
552 CXXFunctionalCastExpr, 40 each (22080 bytes)
201 CXXConstCastExpr, 48 each (9648 bytes)
2 CXXDynamicCastExpr, 48 each (96 bytes)
643 CXXReinterpretCastExpr, 48 each (30864 bytes)
2575 CXXStaticCastExpr, 48 each (123600 bytes)
98568 ImplicitCastExpr, 24 each (2365632 bytes)
244 CharacterLiteral, 24 each (5856 bytes)
47 CompoundLiteralExpr, 40 each (1880 bytes)
2 ConvertVectorExpr, 40 each (80 bytes)
97990 DeclRefExpr, 40 each (3919600 bytes)
10964 DependentScopeDeclRefExpr, 64 each (701696 bytes)
4348 ExprWithCleanups, 24 each (104352 bytes)
197 FloatingLiteral, 32 each (6304 bytes)
210 GNUNullExpr, 24 each (5040 bytes)
2104 ImplicitValueInitExpr, 16 each (33664 bytes)
326 InitListExpr, 64 each (20864 bytes)
20940 IntegerLiteral, 32 each (670080 bytes)
5 LambdaExpr, 40 each (200 bytes)
5317 MaterializeTemporaryExpr, 24 each (127608 bytes)
34195 MemberExpr, 56 each (1914920 bytes)
3 ObjCBoolLiteralExpr, 24 each (72 bytes)
1 OffsetOfExpr, 40 each (40 bytes)
1271 OpaqueValueExpr, 32 each (40672 bytes)
13274 UnresolvedLookupExpr, 80 each (1061920 bytes)
3681 UnresolvedMemberExpr, 96 each (353376 bytes)
992 PackExpansionExpr, 32 each (31744 bytes)
12920 ParenExpr, 32 each (413440 bytes)
2641 ParenListExpr, 40 each (105640 bytes)
152 PredefinedExpr, 32 each (4864 bytes)
32 ShuffleVectorExpr, 40 each (1280 bytes)
328 SizeOfPackExpr, 40 each (13120 bytes)
3 StmtExpr, 32 each (96 bytes)
4640 StringLiteral, 40 each (185600 bytes)
2653 SubstNonTypeTemplateParmExpr, 40 each (106120 bytes)
877 TypeTraitExpr, 24 each (21048 bytes)
1625 UnaryExprOrTypeTraitExpr, 32 each (52000 bytes)
17574 UnaryOperator, 32 each (562368 bytes)
549 ForStmt, 56 each (30744 bytes)
12 GotoStmt, 24 each (288 bytes)
5602 IfStmt, 56 each (313712 bytes)
11 LabelStmt, 24 each (264 bytes)
552 NullStmt, 16 each (8832 bytes)
19174 ReturnStmt, 24 each (460176 bytes)
681 CaseStmt, 56 each (38136 bytes)
354 DefaultStmt, 32 each (11328 bytes)
381 SwitchStmt, 48 each (18288 bytes)
332 WhileStmt, 32 each (10624 bytes)
Total bytes = 20424640
STATISTICS FOR '../../third_party/WebKit/Source/core/svg/SVGAnimatedAngle.cpp':
*** Preprocessor Stats:
228 directives found:
143 #define.
0 #undef.
#include/#include_next/#import:
18 source files entered.
5 max include stack depth
18 #if/#ifndef/#ifdef.
0 #else/#elif.
17 #endif.
0 #pragma.
1 #if/#ifndef#ifdef regions skipped
328/149/52 obj/fn/builtin macros expanded, 5 on the fast path.
65 token paste (##) operations performed, 65 on the fast path.
Preprocessor Memory: 107254B total
BumpPtr: 77824
Macro Expanded Tokens: 20184
Predefines Buffer: 22
Macros: 8192
#pragma push_macro Info: 0
Poison Reasons: 1024
Comment Handlers: 8
*** Identifier Table Stats:
# Identifiers: 41441
# Empty Buckets: 24095
Hash density (#identifiers per bucket): 0.632339
Ave identifier length: 16.893560
Max identifier length: 91
Number of memory regions: 316
Bytes used: 2399167
Bytes allocated: 2555904
Bytes wasted: 156737 (includes alignment, etc)
*** HeaderSearch Stats:
778 files tracked.
0 #import/#pragma once files.
27 included exactly once.
2 max times a file is included.
50 #include/#include_next/#import.
34 #includes skipped due to the multi-include optimization.
0 framework lookups.
0 subframework lookups.
*** Source Manager Stats:
973 files mapped, 20 mem buffers mapped.
1375 local SLocEntry's allocated (49128 bytes of capacity), 216860B of Sloc address space used.
101787 loaded SLocEntries allocated, 17977805B of Sloc address space used.
7504228 bytes of files mapped, 668 files with line #'s computed, 0 files with macro args computed.
FileID scans: 7402 linear, 2545193 binary.
*** File Manager Stats:
992 real files found, 145 real dirs found.
0 virtual files found, 0 virtual dirs found.
1220 dir lookups, 219 dir cache misses.
1228 file lookups, 1167 file cache misses.
===-------------------------------------------------------------------------===
... Statistics Collected ...
===-------------------------------------------------------------------------===
12165 asm-printer - Number of machine instrs printed
763 assembler - Number of emitted assembler fragments - align
1158 assembler - Number of emitted assembler fragments - data
28 assembler - Number of emitted assembler fragments - fill
2318 assembler - Number of emitted assembler fragments - total
2318 assembler - Number of fragment layouts
5145356 assembler - Number of emitted object file bytes
2 assembler - Number of assembler layout and relaxation steps
10178 assembler - Number of evaluated fixups
1 cgscc-passmgr - Maximum CGSCCPassMgr iterations on one SCC
18 dagcombine - Number of dag nodes combined
123 inline - Number of functions deleted because all callers found
224 inline - Number of functions inlined
18 isel - Number of blocks selected using DAG
921 isel - Number of times dag isel has to try another path
370 isel - Number of entry blocks encountered
1391 isel - Number of blocks selected entirely by fast isel
8 isel - Number of dead insts removed on failure
13 isel - Number of entry blocks where fast isel failed to lower arguments
79 isel - Number of instructions fast isel failed on
9187 isel - Number of instructions fast isel selected
4431 isel - Number of insts selected by target-independent selector
4469 isel - Number of insts selected by target-specific selector
46 live-debug-values - Number of DBG_VALUE instructions inserted
85047 mcexpr - Number of MCExpr evaluations
50443 pei - Number of bytes used for stack in all functions
33 phielim - Number of phis lowered
4404 regalloc - Number of copies coalesced
554 regalloc - Number of loads added
430 regalloc - Number of stores added
145 stack-protector - Number of local variables that have their address taken.
64 stack-protector - Number of functions protected
370 stackmaps - Number of functions skipped
370 stackmaps - Number of functions visited
491 twoaddrinstr - Number of two-address instructions
6 x86-isel - Number of tail calls
3.66 real 3.36 user 0.27 sys
314642432 maximum resident set size
0 average shared memory size
0 average unshared data size
0 average unshared stack size
84902 page reclaims
22 page faults
0 swaps
0 block input operations
2 block output operations
0 messages sent
0 messages received
0 signals received
4 voluntary context switches
155 involuntary context switches
,
Apr 17 2017
The pch numbers look pretty comparable, so if we read too much we do so on non-Win as well. On Mac, without the plugins: *** AST File Statistics: 21364/101787 source location entries read (20.988928%) 128892/250513 types read (51.451225%) 190907/335136 declarations read (56.964039%) 21884/52471 identifiers read (41.706848%) 51/9741 macros read (0.523560%) 69546/427723 statements read (16.259588%) 51/9741 macros read (0.523560%) 6678/31618 lexical declcontexts read (21.120880%) 35814/18108 visible declcontexts read (197.779984%) 21880 / 22707 identifier table lookups succeeded (96.357951%) In addition to that without -g (which probably pulls in tons of types): *** AST File Statistics: 13155/101787 source location entries read (12.924047%) 80403/250513 types read (32.095341%) 105249/335136 declarations read (31.404861%) 7389/52471 identifiers read (14.082064%) 50/9741 macros read (0.513294%) 49381/427723 statements read (11.545089%) 50/9741 macros read (0.513294%) 2489/31618 lexical declcontexts read (7.872098%) 13324/18108 visible declcontexts read (73.580734%) 7385 / 8212 identifier table lookups succeeded (89.929372%)
,
Apr 17 2018
This issue has been Available for over a year. If it's no longer important or seems unlikely to be fixed, please consider closing it out. If it is important, please re-triage the issue. Sorry for the inconvenience if the bug really should have been left as Available. For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot |
|||
►
Sign in to add a comment |
|||
Comment 1 by r...@chromium.org
, Dec 7 2016