[lldb] Change LLDBTypeInfoProvider to a local (per-module) TypeSystem… #10373
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.
…Swift
The decision of using a scratch context in TIP was made because reading types from a Process' reflection metadata can return types outside of the current lldb_private::Module. That'd be a huge problem for SwiftASTContext because it would pollute the context with ASTs from outside the Module, but TypeSystemSwiftTypeRef only deals in type names, which makes it immune to these risks.
This change allows TypeAlias lookups to be made locally, which can dramatically speed up type resolution. In a real-world benchmark of printing self in a large Swift/ObjC application the time spent in FindTypes() goes from 50% to it not even showing up on the profile.
rdar://145884579