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
IRGen: Factor out calling convention shuffling in metadata accessors, and remove frame pointers. #26475
IRGen: Factor out calling convention shuffling in metadata accessors, and remove frame pointers. #26475
Conversation
@swift-ci Please benchmark |
Performance: -O
Code size: -O
Performance: -Osize
Code size: -Osize
Performance: -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
|
248c754
to
251e1d9
Compare
@swift-ci Please benchmark |
Performance: -O
Code size: -OPerformance: -Osize
Code size: -OsizePerformance: -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
|
251e1d9
to
ae2a241
Compare
@swift-ci Please test |
Build failed |
Build failed |
@swift-ci Please benchmark |
@swift-ci Please test |
Build failed |
Build failed |
Performance: -O
Code size: -O
Performance: -Osize
Code size: -Osize
Performance: -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
|
Metadata accessors that take <=3 arguments have to put the arguments in a temporary buffer and move the registers around in order to call swift_getGenericMetadata. We can factor this into a common shim function.
Looks like the increased dylib size comes from increased unwind and EH table information, which makes sense because without the frame pointer we need more info on how to unwind frames. The |
cde1eb8
to
d50b236
Compare
@swift-ci Please test |
Build failed |
Build failed |
d50b236
to
1d19a3e
Compare
@swift-ci Please test |
Build failed |
1d19a3e
to
b3ac66a
Compare
@swift-ci Please test |
Build failed |
Build failed |
Metadata accessors that take <=3 arguments have to put the arguments in a temporary buffer and
move the registers around in order to call swift_getGenericMetadata. We can factor this into a
common shim function.