-
Notifications
You must be signed in to change notification settings - Fork 10.5k
[ownership] Change guaranteed args from transformation terminators to not require end_borrows. #29600
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
[ownership] Change guaranteed args from transformation terminators to not require end_borrows. #29600
Conversation
22b4f99
to
917dd4d
Compare
Lets see what source compat says. |
@swift-ci test source compatibility |
@swift-ci test linux platform |
Hmm... error already came up when building stdlib in release locally. These are going to fail. |
917dd4d
to
7b26a62
Compare
@swift-ci test source compatibility |
3 similar comments
@swift-ci test source compatibility |
@swift-ci test source compatibility |
@swift-ci test source compatibility |
Build failed |
… not require end_borrows. For those who are unaware, a transformation terminator is a terminator like switch_enum/checked_cast_br that always dominate their successor blocks. Since they dominate their successor blocks by design and transform their input into the args form, we can validate that they obey guaranteed ownership semantics just like a forwarding instruction. Beyond removing unnecessary code bloat, this also makes it significantly more easier to optimize/work with transformation terminators when converting @owned -> @guaranteed since we do not need to find end_borrow points when the owned value is consumed. <rdar://problem/59097063>
7b26a62
to
6c5c853
Compare
@swift-ci test |
1 similar comment
@swift-ci test |
@swift-ci benchmark |
@swift-ci benchmark |
@swift-ci test |
@swift-ci test source compatibility |
1 similar comment
@swift-ci test source compatibility |
@swift-ci test source compatibility |
@swift-ci test windows platform |
Performance: -O
Code size: -OPerformance: -Osize
Code size: -OsizePerformance: -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
|
@swift-ci test windows platform |
Hmmm... I have no clue why that benchmark improved so much. |
@swift-ci benchmark |
Performance: -O
Code size: -OPerformance: -Osize
Code size: -OsizePerformance: -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.