Skip to content

Conversation

@qiongsiwu
Copy link
Contributor

@qiongsiwu qiongsiwu commented Mar 20, 2025

This PR is a work in progress at the moment and intends to show a functional prototype.

This PR teaches the dependency scanner to batch the module names and scan a list of names using one thread, instead
of dispatching each individual module by name to the clang importer. This way, the clang importer can process the
list in one shot, avoiding creating duplicating resource for each individual modules.

This PR works in tandem with llvm/llvm-project#129915.

rdar://136303612

@qiongsiwu
Copy link
Contributor Author

qiongsiwu commented Mar 20, 2025

Note to reviewers:

This PR is functionally correct (in the sense that it introduces no swift test failures). The choice of StringSet<> to partition the scanning results by name is not efficient (I think I should simply use a vector instead). And I have not done refactoring ModuleDependencyScanner::resolveAllClangModuleDependencies. I am working on these items (in addition to resolving the merge conflict). llvm/llvm-project#129915 will need some updates as well to include the necessary changes in clang.

@qiongsiwu qiongsiwu self-assigned this Mar 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant