Skip to content

Conversation

nate-chandler
Copy link
Contributor

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.

@nate-chandler
Copy link
Contributor Author

@swift-ci please test

@nate-chandler
Copy link
Contributor Author

@swift-ci please test windows platform

@nate-chandler
Copy link
Contributor Author

@swift-ci please clean test windows platform

@swift-ci
Copy link
Contributor

Build failed
Swift Test Linux Platform
Git Sha - 35242caac6ed5659f210a9333b81d139f1f66851

@swift-ci
Copy link
Contributor

Build failed
Swift Test OS X Platform
Git Sha - 35242caac6ed5659f210a9333b81d139f1f66851

@nate-chandler nate-chandler force-pushed the generic-metadata-prespecialization-components/default-on branch from 35242ca to e499d8b Compare January 28, 2020 19:24
@nate-chandler
Copy link
Contributor Author

@swift-ci please test macos platform

@swift-ci
Copy link
Contributor

Build failed
Swift Test OS X Platform
Git Sha - 35242caac6ed5659f210a9333b81d139f1f66851

@nate-chandler nate-chandler force-pushed the generic-metadata-prespecialization-components/default-on branch 2 times, most recently from 414e834 to 8185fe5 Compare January 28, 2020 21:21
@nate-chandler
Copy link
Contributor Author

@swift-ci please test macos platform

@nate-chandler
Copy link
Contributor Author

@swift-ci please clean test windows platform

@swift-ci
Copy link
Contributor

Build failed
Swift Test OS X Platform
Git Sha - 8185fe5161337dd81a3bd6042bc8ed2299e15e96

@nate-chandler nate-chandler force-pushed the generic-metadata-prespecialization-components/default-on branch 2 times, most recently from cca094a to 5c93f07 Compare January 29, 2020 02:19
@nate-chandler
Copy link
Contributor Author

@swift-ci please test

@swift-ci
Copy link
Contributor

Build failed
Swift Test Linux Platform
Git Sha - 8185fe5161337dd81a3bd6042bc8ed2299e15e96

@swift-ci
Copy link
Contributor

Build failed
Swift Test OS X Platform
Git Sha - 8185fe5161337dd81a3bd6042bc8ed2299e15e96

@nate-chandler nate-chandler force-pushed the generic-metadata-prespecialization-components/default-on branch 2 times, most recently from 1f50c8e to 9bcd842 Compare January 30, 2020 03:01
@nate-chandler
Copy link
Contributor Author

@swift-ci please test linux platform

@nate-chandler nate-chandler changed the title [frontend] Default on metadata prespecialization. [metadata prespecialization] On by default. Jan 30, 2020
@swift-ci
Copy link
Contributor

Build failed
Swift Test Linux Platform
Git Sha - 5c93f07b5301685b93c1abbb922351a915773e62

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.
@nate-chandler nate-chandler force-pushed the generic-metadata-prespecialization-components/default-on branch from 9bcd842 to dc77f0a Compare January 30, 2020 19:30
@nate-chandler
Copy link
Contributor Author

@swift-ci please test linux platform

@swift-ci
Copy link
Contributor

Build failed
Swift Test Linux Platform
Git Sha - 9bcd84275668fad4c0899d9e48a896412a359f91

@nate-chandler nate-chandler force-pushed the generic-metadata-prespecialization-components/default-on branch from dc77f0a to 9a03cd7 Compare January 31, 2020 00:20
@nate-chandler
Copy link
Contributor Author

@swift-ci please test macos platform

@nate-chandler
Copy link
Contributor Author

@swift-ci please test linux platform

@swift-ci
Copy link
Contributor

swift-ci commented Feb 4, 2020

Build failed
Swift Test Linux Platform
Git Sha - fbd509460f60959656bc7ff9d240cfa1fdd28072

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.
@nate-chandler nate-chandler force-pushed the generic-metadata-prespecialization-components/default-on branch from 8c79ba5 to fca1669 Compare February 4, 2020 19:59
@nate-chandler
Copy link
Contributor Author

@swift-ci please test

@swift-ci
Copy link
Contributor

swift-ci commented Feb 4, 2020

Build failed
Swift Test Linux Platform
Git Sha - 8c79ba5d979110a5e87f2034a87dbb019dbda7e7

@swift-ci
Copy link
Contributor

swift-ci commented Feb 4, 2020

Build failed
Swift Test OS X Platform
Git Sha - 8c79ba5d979110a5e87f2034a87dbb019dbda7e7

@nate-chandler
Copy link
Contributor Author

@swift-ci please test windows platform

@nate-chandler
Copy link
Contributor Author

@swift-ci please benchmark

@swift-ci
Copy link
Contributor

swift-ci commented Feb 5, 2020

Performance: -O

Regression OLD NEW DELTA RATIO
PrefixAnySeqCntRange 33 37 +12.1% 0.89x (?)
 
Improvement OLD NEW DELTA RATIO
ObjectiveCBridgeFromNSSetAnyObjectToString 72500 65000 -10.3% 1.12x (?)

Code size: -O

Performance: -Osize

Code size: -Osize

Performance: -Onone

Code size: -swiftlibs

How to read the data The 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
regressions before you merge the PR.

Noise: Sometimes the performance results (not code size!) contain false
alarms. Unexpected regressions which are marked with '(?)' are probably noise.
If you see regressions which you cannot explain you can try to run the
benchmarks again. If regressions still show up, please consult with the
performance team (@eeckstein).

Hardware Overview
  Model Name: Mac Pro
  Model Identifier: MacPro6,1
  Processor Name: 8-Core Intel Xeon E5
  Processor Speed: 3 GHz
  Number of Processors: 1
  Total Number of Cores: 8
  L2 Cache (per Core): 256 KB
  L3 Cache: 25 MB
  Memory: 64 GB

@nate-chandler
Copy link
Contributor Author

@swift-ci please clean test windows platform

1 similar comment
@shahmishal
Copy link
Member

@swift-ci please clean test windows platform

@nate-chandler
Copy link
Contributor Author

@swift-ci please test

@nate-chandler
Copy link
Contributor Author

@swift-ci please test windows platform

@swift-ci
Copy link
Contributor

swift-ci commented Feb 6, 2020

Build failed
Swift Test Linux Platform
Git Sha - fca1669d154ade308a0efdc964867faa146f3bec

@swift-ci
Copy link
Contributor

swift-ci commented Feb 6, 2020

Build failed
Swift Test OS X Platform
Git Sha - fca1669d154ade308a0efdc964867faa146f3bec

@nate-chandler nate-chandler force-pushed the generic-metadata-prespecialization-components/default-on branch from 536571d to 07fa6a6 Compare February 6, 2020 01:01
@nate-chandler
Copy link
Contributor Author

@swift-ci please test

@nate-chandler
Copy link
Contributor Author

@swift-ci please test windows platform

@swift-ci
Copy link
Contributor

swift-ci commented Feb 6, 2020

Build failed
Swift Test Linux Platform
Git Sha - 536571d583044ab25755d4f5424059fe3853c210

@swift-ci
Copy link
Contributor

swift-ci commented Feb 6, 2020

Build failed
Swift Test OS X Platform
Git Sha - 536571d583044ab25755d4f5424059fe3853c210

@nate-chandler nate-chandler force-pushed the generic-metadata-prespecialization-components/default-on branch from 07fa6a6 to 99ec30a Compare February 6, 2020 01:19
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.
@nate-chandler nate-chandler force-pushed the generic-metadata-prespecialization-components/default-on branch from 99ec30a to ae1f41e Compare February 6, 2020 02:08
@nate-chandler
Copy link
Contributor Author

@swift-ci please test

@nate-chandler
Copy link
Contributor Author

@swift-ci please test windows platform

@swift-ci
Copy link
Contributor

swift-ci commented Feb 6, 2020

Build failed
Swift Test Linux Platform
Git Sha - 07fa6a67208ce09f84b4cfd19141d87e071b42a1

@swift-ci
Copy link
Contributor

swift-ci commented Feb 6, 2020

Build failed
Swift Test OS X Platform
Git Sha - 07fa6a67208ce09f84b4cfd19141d87e071b42a1

@nate-chandler nate-chandler merged commit 4a97914 into swiftlang:master Feb 6, 2020
@nate-chandler nate-chandler deleted the generic-metadata-prespecialization-components/default-on branch February 6, 2020 17:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants