[6.0 🍒] Cache visible Clang modules for interface printing in 'ModuleDecl' #74336
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Cherry-pick of #74307
Explanation: Instead of caching the collection of visible Clang modules in the 'TypePrinter', compute and cache them in the 'ModuleDecl'. When printing a textual interface, the compiler will instantiate many new instances of 'TypePrinter', which means caching them there is not useful.
Risk: Low. This change alters the textual interface printing logic to cache computed visible modules per-
ModuleDecl
instead of per-TypePrinter
. The logic to compute visible modules is unchanged.Testing: This change does not affect any specific aspect of module emission, all existing tests in the test suite where a textual interface is emitted will exercise the new code-path.
Reviewed By: @tshortli