[PATCH] D115346: [clang][deps] Squash caches for original and minimized files

Jan Svoboda via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 9 07:33:15 PST 2021


jansvoboda11 added a comment.

In D115346#3181198 <https://reviews.llvm.org/D115346#3181198>, @dexonsmith wrote:

> This looks really nice.
>
> One problem is that it's subtle to confirm whether it's thread-safe. The local cache access parts of CachedFileSystemEntry lock-free, but the CachedFileSystemEntry might get changed later (i.e., filled in with minimized content). Are accessed fields guaranteed by context not to be the ones that mutate later?

I believe the latest revision is thread-safe (albeit with benign data-races on `needsMinimization`). Once a `CachedFileSystemEntry` has been created, only the `MinimizedContents` and `PPSkippedRangeMapping` members can be modified (at most once, under a lock). Access to those fields only happens in "minimizing" contexts.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D115346



More information about the llvm-commits mailing list