Author: Jan Svoboda
Date: 2023-05-15T17:43:54-07:00
New Revision: 94d22b09bbb212773a226726ee03a44edbbe98c7

URL: 
https://github.com/llvm/llvm-project/commit/94d22b09bbb212773a226726ee03a44edbbe98c7
DIFF: 
https://github.com/llvm/llvm-project/commit/94d22b09bbb212773a226726ee03a44edbbe98c7.diff

LOG: [clang][deps] Do not cache PCM files

On incremental scan, caching an out-of-date PCM on the VFS layer causes each TU 
and each module to recompile the PCM again. This is huge performance problem. 
Stop caching ".pcm" files.

Reviewed By: Bigcheese

Differential Revision: https://reviews.llvm.org/D150615

Added: 
    

Modified: 
    clang/lib/Tooling/DependencyScanning/DependencyScanningFilesystem.cpp

Removed: 
    


################################################################################
diff  --git 
a/clang/lib/Tooling/DependencyScanning/DependencyScanningFilesystem.cpp 
b/clang/lib/Tooling/DependencyScanning/DependencyScanningFilesystem.cpp
index 0ddb5c24c5e6..31404855e3b1 100644
--- a/clang/lib/Tooling/DependencyScanning/DependencyScanningFilesystem.cpp
+++ b/clang/lib/Tooling/DependencyScanning/DependencyScanningFilesystem.cpp
@@ -262,6 +262,9 @@ DependencyScanningWorkerFilesystem::status(const Twine 
&Path) {
   SmallString<256> OwnedFilename;
   StringRef Filename = Path.toStringRef(OwnedFilename);
 
+  if (Filename.endswith(".pcm"))
+    return getUnderlyingFS().status(Path);
+
   llvm::ErrorOr<EntryRef> Result = getOrCreateFileSystemEntry(Filename);
   if (!Result)
     return Result.getError();
@@ -319,6 +322,9 @@ DependencyScanningWorkerFilesystem::openFileForRead(const 
Twine &Path) {
   SmallString<256> OwnedFilename;
   StringRef Filename = Path.toStringRef(OwnedFilename);
 
+  if (Filename.endswith(".pcm"))
+    return getUnderlyingFS().openFileForRead(Path);
+
   llvm::ErrorOr<EntryRef> Result = getOrCreateFileSystemEntry(Filename);
   if (!Result)
     return Result.getError();


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

Reply via email to