hokein updated this revision to Diff 315480. hokein marked 3 inline comments as done. hokein added a comment.
address comments. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D94289/new/ https://reviews.llvm.org/D94289 Files: clang-tools-extra/clangd/XRefs.cpp Index: clang-tools-extra/clangd/XRefs.cpp =================================================================== --- clang-tools-extra/clangd/XRefs.cpp +++ clang-tools-extra/clangd/XRefs.cpp @@ -336,6 +336,8 @@ // Keep track of SymbolID -> index mapping, to fill in index data later. llvm::DenseMap<SymbolID, size_t> ResultIndex; + static constexpr trace::Metric LocateASTReferentMetric( + "locate_ast_referent", trace::Metric::Counter, "case"); auto AddResultDecl = [&](const NamedDecl *D) { D = getPreferredDecl(D); auto Loc = @@ -369,8 +371,10 @@ // saved in the AST. if (CMD->isPure()) { if (TouchedIdentifier && SM.getSpellingLoc(CMD->getLocation()) == - TouchedIdentifier->location()) + TouchedIdentifier->location()) { VirtualMethods.insert(getSymbolID(CMD)); + LocateASTReferentMetric.record(1, "method-to-override"); + } } // Special case: void foo() ^override: jump to the overridden method. const InheritableAttr *Attr = D->getAttr<OverrideAttr>(); @@ -379,6 +383,7 @@ if (Attr && TouchedIdentifier && SM.getSpellingLoc(Attr->getLocation()) == TouchedIdentifier->location()) { + LocateASTReferentMetric.record(1, "method-to-base"); // We may be overridding multiple methods - offer them all. for (const NamedDecl *ND : CMD->overridden_methods()) AddResultDecl(ND); @@ -403,6 +408,7 @@ if (auto *CTSD = dyn_cast<ClassTemplateSpecializationDecl>(D)) { if (TouchedIdentifier && D->getLocation() == TouchedIdentifier->location()) { + LocateASTReferentMetric.record(1, "template-specialization-to-primary"); AddResultDecl(CTSD->getSpecializedTemplate()); continue; } @@ -418,9 +424,12 @@ if (const auto *ID = CD->getClassInterface()) if (TouchedIdentifier && (CD->getLocation() == TouchedIdentifier->location() || - ID->getName() == TouchedIdentifier->text(SM))) + ID->getName() == TouchedIdentifier->text(SM))) { + LocateASTReferentMetric.record(1, "objc-category-to-class"); AddResultDecl(ID); + } + LocateASTReferentMetric.record(1, "regular"); // Otherwise the target declaration is the right one. AddResultDecl(D); }
Index: clang-tools-extra/clangd/XRefs.cpp =================================================================== --- clang-tools-extra/clangd/XRefs.cpp +++ clang-tools-extra/clangd/XRefs.cpp @@ -336,6 +336,8 @@ // Keep track of SymbolID -> index mapping, to fill in index data later. llvm::DenseMap<SymbolID, size_t> ResultIndex; + static constexpr trace::Metric LocateASTReferentMetric( + "locate_ast_referent", trace::Metric::Counter, "case"); auto AddResultDecl = [&](const NamedDecl *D) { D = getPreferredDecl(D); auto Loc = @@ -369,8 +371,10 @@ // saved in the AST. if (CMD->isPure()) { if (TouchedIdentifier && SM.getSpellingLoc(CMD->getLocation()) == - TouchedIdentifier->location()) + TouchedIdentifier->location()) { VirtualMethods.insert(getSymbolID(CMD)); + LocateASTReferentMetric.record(1, "method-to-override"); + } } // Special case: void foo() ^override: jump to the overridden method. const InheritableAttr *Attr = D->getAttr<OverrideAttr>(); @@ -379,6 +383,7 @@ if (Attr && TouchedIdentifier && SM.getSpellingLoc(Attr->getLocation()) == TouchedIdentifier->location()) { + LocateASTReferentMetric.record(1, "method-to-base"); // We may be overridding multiple methods - offer them all. for (const NamedDecl *ND : CMD->overridden_methods()) AddResultDecl(ND); @@ -403,6 +408,7 @@ if (auto *CTSD = dyn_cast<ClassTemplateSpecializationDecl>(D)) { if (TouchedIdentifier && D->getLocation() == TouchedIdentifier->location()) { + LocateASTReferentMetric.record(1, "template-specialization-to-primary"); AddResultDecl(CTSD->getSpecializedTemplate()); continue; } @@ -418,9 +424,12 @@ if (const auto *ID = CD->getClassInterface()) if (TouchedIdentifier && (CD->getLocation() == TouchedIdentifier->location() || - ID->getName() == TouchedIdentifier->text(SM))) + ID->getName() == TouchedIdentifier->text(SM))) { + LocateASTReferentMetric.record(1, "objc-category-to-class"); AddResultDecl(ID); + } + LocateASTReferentMetric.record(1, "regular"); // Otherwise the target declaration is the right one. AddResultDecl(D); }
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits