[PATCH] D125488: [Preprocessor] Make the special lexing for dependency scanning a first-class feature of the `Preprocessor` and `Lexer`

Argyrios Kyrtzidis via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu May 12 16:07:01 PDT 2022


akyrtzi added a comment.

In D125488#3510214 <https://reviews.llvm.org/D125488#3510214>, @dexonsmith wrote:

> Is there code in DepFS that can/should be deleted as part of this patch, or in a follow-up, or is it still around as an option?

After these changes, with DepFS we are using its multi-threading sharding technique to cache file `stat`s and the source file directive scanning results. We could use multi-threading sharding only to cache source file directive scanning results, and get rid of `DepFS` altogether, but then I don't see a good way to cache the file `stat`s as well, unless we want to try to re-use the `FileManager` across depscan instances and make its `stat` caching as efficient as DepFS (maybe by generalizing the multi-threading sharding technique and using it in `FileManager`).

There's also `FileSystemStatCache` which seems like a leftover right now, but we could enhance it and have it shared by individual `FileManager` instances (instead of sharing the same `FileManager` in depscan instances).

What do you think?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D125488



More information about the cfe-commits mailing list