Skip to content

Commit 079592b

Browse files
authored
Merge pull request #61377 from artemcm/SwiftScanDeps_ShareClangService
[Dependency Scanning] Share the Clang Dependency Scanning service among scanner invocations.
2 parents 9811f77 + b426757 commit 079592b

File tree

2 files changed

+13
-13
lines changed

2 files changed

+13
-13
lines changed

include/swift/AST/ModuleDependencies.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -502,6 +502,9 @@ class GlobalModuleDependenciesCache {
502502
ModuleDependenciesKindMap ModuleDependenciesMap;
503503
};
504504

505+
/// The 'persistent' Clang dependency scanner service
506+
clang::tooling::dependencies::DependencyScanningService clangScanningService;
507+
505508
/// All cached Swift source module dependencies, in the order in which they were encountered
506509
std::vector<ModuleDependencyID> AllSourceModules;
507510

@@ -616,9 +619,6 @@ class ModuleDependenciesCache {
616619
StringRef mainScanModuleName;
617620
/// Set containing all of the Clang modules that have already been seen.
618621
llvm::StringSet<> alreadySeenClangModules;
619-
/// The 'persistent' Clang dependency scanner service
620-
/// TODO: Share this service among common scanner invocations
621-
clang::tooling::dependencies::DependencyScanningService clangScanningService;
622622
/// The Clang dependency scanner tool
623623
clang::tooling::dependencies::DependencyScanningTool clangScanningTool;
624624

lib/AST/ModuleDependencies.cpp

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,15 @@ void ModuleDependencies::addBridgingModuleDependency(
225225
}
226226
}
227227

228-
GlobalModuleDependenciesCache::GlobalModuleDependenciesCache() {}
228+
GlobalModuleDependenciesCache::GlobalModuleDependenciesCache()
229+
: clangScanningService(
230+
clang::tooling::dependencies::ScanningMode::DependencyDirectivesScan,
231+
clang::tooling::dependencies::ScanningOutputFormat::Full,
232+
clang::CASOptions(),
233+
/* Cache */ nullptr,
234+
/* SharedFS */ nullptr,
235+
/* ReuseFileManager */ false,
236+
/* OptimizeArgs */ false) {}
229237
GlobalModuleDependenciesCache::TargetSpecificGlobalCacheState *
230238
GlobalModuleDependenciesCache::getCurrentCache() const {
231239
assert(CurrentTriple.hasValue() &&
@@ -536,15 +544,7 @@ ModuleDependenciesCache::ModuleDependenciesCache(
536544
StringRef mainScanModuleName)
537545
: globalCache(globalCache),
538546
mainScanModuleName(mainScanModuleName),
539-
clangScanningService(
540-
clang::tooling::dependencies::ScanningMode::DependencyDirectivesScan,
541-
clang::tooling::dependencies::ScanningOutputFormat::Full,
542-
clang::CASOptions(),
543-
/* Cache */ nullptr,
544-
/* SharedFS */ nullptr,
545-
/* ReuseFileManager */ false,
546-
/* OptimizeArgs */ false),
547-
clangScanningTool(clangScanningService) {
547+
clangScanningTool(globalCache.clangScanningService) {
548548
for (auto kind = ModuleDependenciesKind::FirstKind;
549549
kind != ModuleDependenciesKind::LastKind; ++kind) {
550550
ModuleDependenciesMap.insert(

0 commit comments

Comments
 (0)