kadircet added a comment.

In D59407#1432543 <https://reviews.llvm.org/D59407#1432543>, @nridge wrote:

> If it's (B), how many bytes should the index be? Are the space gains worth 
> the complexity, given that `SymbolID` is only 8 bytes to begin with? (As 
> compared to say, the filenames in `Ref`, which can be much longer, making 
> this sort of optimization more clearly worth it.)


That was the case, I agree with you we should rather do that while serializing 
where we have variable length integers and duplication is more severe(all three 
slabs make use of same SymbolID pool).



================
Comment at: clang-tools-extra/clangd/index/Index.h:43
+public:
+  using value_type = std::pair<RelationKey, llvm::ArrayRef<SymbolID>>;
+  using const_iterator = std::vector<value_type>::const_iterator;
----------------
nridge wrote:
> kadircet wrote:
> > gribozavr wrote:
> > > `struct Relation`?  And in the comments for it, please explain which way 
> > > the relationship is directed (is the SymbolID in the key the subtype?  or 
> > > is the SymbolID in the ArrayRef the subtype?).
> > Ah exactly my thoughts, forget to mention this.
> > 
> > I believe current usage is the counter-intuitive one. For example, we will 
> > most likely query with something like:
> > `getRelations(SymbolID, baseOf)` to get all relations where `SymbolID` is 
> > `baseOf` something else(which says get children of `SymbolID`)
> > 
> > So that this valueType can be read like, 
> > ```
> > `SymbolID` is `RelationKind` every `SymbolID inside array`
> > ```
> > WDYT?
> The way I was thinking of it is that `getRelations(SymbolID, baseOf)` would 
> return all the bases of `SymbolID`. However, the opposite interpretation is 
> also reasonable, we just need to pick one and document it. I'm happy to go 
> with your suggested one.
It looks like IndexingAPI is also using the interpretation I suggested, so 
let's move with that one if you don't have any other concerns.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D59407/new/

https://reviews.llvm.org/D59407



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to