-
Notifications
You must be signed in to change notification settings - Fork 10.5k
Disable fix_lifetime DCE. #36183
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
Disable fix_lifetime DCE. #36183
Conversation
@swift-ci smoke test |
@swift-ci benchmark |
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.
lgtm
@swift-ci smoke test |
@swift-ci benchmark |
Unless the type is a trivial scalar. As a follow-up we could try to prove that the referenced object is unique, but that seems more natural for DeadObjectElimination. This optimization was never correct because references may alias. See rdar://36038096 ([SR-6608] DeadCodeElimination removes fix_lifetime instructions.) Fixes rdar://74759728 (The compiler/optimizer seems to be shortening the lifetime too early)
9329465
to
f470b29
Compare
@swift-ci smoke test |
@swift-ci benchmark |
Performance: -O
Code size: -O
Performance: -Osize
Code size: -Osize
Performance: -Onone
Code size: -swiftlibsHow 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
|
Unless the type is a trivial scalar. As a follow-up we could try to
prove that the referenced object is unique, but that seems more
natural for DeadObjectElimination.
This optimization was never correct because references may alias. See
rdar://36038096 ([SR-6608] DeadCodeElimination removes fix_lifetime
instructions.)
Fixes rdar://74759728 (The compiler/optimizer seems to be shortening
the lifetime too early)