[Dependency Scanning] Reduce number of module loaders instantiated for textual interface scanning sub-instance

This commit is contained in:
Artem Chikin
2025-05-07 11:23:25 -07:00
parent 8cd193fc08
commit 80c71fd3a9
3 changed files with 47 additions and 15 deletions

View File

@@ -267,8 +267,7 @@ ModuleDependencyScanningWorker::ModuleDependencyScanningWorker(
const SILOptions &SILOptions, ASTContext &ScanASTContext,
swift::DependencyTracker &DependencyTracker, DiagnosticEngine &Diagnostics)
: clangScanningTool(*globalScanningService.ClangScanningService,
globalScanningService.getClangScanningFS()),
swiftModuleClangCC1CommandLineArgs() {
globalScanningService.getClangScanningFS()) {
// Create a scanner-specific Invocation and ASTContext.
workerCompilerInvocation =
std::make_unique<CompilerInvocation>(ScanCompilerInvocation);
@@ -320,9 +319,7 @@ ModuleDependencyScanningWorker::ModuleDependencyScanningWorker(
// with `-direct-clang-cc1-module-build`.
if (ScanASTContext.ClangImporterOpts.ClangImporterDirectCC1Scan) {
swiftModuleClangCC1CommandLineArgs.push_back("-direct-clang-cc1-module-build");
auto *importer =
static_cast<ClangImporter *>(ScanASTContext.getClangModuleLoader());
for (auto &Arg : importer->getSwiftExplicitModuleDirectCC1Args()) {
for (auto &Arg : scanClangImporter->getSwiftExplicitModuleDirectCC1Args()) {
swiftModuleClangCC1CommandLineArgs.push_back("-Xcc");
swiftModuleClangCC1CommandLineArgs.push_back(Arg);
}