mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
Merge pull request #85849 from artemcm/FixScanDepsPerfRegression
[Dependency Scanning] Do not re-query a given clang module identifier more than once
This commit is contained in:
@@ -1113,17 +1113,20 @@ void ModuleDependencyScanner::performParallelClangModuleLookup(
|
||||
};
|
||||
|
||||
// Enque asynchronous lookup tasks
|
||||
llvm::StringSet<> queriedIdentifiers;
|
||||
for (const auto &unresolvedImports : unresolvedImportsMap)
|
||||
for (const auto &unresolvedImportInfo : unresolvedImports.second)
|
||||
ScanningThreadPool.async(
|
||||
scanForClangModuleDependency,
|
||||
getModuleImportIdentifier(unresolvedImportInfo.importIdentifier));
|
||||
if (queriedIdentifiers.insert(unresolvedImportInfo.importIdentifier).second)
|
||||
ScanningThreadPool.async(
|
||||
scanForClangModuleDependency,
|
||||
getModuleImportIdentifier(unresolvedImportInfo.importIdentifier));
|
||||
|
||||
for (const auto &unresolvedImports : unresolvedOptionalImportsMap)
|
||||
for (const auto &unresolvedImportInfo : unresolvedImports.second)
|
||||
ScanningThreadPool.async(
|
||||
scanForClangModuleDependency,
|
||||
getModuleImportIdentifier(unresolvedImportInfo.importIdentifier));
|
||||
if (queriedIdentifiers.insert(unresolvedImportInfo.importIdentifier).second)
|
||||
ScanningThreadPool.async(
|
||||
scanForClangModuleDependency,
|
||||
getModuleImportIdentifier(unresolvedImportInfo.importIdentifier));
|
||||
|
||||
ScanningThreadPool.wait();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user