[clang-tools-extra] 63667c1 - [clangd] Trace per-token time in clangd --check

Sam McCall via cfe-commits cfe-commits at lists.llvm.org
Tue Nov 9 23:23:08 PST 2021


Author: Sam McCall
Date: 2021-11-10T08:22:48+01:00
New Revision: 63667c1896e11a4b2c389c681a2413e2d5a6b594

URL: https://github.com/llvm/llvm-project/commit/63667c1896e11a4b2c389c681a2413e2d5a6b594
DIFF: https://github.com/llvm/llvm-project/commit/63667c1896e11a4b2c389c681a2413e2d5a6b594.diff

LOG: [clangd] Trace per-token time in clangd --check

Added: 
    

Modified: 
    clang-tools-extra/clangd/tool/Check.cpp

Removed: 
    


################################################################################
diff  --git a/clang-tools-extra/clangd/tool/Check.cpp b/clang-tools-extra/clangd/tool/Check.cpp
index 6672b7d968de..65638dc88a60 100644
--- a/clang-tools-extra/clangd/tool/Check.cpp
+++ b/clang-tools-extra/clangd/tool/Check.cpp
@@ -37,6 +37,7 @@
 #include "index/FileIndex.h"
 #include "refactor/Tweak.h"
 #include "support/ThreadsafeFS.h"
+#include "support/Trace.h"
 #include "clang/AST/ASTContext.h"
 #include "clang/Basic/DiagnosticIDs.h"
 #include "clang/Format/Format.h"
@@ -195,6 +196,7 @@ class Checker {
   void testLocationFeatures(
       llvm::function_ref<bool(const Position &)> ShouldCheckLine,
       const bool EnableCodeCompletion) {
+    trace::Span Trace("testLocationFeatures");
     log("Testing features at each token (may be slow in large files)");
     auto &SM = AST->getSourceManager();
     auto SpelledTokens = AST->getTokens().spelledTokens(SM.getMainFileID());
@@ -210,6 +212,10 @@ class Checker {
       if (!ShouldCheckLine(Pos))
         continue;
 
+      trace::Span Trace("Token");
+      SPAN_ATTACH(Trace, "pos", Pos);
+      SPAN_ATTACH(Trace, "text", Tok.text(AST->getSourceManager()));
+
       // FIXME: dumping the tokens may leak sensitive code into bug reports.
       // Add an option to turn this off, once we decide how options work.
       vlog("  {0} {1}", Pos, Tok.text(AST->getSourceManager()));


        


More information about the cfe-commits mailing list