llvm-project/clang/lib/Tooling
Jan Svoboda d1e00b6f13 [clang][deps] Only cache files with specific extension
In the scanner's VFS, we cache all files by default and only avoid caching stat failures for certain files. This tanks the performance of scanning with pre-populated module cache. When there is a stale PCM file, it gets cached by the scanner at the start and the rebuilt version never makes it through the VFS again. The TU invocation that rebuilds the PCM only sees the copy in its InMemoryModuleCache, which is invisible to other invocations. This means the PCM gets rebuilt for every TU given to the scanner.

This patch fixes the situation by flipping the default, only caching files that are known to be important, and letting everything else fall through to the underlying VFS.

rdar://106376153

Reviewed By: Bigcheese

Differential Revision: https://reviews.llvm.org/D146328
2023-03-20 11:12:00 -07:00
..
ASTDiff [clang] Use std::optional instead of llvm::Optional (NFC) 2023-01-14 12:31:01 -08:00
Core
DependencyScanning [clang][deps] Only cache files with specific extension 2023-03-20 11:12:00 -07:00
DumpTool [NFC][TargetParser] Replace uses of llvm/Support/Host.h 2023-02-10 09:59:46 +00:00
Inclusions [Tooling/Inclusion] Index more sub std namespace symbols. 2023-03-14 13:08:44 +01:00
Refactoring Revert "[Clang] Refactor "Designators" into a unified implementation [NFC]" 2023-03-02 12:09:29 -08:00
Syntax [clang] Remove remaining uses of llvm::Optional (NFC) 2023-01-14 13:37:25 -08:00
Transformer [libTooling] Rename getRangeForEdit as getFileRangeForEdit 2023-01-18 13:58:26 -05:00
AllTUsExecution.cpp
ArgumentsAdjusters.cpp
CMakeLists.txt
CommonOptionsParser.cpp
CompilationDatabase.cpp [NFC][TargetParser] Replace uses of llvm/Support/Host.h 2023-02-10 09:59:46 +00:00
EmptyNodeIntrospection.inc.in
Execution.cpp
ExpandResponseFilesCompilationDatabase.cpp [clangd] Move standard options adaptor to CommandMangler 2023-03-17 03:10:36 -07:00
FileMatchTrie.cpp
FixIt.cpp
GuessTargetAndModeCompilationDatabase.cpp
InterpolatingCompilationDatabase.cpp [clang] Remove remaining uses of llvm::Optional (NFC) 2023-01-14 13:37:25 -08:00
JSONCompilationDatabase.cpp [NFC][TargetParser] Replace uses of llvm/Support/Host.h 2023-02-10 09:59:46 +00:00
NodeIntrospection.cpp
Refactoring.cpp
RefactoringCallbacks.cpp
StandaloneExecution.cpp
Tooling.cpp [clangd] Move standard options adaptor to CommandMangler 2023-03-17 03:10:36 -07:00