summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clangd/index/SymbolYAML.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang-tools-extra/clangd/index/SymbolYAML.cpp')
-rw-r--r--clang-tools-extra/clangd/index/SymbolYAML.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/clang-tools-extra/clangd/index/SymbolYAML.cpp b/clang-tools-extra/clangd/index/SymbolYAML.cpp
index d90f4b0c406..78e13aefbb9 100644
--- a/clang-tools-extra/clangd/index/SymbolYAML.cpp
+++ b/clang-tools-extra/clangd/index/SymbolYAML.cpp
@@ -8,6 +8,7 @@
//===----------------------------------------------------------------------===//
#include "SymbolYAML.h"
+#include "../Trace.h"
#include "Index.h"
#include "Serialization.h"
#include "dex/DexIndex.h"
@@ -183,25 +184,31 @@ std::string SymbolToYAML(Symbol Sym) {
return OS.str();
}
-std::unique_ptr<SymbolIndex> loadIndex(llvm::StringRef SymbolFile,
+std::unique_ptr<SymbolIndex> loadIndex(llvm::StringRef SymbolFilename,
bool UseDex) {
- auto Buffer = llvm::MemoryBuffer::getFile(SymbolFile);
+ trace::Span OverallTracer("LoadIndex");
+ auto Buffer = llvm::MemoryBuffer::getFile(SymbolFilename);
if (!Buffer) {
- llvm::errs() << "Can't open " << SymbolFile << "\n";
+ llvm::errs() << "Can't open " << SymbolFilename << "\n";
return nullptr;
}
StringRef Data = Buffer->get()->getBuffer();
llvm::Optional<SymbolSlab> Slab;
if (Data.startswith("RIFF")) { // Magic for binary index file.
+ trace::Span Tracer("ParseRIFF");
if (auto RIFF = readIndexFile(Data))
Slab = std::move(RIFF->Symbols);
else
llvm::errs() << "Bad RIFF: " << llvm::toString(RIFF.takeError()) << "\n";
} else {
+ trace::Span Tracer("ParseYAML");
Slab = symbolsFromYAML(Data);
}
+ if (!Slab)
+ return nullptr;
+ trace::Span Tracer("BuildIndex");
return UseDex ? dex::DexIndex::build(std::move(*Slab))
: MemIndex::build(std::move(*Slab), RefSlab());
}
OpenPOWER on IntegriCloud