Author: Michael Spencer Date: 2023-03-07T15:13:55-08:00 New Revision: 57c7750f703ddee9025f819cdd01c9e97666e7ab
URL: https://github.com/llvm/llvm-project/commit/57c7750f703ddee9025f819cdd01c9e97666e7ab DIFF: https://github.com/llvm/llvm-project/commit/57c7750f703ddee9025f819cdd01c9e97666e7ab.diff LOG: [clang][DependencyScanner] Cache modulemap stat failures Add `module.modulemap` as a file we cache stat failures for as there are a lot of stats for this file. Clang currently uses the files it should minimize as a proxy for files it should cache stat failures for, but really we should cache stat failures for all paths we don't expect to change during the build. Unfortunately the VFS API does not know _why_ clang is trying to stat a path, so we use the filename as a proxy. Differential Revision: https://reviews.llvm.org/D145526 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 97b41fc689176..0ddb5c24c5e6c 100644 --- a/clang/lib/Tooling/DependencyScanning/DependencyScanningFilesystem.cpp +++ b/clang/lib/Tooling/DependencyScanning/DependencyScanningFilesystem.cpp @@ -181,7 +181,11 @@ static bool shouldCacheStatFailures(StringRef Filename) { StringRef Ext = llvm::sys::path::extension(Filename); if (Ext.empty()) return false; // This may be the module cache directory. - // Only cache stat failures on source files. + // Only cache stat failures on files that are not expected to change during + // the build. + StringRef FName = llvm::sys::path::filename(Filename); + if (FName == "module.modulemap" || FName == "module.map") + return true; return shouldScanForDirectivesBasedOnExtension(Filename); } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits