kadircet added inline comments.
================ Comment at: clang-tools-extra/clangd/index/FileIndex.cpp:97 +/// paths used by \p FileSyms. +void shardSlabToFiles(const SymbolSlab &Syms, const RelationSlab &Rels, + FileSymbols &FileSyms, llvm::StringRef HintPath) { ---------------- kadircet wrote: > sammccall wrote: > > This screams out to be shared with BackgroundIndex::update(). Is it very > > hard to do? > > > > Things that are different: > > - no duplication of symbol into defining file (why?) > > - refs not gathered here (but I guess empty input -> empty output?) > > - include graph not gathered here (same) > > - this holds 3 copies of all the data at peak, other impl holds 2 > > > > I imagine factoring out a function that returns a StringMap<File> like in > > BackgroundIndex::Update, but File has a build() function that returns an > > IndexFileIn or so. > > (Ooh, is depending on IndexFileIn a layering violation? Maybe we should > > move that into another header. Duplicating the struct is probably OK for > > now) > In backgroundindex we "prefilter" symbols and only duplicate the ones coming > from modified files, whereas in this one we duplicate every symbol no matter > what. I didn't want to change backgroundindex into post filtering mode (I > suppose that's what you mean by the last item). > > as for the first bullet point, duplicating in case of preamble symbols > wouldn't matter since we don't merge(rather pick one) while building the > index for preamblesymbols. I suppose storing them twice shouldn't be a huge > issue. > > Depending to `IndexFileIn` in "Index.h" would be a violation, but depending > on it in "FileIndex.h" is fine. > > I am happy to refactor a `StringMap<File> shardIndexToFiles(IndexFileIn, > HintPath)` into "FileIndex.h" that can be used by both backgroundindex and > this, if you are OK with above mentioned regressions. implemented a version of this that only copies data when requested. Hence the pre/post filtering argument is gone. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D77732/new/ https://reviews.llvm.org/D77732 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits