-
Notifications
You must be signed in to change notification settings - Fork 10.5k
Fix use-after-free in DestroyHoisting #38965
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
Conversation
OSSA cannot have critical edges. And DestroyHoisting works only on OSSA.
@swift-ci test |
@swift-ci benchmark |
3aceea5
to
131e4cd
Compare
@swift-ci test |
@swift-ci benchmark |
I found a real bug due to unhandled cases with |
Performance (x86_64): -O
Code size: -O
Performance (x86_64): -Osize
Code size: -OsizePerformance (x86_64): -Onone
Code size: -swiftlibs
How to read the dataThe tables contain differences in performance which are larger than 8% and differences in code size which are larger than 1%.If you see any unexpected regressions, you should consider fixing the Noise: Sometimes the performance results (not code size!) contain false Hardware Overview
|
Build failed |
Build failed |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for fixing this.
Basically LGTM, I just have one change request.
0f8c4ba
to
6534779
Compare
@swift-ci test |
1 similar comment
@swift-ci test |
Build failed |
Build failed |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks, LGTM!
6534779
to
1d05105
Compare
Due to mismatch in the instructions handled in DestroyHoisting::getUsedLocationsOfInst and MemoryLocations::analyzeLocationUsesRecursively, certain users of addresses were not considered and the destroys were hoisted before valid uses causing use-after-frees
1d05105
to
4c9cb0c
Compare
@swift-ci test |
@swift-ci benchmark |
Performance (x86_64): -O
Code size: -O
Performance (x86_64): -Osize
Code size: -OsizePerformance (x86_64): -Onone
Code size: -swiftlibs
How to read the dataThe tables contain differences in performance which are larger than 8% and differences in code size which are larger than 1%.If you see any unexpected regressions, you should consider fixing the Noise: Sometimes the performance results (not code size!) contain false Hardware Overview
|
No description provided.