[PATCH] D59605: [clangd] Introduce background-indexer
Kadir Cetinkaya via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Apr 11 09:05:20 PDT 2019
kadircet marked an inline comment as done.
kadircet added a comment.
Looking at the current state of `BackgroundIndex`, it has the following implementation details:
- Loading of shards from storage
- Storing of shards to storage
- Collecting symbols from a TU
- Sharding of symbol information collected from one translation unit
- Performing all these tasks in a thread pool that can change scheduling priority of the thread depending on the task running.
Our requirements from the tool that currently is not possible through `BackgroundIndex`:
- Running tasks without lowering scheduling priority
- Blocking until all of the indexing actions finishes
I believe we can achive the first one by adding some options. The second one is already possible but it is using a test method we implemented for tests, as you mentioned we can just change the name.
Of course the above mentioned solutions would imply exposing that functionality to every user of `BackgroundIndex`.
I feel like it is better than exposing rest of the implementation details I mentioned in the first section(and also would be a lot faster to implement). WDYT?
================
Comment at: clang-tools-extra/clangd/background-indexer/BackgroundIndexer.cpp:65
+ llvm::sys::path::append(DummyFile, "dummy.cpp");
+ CDB.getCompileCommand(DummyFile);
+
----------------
ilya-biryukov wrote:
> We seem to be fighting with the interface we defined here.
> If we need to support an operation of re-building the index for the underlying CDB, let's add it explicitly.
I should've rather performed this through `enqueue`, will change to use that.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D59605/new/
https://reviews.llvm.org/D59605
More information about the cfe-commits
mailing list