-
Notifications
You must be signed in to change notification settings - Fork 10.5k
[metadata prespecialization] On by default. #29488
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
[metadata prespecialization] On by default. #29488
Conversation
@swift-ci please test |
@swift-ci please test windows platform |
@swift-ci please clean test windows platform |
Build failed |
Build failed |
35242ca
to
e499d8b
Compare
@swift-ci please test macos platform |
Build failed |
414e834
to
8185fe5
Compare
@swift-ci please test macos platform |
@swift-ci please clean test windows platform |
Build failed |
cca094a
to
5c93f07
Compare
@swift-ci please test |
Build failed |
Build failed |
1f50c8e
to
9bcd842
Compare
@swift-ci please test linux platform |
Build failed |
Previously, when emitting the metadata accessor, the generic arguments of the type were enumerated one after the next. That was fine in most cases but is incorrect in cases where the actual number of generic arguments is less than apparent number as when two arguments are required to be equal. Now, the arguments are enumerated according to the requirements vended by the GenericTypeRequirements struct.
9bcd842
to
dc77f0a
Compare
@swift-ci please test linux platform |
Build failed |
dc77f0a
to
9a03cd7
Compare
@swift-ci please test macos platform |
@swift-ci please test linux platform |
Build failed |
Previously, some ad hoc checks were done in order to determine whether the metadata access for a generic type was trivial. Now, standard predicates are used, specifically IRGenModule's member functions isDependentConformance and isResilientConformance.
8c79ba5
to
fca1669
Compare
@swift-ci please test |
Build failed |
Build failed |
@swift-ci please test windows platform |
@swift-ci please benchmark |
Performance: -O
Code size: -OPerformance: -OsizeCode size: -OsizePerformance: -OnoneCode 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
|
@swift-ci please clean test windows platform |
1 similar comment
@swift-ci please clean test windows platform |
@swift-ci please test |
@swift-ci please test windows platform |
Build failed |
Build failed |
536571d
to
07fa6a6
Compare
@swift-ci please test |
@swift-ci please test windows platform |
Build failed |
Build failed |
07fa6a6
to
99ec30a
Compare
Previously, -Xfrontend -prespecialize-generic-metadata had to be passed in order for generic metadata to be prespecialized. Now it is prespecialized unless -Xfrontend -disable-generic-metadata-prespecialization is passed.
Temporarily disable metadata prespecialization on platforms other than MacOS, iOS, tvOS, watchOS, or Linux. At the moment, tests are failing on Windows with linker errors such as demangleToMetadata-558ea9.o : error LNK2001: unresolved external symbol $ss5Int64VN demangleToMetadata-558ea9.o : error LNK2001: unresolved external symbol $sSSSHsWP Once the issue leading to those linker errors has been resolved, the feature will be enabled on Windows.
99ec30a
to
ae1f41e
Compare
@swift-ci please test |
@swift-ci please test windows platform |
Build failed |
Build failed |
Previously,
-Xfrontend -prespecialize-generic-metadata
had to be passed in order for generic metadata to be prespecialized. Now it is prespecialized unless-Xfrontend -disable-generic-metadata-prespecialization
is passed.