-
Notifications
You must be signed in to change notification settings - Fork 10.5k
[semantic-arc-opts] Teach load [copy] -> load_borrow about forwarding… #26956
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
[semantic-arc-opts] Teach load [copy] -> load_borrow about forwarding… #26956
Conversation
994612b
to
88c92c2
Compare
@swift-ci smoke test |
88c92c2
to
df8edaf
Compare
NOTE: There are two commits here, the first a refactor the 2nd the meat of the transform. |
@swift-ci smoke test |
@swift-ci benchmark |
NOTE: I split out the first commit into a separate PR since it is pretty trivial. |
Here: #26958 |
Performance: -O
Code size: -O
Performance: -Osize
Code size: -OsizePerformance: -OnoneCode 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
|
@weissi check out that NIOChannelPipeline improvement. |
Wow, that is amazing!!! Thank you |
… instructions. I implemented this some time ago for copy_value, but I (IIRC due to time) did not enable it for the load [copy] optimization. Specifically now we should be able to optimize this: ``` %ref = ref_element_addr %guaranteedArg %0a = load [copy] %ref %0b = unchecked_ref_cast %0a destroy_value %0b ``` -> ``` %ref = ref_element_addr %guaranteedArg %0a = load_borrow %guaranteedArg %0b = unchecked_ref_cast %0a end_borrow %0a ```
df8edaf
to
df6ff7f
Compare
@swift-ci smoke test and merge |
3 similar comments
@swift-ci smoke test and merge |
@swift-ci smoke test and merge |
@swift-ci smoke test and merge |
… instructions.
I implemented this some time ago for copy_value, but I (IIRC due to time) did
not enable it for the load [copy] optimization. Specifically now we should be
able to optimize this:
->