[llvm-branch-commits] [clang] [Serialization] Code cleanups and polish 83233 (PR #83237)

Alexander Kornienko via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Wed Oct 23 05:37:48 PDT 2024


alexfh wrote:

Compiling Clang with more debug information and without FDO+ThinLTO indeed shows `clang::serialization::MultiOnDiskHashTable<clang::serialization::reader::LazySpecializationInfoLookupTrait>::findAll()` as the main time sink:
```
+   96.99%     0.00%  clang    clang               [.] clang::Sema::runWithSufficientStackSpace(clang::SourceLocation, llvm::function_ref<void ()>)                                                                  ◆
+   93.50%     0.00%  clang    clang               [.] clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCallExpr(clang::CallExpr*)                                                        ▒
+   91.97%     0.00%  clang    clang               [.] clang::Sema::InstantiateFunctionDefinition(clang::SourceLocation, clang::FunctionDecl*, bool, bool, bool)                                                     ▒
+   91.62%     0.00%  clang    clang               [.] clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCompoundStmt(clang::CompoundStmt*, bool)                                          ▒
+   91.58%     0.00%  clang    clang               [.] clang::Sema::SubstStmt(clang::Stmt*, clang::MultiLevelTemplateArgumentList const&)                                                                            ▒
+   91.12%     0.00%  clang    clang               [.] clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformUnresolvedLookupExpr(clang::UnresolvedLookupExpr*, bool)                          ▒
+   91.00%     0.00%  clang    clang               [.] clang::Sema::BuildTemplateIdExpr(clang::CXXScopeSpec const&, clang::SourceLocation, clang::LookupResult&, bool, clang::TemplateArgumentListInfo const*)       ▒
+   90.97%     1.27%  clang    clang               [.] clang::ASTReader::LoadExternalSpecializations(clang::Decl const*, bool)                                                                                       ▒
+   90.69%     0.00%  clang    clang               [.] MarkExprReferenced(clang::Sema&, clang::SourceLocation, clang::Decl*, clang::Expr*, bool, llvm::DenseMap<clang::VarDecl const*, int, llvm::DenseMapInfo<clang:▒
+   90.55%     0.00%  clang    clang               [.] clang::Sema::MarkDeclRefReferenced(clang::DeclRefExpr*, clang::Expr const*)                                                                                   ▒
+   90.48%     0.00%  clang    clang               [.] clang::Sema::BuildDeclRefExpr(clang::ValueDecl*, clang::QualType, clang::ExprValueKind, clang::DeclarationNameInfo const&, clang::NestedNameSpecifierLoc, clan▒
+   90.30%     0.00%  clang    clang               [.] clang::Sema::CheckVarTemplateId(clang::VarTemplateDecl*, clang::SourceLocation, clang::SourceLocation, clang::TemplateArgumentListInfo const&)                ▒
+   90.24%     0.00%  clang    clang               [.] clang::Sema::InstantiateVariableInitializer(clang::VarDecl*, clang::VarDecl*, clang::MultiLevelTemplateArgumentList const&)                                   ▒
+   90.04%     0.00%  clang    clang               [.] clang::Sema::SubstInitializer(clang::Expr*, clang::MultiLevelTemplateArgumentList const&, bool)                                                               ▒
+   89.47%     0.01%  clang    clang               [.] clang::Sema::BuildDeclarationNameExpr(clang::CXXScopeSpec const&, clang::DeclarationNameInfo const&, clang::NamedDecl*, clang::NamedDecl*, clang::TemplateArgu▒
+   89.47%     0.00%  clang    clang               [.] clang::VarTemplateDecl::getPartialSpecializations(llvm::SmallVectorImpl<clang::VarTemplatePartialSpecializationDecl*>&) const                                 ▒
-   89.35%    61.19%  clang    clang               [.] clang::serialization::MultiOnDiskHashTable<clang::serialization::reader::LazySpecializationInfoLookupTrait>::findAll()                                        ▒
   - 28.16% clang::serialization::MultiOnDiskHashTable<clang::serialization::reader::LazySpecializationInfoLookupTrait>::findAll()                                                                                   ▒
      - 20.71% llvm::DenseMap<clang::serialization::reader::LazySpecializationInfo, llvm::detail::DenseSetEmpty, llvm::DenseMapInfo<clang::serialization::reader::LazySpecializationInfo, void>, llvm::detail::DenseS▒
         + 0.82% 0xffffffff8b4012a6                                                                                                                                                                                  ▒
      + 7.26% llvm::SmallVectorBase<unsigned int>::grow_pod(void*, unsigned long, unsigned long)                                                                                                                     ▒
   - 14.45% clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformTemplateSpecializationType(clang::TypeLocBuilder&, clang::TemplateSpecializationTypeLoc, clang::TemplateName)                ▒
      - 14.44% clang::Sema::CheckTemplateIdType(clang::TemplateName, clang::SourceLocation, clang::TemplateArgumentListInfo&)                                                                                        ▒
           clang::Sema::SubstType(clang::QualType, clang::MultiLevelTemplateArgumentList const&, clang::SourceLocation, clang::DeclarationName, bool*)                                                               ▒
         + clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformType(clang::TypeSourceInfo*)                                                                                                  ▒
   + 13.46% clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*)                                                                                     ▒
   + 11.65% _start                                                                                                                                                                                                   ▒
   + 11.18% clang::TemplateDeclInstantiator::InstantiateTypedefNameDecl(clang::TypedefNameDecl*, bool)                                                                                                               ▒
   + 7.98% clang::Sema::RequireCompleteTypeImpl(clang::SourceLocation, clang::QualType, clang::Sema::CompleteTypeKind, clang::Sema::TypeDiagnoser*)                                                                  ▒
   + 1.75% clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformTemplateSpecializationType(clang::TypeLocBuilder&, clang::TemplateSpecializationTypeLoc)                                      ▒
```

https://github.com/llvm/llvm-project/pull/83237


More information about the llvm-branch-commits mailing list