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