-
Notifications
You must be signed in to change notification settings - Fork 10.5k
Improvements for cross-module-optimization #32495
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
Unlike SIL functions, there is no way to distinguish a global declaration from a global definition - other than the linkage.
Propagate a value from a static "let" global variable. This optimization is also done by GlobalOpt, but not with de-serialized globals, which can occur with cross-module optimization.
This is needed for cross-module optimization: it enables constant folding of global let variables which are defined in another module.
* Include small non-generic functions for serializaion * serialize initializer of global variables: so that global let variables can be constant propagated across modules rdar://problem/60696510
@swift-ci test |
@swift-ci 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
|
Build failed |
@swift-ci test linux |
Hey @eeckstein - this seems to have been checked in with a failing windows test. The CI actually caught that, and the bots are currently red. Could you please look into that or revert this please? |
rdar://problem/60696510
For details see the commit messages