Skip to content

Pick matrix lifetime fix. #8424

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 2 commits into from
Mar 19, 2024
Merged

Conversation

fhahn
Copy link

@fhahn fhahn commented Mar 18, 2024

No description provided.

fhahn added 2 commits March 18, 2024 14:47
Add a set of tests showing miscompiles due to multiply fusion
introducing loads to dead objects after lifetime.end.

(cherry-picked from d96d917)
At the moment, loads introduced by multiply fusion may be placed after
an objects lifetime has been terminated by lifetime.end. This introduces
reads to dead objects.

To avoid this, first collect all lifetime.end calls in the function.
During fusion, we deal with any lifetime.end calls that may alias any of
the loads.

Such lifetime.end calls are either moved when possible (both the
lifetime.end and the store are in the same block) or deleted.

PR: llvm#84914

(cherry-picked from e77378c)
@fhahn
Copy link
Author

fhahn commented Mar 18, 2024

@swift-ci please test

@fhahn
Copy link
Author

fhahn commented Mar 18, 2024

@swift-ci please test LLVM

@fhahn fhahn merged commit ad60672 into swiftlang:stable/20230725 Mar 19, 2024
@fhahn fhahn deleted the matrix-lifetime-fix branch March 20, 2024 11:20
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