[clang] [clang][deps] Only bypass scanning VFS for the module cache (PR #88800)

Jan Svoboda via cfe-commits cfe-commits at lists.llvm.org
Tue Apr 16 09:48:21 PDT 2024


================
@@ -201,11 +201,8 @@ const CachedRealPath &DependencyScanningFilesystemSharedCache::CacheShard::
   return *StoredRealPath;
 }
 
-static bool shouldCacheStatFailures(StringRef Filename) {
-  StringRef Ext = llvm::sys::path::extension(Filename);
-  if (Ext.empty())
-    return false; // This may be the module cache directory.
-  return true;
+bool DependencyScanningWorkerFilesystem::shouldBypass(StringRef Path) const {
+  return BypassedPathPrefix && Path.starts_with(*BypassedPathPrefix);
----------------
jansvoboda11 wrote:

I thought that the rest of the compiler just appends to the `Path` we pass in here. But looking into that a bit closer I see that `pruneModuleCache()` in `CompilerInstance.cpp` calls `llvm::sys::path::native()` on this and `HeaderSearch::getCachedModuleFileNameImpl()` calls `llvm::sys::fs::make_absolute()`. I'll investigate if these are necessary and if so, I'll try to unify things so that just doing string prefix match is enough in all situations.

https://github.com/llvm/llvm-project/pull/88800


More information about the cfe-commits mailing list