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:
Artem Chikin
2025-12-05 14:33:49 -08:00
committed by GitHub

View File

@@ -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();
}