Skip to content

🍒 [5.7] SE-0309: SILOptimizer fixes & reenable executable tests #59138

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
May 31, 2022

Conversation

AnthonyLatsis
Copy link
Collaborator

@AnthonyLatsis AnthonyLatsis commented May 28, 2022

  • Description:

    • The devirtualizer does not support cases with covariant Self nested inside a collection type, because it does not handle the associated collection upcasts.
    • The createApplyWithConcreteType optimization does not support cases with covariant Self.

    With SE-0309, these limitations must be extended to Self-rooted type parameters (or non-root opened archetypes), and the former must also look out for variadic parameters, which desugar to arrays.

  • Scope: SE-0309 paths that previously crashed.

  • Risk: Low.

  • Reviewers: @slavapestov

  • Testing: Regression tests.

  • Original PR: SE-0309: SILOptimizer fixes & reenable executable tests #58513

…'apply' involves non-root opened archetypes

This optimization rewrites only the 'self' argument, and does not know how to
substitute types in the users of the given apply instruction in case the
underlying protocol method involved `Self`-dependent types. With SE-0309 in
motion, the bail-out logic must be generalized to non-root opened archetypes.
@AnthonyLatsis AnthonyLatsis requested a review from a team as a code owner May 28, 2022 02:09
@AnthonyLatsis
Copy link
Collaborator Author

@swift-ci please test

@AnthonyLatsis AnthonyLatsis merged commit a240a35 into swiftlang:release/5.7 May 31, 2022
@AnthonyLatsis AnthonyLatsis deleted the 5.7-se-309-sil-opt branch May 31, 2022 20:37
@AnthonyLatsis AnthonyLatsis added 🍒 release cherry pick Flag: Release branch cherry picks swift 5.7 labels Jan 9, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🍒 release cherry pick Flag: Release branch cherry picks swift 5.7
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants