kadircet added a reviewer: kadircet. kadircet added a comment. 66% win sounds great, it would be nice to have some detailed numbers (but this is clearly a huge win, so no need to reperform the experiments if numbers are gone)
================ Comment at: clang-tools-extra/clangd/XRefs.cpp:895 + : PerToken(PerToken), AST(AST) { + for (const Decl *D : TD) { + TargetDecls.insert(D->getCanonicalDecl()); ---------------- nit: no need for braces you can directly build the set with canonicaldecls and consume it here ================ Comment at: clang-tools-extra/clangd/XRefs.cpp:951 if (const auto *Tok = TB.spelledTokenAt(L)) - References.push_back({*Tok, Roles, ID}); + References.push_back({*Tok, Roles, getSymbolID(D)}); } ---------------- we're still calling getsymbolid here lots of times, for probably the same symbol. as discussed, what about building a lookup table on construction from canonicaldecl to symbolid and use that lookup table instead of calling getsymbolid over and over here? ================ Comment at: clang-tools-extra/clangd/XRefs.cpp:1255 + targetDecl(N->ASTNode, Relations, AST.getHeuristicResolver())) { + TargetDecls.insert(D); + } ---------------- i mean directly inserting canonicaldecls here. ================ Comment at: clang-tools-extra/clangd/XRefs.cpp:1260 // and different kinds, deduplicate them. llvm::DenseSet<SymbolID> Targets; + for (const Decl *D : TargetDecls) ---------------- no need for this and the following loop anymore. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D125675/new/ https://reviews.llvm.org/D125675 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits