Skip to content

[prespecialized metadata] Allow existentials as generic arguments. #31252

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

nate-chandler
Copy link
Contributor

@nate-chandler nate-chandler commented Apr 24, 2020

Previously, metadata prespecialization was not done when generic arguments were existential types. Here, that restriction is lifted.

@nate-chandler nate-chandler marked this pull request as draft April 24, 2020 00:00
@nate-chandler
Copy link
Contributor Author

@swift-ci please test source compatibility

@nate-chandler
Copy link
Contributor Author

@swift-ci please test os x platform

@nate-chandler
Copy link
Contributor Author

@swift-ci please benchmark

@nate-chandler
Copy link
Contributor Author

@swift-ci please test source compatibility

@swift-ci
Copy link
Contributor

Build failed
Swift Test OS X Platform
Git Sha - bd7cd4ed05eb92cb595d6ee14eeb5e1330145cf2

@nate-chandler
Copy link
Contributor Author

IRGen test failures are expected.

@swift-ci
Copy link
Contributor

Performance: -O

Regression OLD NEW DELTA RATIO
String.replaceSubrange.ArrChar 51 3008 +5797.9% 0.02x
String.replaceSubrange.ArrChar.Small 70 320 +357.1% 0.22x
RemoveWhereFilterString 407 1562 +283.8% 0.26x
Join 220 761 +245.9% 0.29x
StringEdits 86300 159200 +84.5% 0.54x
Data.init.Sequence.64kB.Count.I 39 58 +48.7% 0.67x
Data.init.Sequence.64kB.Count 39 58 +48.7% 0.67x
Data.init.Sequence.2047B.Count.I 74 103 +39.2% 0.72x
Data.init.Sequence.2049B.Count.I 74 103 +39.2% 0.72x
UTF8Decode_InitDecoding_ascii_as_ascii 310 419 +35.2% 0.74x
Data.init.Sequence.809B.Count 75 97 +29.3% 0.77x
Data.init.Sequence.809B.Count.I 75 97 +29.3% 0.77x
Data.init.Sequence.511B.Count.I 93 112 +20.4% 0.83x
Data.init.Sequence.513B.Count.I 94 113 +20.2% 0.83x
StringRemoveDupes 367 430 +17.2% 0.85x
String.data.Medium 112 121 +8.0% 0.93x (?)
String.data.LargeUnicode 117 126 +7.7% 0.93x (?)
 
Improvement OLD NEW DELTA RATIO
DictionaryBridgeToObjC_Access 933 708 -24.1% 1.32x (?)
SuffixAnySequenceLazy 4136 3149 -23.9% 1.31x
DropLastAnySequenceLazy 3905 2988 -23.5% 1.31x
Breadcrumbs.MutatedUTF16ToIdx.ASCII 5 4 -20.0% 1.25x
ObjectiveCBridgeStubFromNSDateRef 5670 4750 -16.2% 1.19x (?)
FlattenListLoop 5647 4774 -15.5% 1.18x
ArrayAppendLazyMap 7120 6070 -14.7% 1.17x (?)
RemoveWhereSwapInts 69 59 -14.5% 1.17x
Array2D 8112 6944 -14.4% 1.17x
MapReduce 400 343 -14.2% 1.17x
ArrayPlusEqualFiveElementCollection 9065 7807 -13.9% 1.16x (?)
RandomShuffleLCG2 816 704 -13.7% 1.16x
MapReduceAnyCollection 426 368 -13.6% 1.16x
RemoveWhereMoveInts 38 33 -13.2% 1.15x
LazilyFilteredArrayContains 41400 36200 -12.6% 1.14x
MapReduceClass2 42 37 -11.9% 1.14x
DropFirstAnyCollectionLazy 96034 85396 -11.1% 1.12x (?)
ArraySetElement 515 458 -11.1% 1.12x
PrefixAnyCollectionLazy 97632 86971 -10.9% 1.12x (?)
String.replaceSubrange.RepChar.Small 434 388 -10.6% 1.12x (?)
DataCreateSmallArray 3850 3450 -10.4% 1.12x
PrefixWhileSequence 347 311 -10.4% 1.12x (?)
PrefixWhileAnySeqCRangeIter 347 311 -10.4% 1.12x (?)
PrefixWhileAnySeqCntRange 347 311 -10.4% 1.12x
SuffixAnyCollectionLazy 31775 28612 -10.0% 1.11x (?)
RemoveWhereFilterInts 51 46 -9.8% 1.11x (?)
DropLastSequenceLazy 584 527 -9.8% 1.11x
DropLastSequence 583 528 -9.4% 1.10x
DropLastAnyCollectionLazy 31619 28715 -9.2% 1.10x (?)
SuffixSequence 509 463 -9.0% 1.10x
SuffixSequenceLazy 509 463 -9.0% 1.10x
MapReduceString 67 61 -9.0% 1.10x
MapReduceSequence 654 596 -8.9% 1.10x (?)
FlattenListFlatMap 10008 9185 -8.2% 1.09x (?)
ObjectiveCBridgeStubFromNSDate 6980 6430 -7.9% 1.09x (?)
ArrayInClass 1655 1540 -6.9% 1.07x (?)
DistinctClassFieldAccesses 331 308 -6.9% 1.07x (?)
RangeAssignment 364 339 -6.9% 1.07x (?)

Code size: -O

Regression OLD NEW DELTA RATIO
Array2D.o 2984 4136 +38.6% 0.72x
DictionaryBridgeToObjC.o 5599 7365 +31.5% 0.76x
ArrayOfGenericPOD.o 5555 6855 +23.4% 0.81x
CString.o 7015 8471 +20.8% 0.83x
DiffingMyers.o 6453 7313 +13.3% 0.88x
ReversedCollections.o 9286 10482 +12.9% 0.89x
RandomTree.o 12375 13455 +8.7% 0.92x
FloatingPointParsing.o 17521 18857 +7.6% 0.93x
RangeOverlaps.o 6136 6485 +5.7% 0.95x
StringReplaceSubrange.o 5739 6062 +5.6% 0.95x
ObjectiveCBridging.o 64911 68432 +5.4% 0.95x
StringEnum.o 13359 14019 +4.9% 0.95x
DriverUtils.o 137593 143537 +4.3% 0.96x
UTF8Decode.o 25283 26229 +3.7% 0.96x
BucketSort.o 8499 8795 +3.5% 0.97x
StringComparison.o 39992 41260 +3.2% 0.97x
DictionaryCompactMapValues.o 13333 13737 +3.0% 0.97x
Prims.o 12875 13248 +2.9% 0.97x
PrimsSplit.o 12927 13300 +2.9% 0.97x
ArrayAppend.o 26063 26721 +2.5% 0.98x
SequenceAlgos.o 22167 22677 +2.3% 0.98x
ObjectiveCNoBridgingStubs.o 9260 9433 +1.9% 0.98x
DataBenchmarks.o 70021 71202 +1.7% 0.98x
Substring.o 17553 17778 +1.3% 0.99x
NibbleSort.o 13304 13464 +1.2% 0.99x
DictOfArraysToArrayOfDicts.o 22528 22768 +1.1% 0.99x
 
Improvement OLD NEW DELTA RATIO
Join.o 1615 1514 -6.3% 1.07x
StringRemoveDupes.o 5573 5457 -2.1% 1.02x
SetTests.o 135245 132529 -2.0% 1.02x
ArraySubscript.o 2858 2806 -1.8% 1.02x
Codable.o 31263 30711 -1.8% 1.02x
Diffing.o 8763 8629 -1.5% 1.02x
AngryPhonebook.o 10038 9890 -1.5% 1.01x
StringEdits.o 10985 10835 -1.4% 1.01x
SuperChars.o 1609 1589 -1.2% 1.01x
Chars.o 1750 1730 -1.1% 1.01x
Combos.o 5070 5018 -1.0% 1.01x

Performance: -Osize

Regression OLD NEW DELTA RATIO
String.replaceSubrange.ArrChar 51 2984 +5750.9% 0.02x
String.replaceSubrange.ArrChar.Small 70 320 +357.1% 0.22x
RemoveWhereFilterString 412 1568 +280.6% 0.26x
Join 220 764 +247.3% 0.29x
StringEdits 88200 163100 +84.9% 0.54x
UTF8Decode_InitDecoding_ascii_as_ascii 297 421 +41.8% 0.71x
StringRemoveDupes 407 475 +16.7% 0.86x
DataAccessBytesMedium 91 102 +12.1% 0.89x
DropWhileAnySeqCntRange 163 180 +10.4% 0.91x
DropWhileAnySeqCRangeIter 180 198 +10.0% 0.91x
DataCountSmall 31 34 +9.7% 0.91x (?)
ObjectiveCBridgeStubToNSStringRef 113 122 +8.0% 0.93x (?)
 
Improvement OLD NEW DELTA RATIO
DropLastAnySequenceLazy 4115 3243 -21.2% 1.27x
SuffixAnySequenceLazy 4346 3507 -19.3% 1.24x
DropFirstAnySequence 4657 3797 -18.5% 1.23x
PrefixAnySequence 4128 3371 -18.3% 1.22x
DictionaryBridgeToObjC_Access 873 723 -17.2% 1.21x (?)
RemoveWhereFilterInts 50 42 -16.0% 1.19x
ArrayAppendLazyMap 7900 6990 -11.5% 1.13x
String.replaceSubrange.RepChar.Small 432 387 -10.4% 1.12x (?)
DropLastAnyCollectionLazy 32220 29009 -10.0% 1.11x (?)
SuffixAnyCollectionLazy 31922 28939 -9.3% 1.10x (?)
StringBuilderWithLongSubstring 1910 1740 -8.9% 1.10x (?)
ArrayLiteral2 177 162 -8.5% 1.09x
DropFirstAnyCollectionLazy 95561 87511 -8.4% 1.09x (?)
PrefixAnySeqCntRange 49829 45761 -8.2% 1.09x (?)
RemoveWhereMoveInts 37 34 -8.1% 1.09x (?)
ReversedDictionary2 342 315 -7.9% 1.09x
RandomShuffleLCG2 816 752 -7.8% 1.09x
DistinctClassFieldAccesses 334 308 -7.8% 1.08x (?)
ArrayPlusEqualFiveElementCollection 8325 7696 -7.6% 1.08x (?)
DictionaryOfAnyHashableStrings_insert 5474 5068 -7.4% 1.08x (?)
PrefixAnyCollectionLazy 95075 88286 -7.1% 1.08x (?)
ArrayInClass 1655 1540 -6.9% 1.07x (?)
MapReduceAnyCollection 433 404 -6.7% 1.07x
MapReduce 435 406 -6.7% 1.07x (?)

Code size: -Osize

Regression OLD NEW DELTA RATIO
Array2D.o 2724 3872 +42.1% 0.70x
DictionaryBridgeToObjC.o 4541 6275 +38.2% 0.72x
ArrayOfGenericPOD.o 5611 6959 +24.0% 0.81x
CString.o 6687 8143 +21.8% 0.82x
ReversedCollections.o 8793 9959 +13.3% 0.88x
DiffingMyers.o 6677 7505 +12.4% 0.89x
RandomTree.o 12103 13183 +8.9% 0.92x
FloatingPointParsing.o 17049 18337 +7.6% 0.93x
StringReplaceSubrange.o 5313 5626 +5.9% 0.94x
RangeOverlaps.o 5854 6197 +5.9% 0.94x
ObjectiveCBridging.o 60943 64400 +5.7% 0.95x
StringEnum.o 13429 14073 +4.8% 0.95x
DriverUtils.o 124731 130475 +4.6% 0.96x
UTF8Decode.o 24402 25476 +4.4% 0.96x
StringComparison.o 36120 37500 +3.8% 0.96x
BucketSort.o 8331 8627 +3.6% 0.97x
Prims.o 12219 12624 +3.3% 0.97x
PrimsSplit.o 12271 12676 +3.3% 0.97x
DictionaryCompactMapValues.o 12795 13201 +3.2% 0.97x
ArrayAppend.o 23159 23833 +2.9% 0.97x
SequenceAlgos.o 23463 23973 +2.2% 0.98x
DataBenchmarks.o 57542 58707 +2.0% 0.98x
ObjectiveCNoBridgingStubs.o 8724 8894 +1.9% 0.98x
Substring.o 16577 16818 +1.5% 0.99x
NibbleSort.o 13000 13160 +1.2% 0.99x
NSStringConversion.o 12588 12726 +1.1% 0.99x
 
Improvement OLD NEW DELTA RATIO
Join.o 1655 1570 -5.1% 1.05x
StringRemoveDupes.o 3895 3771 -3.2% 1.03x
ArraySubscript.o 2832 2780 -1.8% 1.02x
Codable.o 31463 31007 -1.4% 1.01x
Diffing.o 8611 8491 -1.4% 1.01x
AngryPhonebook.o 9497 9365 -1.4% 1.01x
StringEdits.o 10633 10497 -1.3% 1.01x
SetTests.o 118797 117297 -1.3% 1.01x
SuperChars.o 1665 1645 -1.2% 1.01x
Chars.o 1806 1786 -1.1% 1.01x

Performance: -Onone

Regression OLD NEW DELTA RATIO
String.replaceSubrange.ArrChar 56 3142 +5510.6% 0.02x
String.replaceSubrange.ArrChar.Small 73 334 +357.5% 0.22x
Join 179 721 +302.8% 0.25x
StringEdits 187000 278600 +49.0% 0.67x
UTF8Decode_InitDecoding_ascii_as_ascii 314 455 +44.9% 0.69x (?)
SetSymmetricDifferenceInt100 729 1012 +38.8% 0.72x
SetSymmetricDifferenceInt50 787 1026 +30.4% 0.77x
SetSymmetricDifferenceInt25 831 1057 +27.2% 0.79x
SetSymmetricDifferenceInt0 1210 1413 +16.8% 0.86x (?)
SetExclusiveOr 12110 14140 +16.8% 0.86x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 9300 10450 +12.4% 0.89x (?)
PointerArithmetics 77100 85700 +11.2% 0.90x
ArrayOfPOD 1033 1112 +7.6% 0.93x (?)
 
Improvement OLD NEW DELTA RATIO
DropWhileSequence 13740 8025 -41.6% 1.71x
DropFirstSequenceLazy 10221 6061 -40.7% 1.69x
SequenceAlgosUnfoldSequence 6500 3860 -40.6% 1.68x
DropFirstSequence 10217 6078 -40.5% 1.68x
DropWhileAnySequence 14548 8800 -39.5% 1.65x
DropWhileSequenceLazy 12847 7840 -39.0% 1.64x
PrefixSequenceLazy 8177 5010 -38.7% 1.63x
DropFirstAnySequenceLazy 10577 6496 -38.6% 1.63x
PrefixSequence 8219 5054 -38.5% 1.63x
DropWhileAnySequenceLazy 13211 8240 -37.6% 1.60x
PrefixAnySequenceLazy 8498 5359 -36.9% 1.59x
DropFirstAnySequence 11259 7117 -36.8% 1.58x
PrefixWhileSequenceLazy 11372 7378 -35.1% 1.54x
PrefixWhileAnySequenceLazy 11604 7559 -34.9% 1.54x
MapReduceLazySequence 19672 12837 -34.7% 1.53x
PrefixAnySequence 9101 5979 -34.3% 1.52x
SuffixSequenceLazy 16516 12351 -25.2% 1.34x
SuffixSequence 16536 12460 -24.6% 1.33x
SuffixAnySequence 16536 12493 -24.4% 1.32x
SuffixAnySequenceLazy 16815 12787 -24.0% 1.32x
Dictionary3 651 496 -23.8% 1.31x (?)
Set.isStrictSubset.Empty.Int 592 453 -23.5% 1.31x
DropLastSequenceLazy 17857 13712 -23.2% 1.30x
DropLastAnySequence 17841 13816 -22.6% 1.29x
DropLastSequence 17843 13825 -22.5% 1.29x
DropLastAnySequenceLazy 18187 14276 -21.5% 1.27x
Set.isSubset.Int.Empty 362 285 -21.3% 1.27x
DictionaryRemove 15240 12030 -21.1% 1.27x (?)
Set.isDisjoint.Seq.Empty.Int 392 312 -20.4% 1.26x
Set.isStrictSubset.Int.Empty 372 300 -19.4% 1.24x
DictionaryBridgeToObjC_Access 1075 909 -15.4% 1.18x (?)
Set.isDisjoint.Empty.Int 538 459 -14.7% 1.17x
Set.subtracting.Seq.Empty.Int 631 544 -13.8% 1.16x
Dictionary2 1320 1140 -13.6% 1.16x
Set.isSuperset.Seq.Empty.Int 609 526 -13.6% 1.16x
Set.subtracting.Empty.Int 135 117 -13.3% 1.15x (?)
Set.isSubset.Empty.Int 461 400 -13.2% 1.15x (?)
FatCompactMap 432220 375140 -13.2% 1.15x (?)
Set.isStrictSuperset.Seq.Empty.Int 1418 1234 -13.0% 1.15x (?)
Dict.CopyKeyValue.24k 6043 5298 -12.3% 1.14x
PrefixWhileAnySequence 26099 22897 -12.3% 1.14x (?)
Set.isStrictSubset.Int0 626 550 -12.1% 1.14x (?)
Dict.CopyKeyValue.20k 5173 4549 -12.1% 1.14x
PrefixWhileSequence 26060 22933 -12.0% 1.14x
Set.subtracting.Int.Empty 176 155 -11.9% 1.14x (?)
SetUnionInt100 404 356 -11.9% 1.13x (?)
StringRemoveDupes 1033 911 -11.8% 1.13x
Dictionary4 1062 937 -11.8% 1.13x (?)
Set.isSubset.Seq.Int.Empty 1225 1081 -11.8% 1.13x (?)
MapReduceSequence 41816 36913 -11.7% 1.13x (?)
Dict.CopyKeyValue.16k 4356 3856 -11.5% 1.13x (?)
Data.init.Sequence.64kB.Count.RE.I 26970 23881 -11.5% 1.13x (?)
Data.append.Sequence.64kB.Count.RE.I 27016 23934 -11.4% 1.13x (?)
Data.append.Sequence.64kB.Count0.RE 26811 23767 -11.4% 1.13x (?)
Set.isDisjoint.Int.Empty 724 642 -11.3% 1.13x
Data.append.Sequence.64kB.Count0.RE.I 26812 23819 -11.2% 1.13x (?)
Set.isStrictSubset.Seq.Int.Empty 1208 1076 -10.9% 1.12x (?)
Dict.CopyKeyValue.28k 8084 7204 -10.9% 1.12x
ArrayAppendRepeatCol 330700 294720 -10.9% 1.12x (?)
Data.append.Sequence.809B.Count0.RE 33216 29624 -10.8% 1.12x (?)
Data.init.Sequence.809B.Count0.RE 33365 29783 -10.7% 1.12x (?)
Data.init.Sequence.64kB.Count0.RE.I 26806 23950 -10.7% 1.12x (?)
Histogram 8391 7497 -10.7% 1.12x
Data.init.Sequence.64kB.Count0.RE 26808 23960 -10.6% 1.12x (?)
Data.append.Sequence.809B.Count0.RE.I 33171 29652 -10.6% 1.12x (?)
Data.init.Sequence.809B.Count0.RE.I 33335 29803 -10.6% 1.12x (?)
Dictionary4Legacy 1342 1201 -10.5% 1.12x (?)
SetIsSubsetInt0 610 546 -10.5% 1.12x (?)
Data.init.Sequence.809B.Count.RE.I 33400 29906 -10.5% 1.12x (?)
DataAppendSequence 3354400 3006200 -10.4% 1.12x (?)
Data.append.Sequence.809B.Count.RE 33489 30022 -10.4% 1.12x (?)
Data.append.Sequence.64kB.Count.RE 26869 24102 -10.3% 1.11x (?)
Data.init.Sequence.809B.Count.RE 33422 29984 -10.3% 1.11x (?)
DictionaryOfAnyHashableStrings_insert 7938 7126 -10.2% 1.11x (?)
Memset 14009 12584 -10.2% 1.11x
Data.append.Sequence.809B.Count.RE.I 33450 30070 -10.1% 1.11x (?)
Data.init.Sequence.64kB.Count.RE 26715 24037 -10.0% 1.11x (?)
Set.isDisjoint.Seq.Int.Empty 683 615 -10.0% 1.11x (?)
XorLoop 8601 7749 -9.9% 1.11x
SequenceAlgosList 8480 7640 -9.9% 1.11x
ArrayOfGenericPOD2 1158 1044 -9.8% 1.11x (?)
DictionarySwap 4796 4324 -9.8% 1.11x (?)
String.replaceSubrange.RepChar.Small 442 399 -9.7% 1.11x (?)
DropWhileAnySeqCRangeIter 69516 62762 -9.7% 1.11x (?)
Set.isDisjoint.Int100 939 849 -9.6% 1.11x (?)
Prims.NonStrongRef.UnmanagedUGR 2003 1812 -9.5% 1.11x (?)
Dictionary4OfObjects 1512 1374 -9.1% 1.10x (?)
TwoSum 3588 3264 -9.0% 1.10x (?)
SetUnionInt50 574 523 -8.9% 1.10x (?)
Sim2DArray 10495 9563 -8.9% 1.10x
Set.subtracting.Seq.Int.Empty 922 841 -8.8% 1.10x
StringWordBuilderReservingCapacity 2760 2520 -8.7% 1.10x (?)
StringWordBuilder 2820 2580 -8.5% 1.09x (?)
SetUnionInt25 644 590 -8.4% 1.09x (?)
DropLastAnyCollection 16360 14992 -8.4% 1.09x (?)
Prims.NonStrongRef.Unmanaged 1761 1618 -8.1% 1.09x (?)
Prims.NonStrongRef.Unmanaged.Closure 1782 1645 -7.7% 1.08x (?)
RangeOverlapsRange 26610 24650 -7.4% 1.08x (?)
ArrayPlusEqualFiveElementCollection 150775 140008 -7.1% 1.08x (?)
Array2D 161664 150160 -7.1% 1.08x (?)
ArrayPlusEqualSingleElementCollection 188329 175122 -7.0% 1.08x (?)
DropWhileAnySeqCntRangeLazy 66024 61465 -6.9% 1.07x (?)
DictionaryOfAnyHashableStrings_lookup 5256 4896 -6.8% 1.07x (?)
RandomTree.insert.Unmanaged.fast 732 682 -6.8% 1.07x (?)
Set.isDisjoint.Int25 1281 1195 -6.7% 1.07x (?)
DictionaryGroup 9683 9033 -6.7% 1.07x (?)
DropWhileCountableRangeLazy 64784 60440 -6.7% 1.07x (?)
Set.isDisjoint.Int50 1245 1162 -6.7% 1.07x (?)
PrefixWhileAnyCollectionLazy 50648 47309 -6.6% 1.07x (?)

Code size: -swiftlibs

Regression OLD NEW DELTA RATIO
libswiftSwiftReflectionTest.dylib 24576 28672 +16.7% 0.86x
libswiftStdlibUnittest.dylib 327680 331776 +1.2% 0.99x
 
Improvement OLD NEW DELTA RATIO
libswiftCompression.dylib 45056 40960 -9.1% 1.10x
libswiftAccelerate.dylib 258048 237568 -7.9% 1.09x
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: 12-Core Intel Xeon E5
  Processor Speed: 2.7 GHz
  Number of Processors: 1
  Total Number of Cores: 12
  L2 Cache (per Core): 256 KB
  L3 Cache: 30 MB
  Memory: 64 GB

@nate-chandler
Copy link
Contributor Author

@swift-ci please test source compatibility

2 similar comments
@nate-chandler
Copy link
Contributor Author

@swift-ci please test source compatibility

@nate-chandler
Copy link
Contributor Author

@swift-ci please test source compatibility

@nate-chandler nate-chandler force-pushed the generic-metadata-prespecialization-components/existential-arguments branch from bd7cd4e to a9491b7 Compare April 28, 2020 17:13
@nate-chandler
Copy link
Contributor Author

@swift-ci please test source compatibility

1 similar comment
@nate-chandler
Copy link
Contributor Author

@swift-ci please test source compatibility

@nate-chandler nate-chandler force-pushed the generic-metadata-prespecialization-components/existential-arguments branch from a9491b7 to ccf6209 Compare May 27, 2020 21:51
@nate-chandler nate-chandler changed the title DNM: [prespecialized metadata] Allow existentials as generic arguments. [prespecialized metadata] Allow existentials as generic arguments. May 27, 2020
@nate-chandler
Copy link
Contributor Author

@swift-ci please test

@nate-chandler
Copy link
Contributor Author

@swift-ci please benchmark

@nate-chandler nate-chandler marked this pull request as ready for review May 27, 2020 21:53
@swift-ci
Copy link
Contributor

Performance: -O

Regression OLD NEW DELTA RATIO
FlattenListFlatMap 4148 5894 +42.1% 0.70x (?)
 
Improvement OLD NEW DELTA RATIO
EqualSubstringSubstring 30 22 -26.7% 1.36x
LessSubstringSubstring 30 22 -26.7% 1.36x
EqualSubstringSubstringGenericEquatable 30 22 -26.7% 1.36x
EqualSubstringString 30 22 -26.7% 1.36x
LessSubstringSubstringGenericComparable 30 22 -26.7% 1.36x
EqualStringSubstring 30 23 -23.3% 1.30x
UTF8Decode_InitDecoding 164 142 -13.4% 1.15x (?)
UTF8Decode_InitFromCustom_contiguous 164 143 -12.8% 1.15x (?)
StringComparison_longSharedPrefix 358 321 -10.3% 1.12x (?)
AngryPhonebook.Strasse 151 137 -9.3% 1.10x (?)
AngryPhonebook.Armenian 171 156 -8.8% 1.10x (?)
AngryPhonebook.Cyrillic 183 168 -8.2% 1.09x (?)

Code size: -O

Performance: -Osize

Regression OLD NEW DELTA RATIO
FlattenListFlatMap 3135 4215 +34.4% 0.74x (?)
StringHasPrefixAscii 1170 1320 +12.8% 0.89x
 
Improvement OLD NEW DELTA RATIO
EqualSubstringSubstring 30 22 -26.7% 1.36x
EqualSubstringSubstringGenericEquatable 30 22 -26.7% 1.36x
EqualSubstringString 30 22 -26.7% 1.36x
LessSubstringSubstring 30 23 -23.3% 1.30x
EqualStringSubstring 30 23 -23.3% 1.30x
LessSubstringSubstringGenericComparable 30 23 -23.3% 1.30x
UTF8Decode_InitDecoding 164 143 -12.8% 1.15x (?)
UTF8Decode_InitFromCustom_contiguous 165 149 -9.7% 1.11x
StringComparison_longSharedPrefix 360 326 -9.4% 1.10x (?)
AngryPhonebook.Strasse 151 137 -9.3% 1.10x (?)
AngryPhonebook.Armenian 171 156 -8.8% 1.10x (?)
AngryPhonebook.Cyrillic 183 168 -8.2% 1.09x (?)

Code size: -Osize

Performance: -Onone

Improvement OLD NEW DELTA RATIO
LessSubstringSubstring 35 27 -22.9% 1.30x
EqualSubstringSubstringGenericEquatable 34 27 -20.6% 1.26x
LessSubstringSubstringGenericComparable 34 27 -20.6% 1.26x
EqualStringSubstring 35 28 -20.0% 1.25x (?)
EqualSubstringSubstring 34 28 -17.6% 1.21x
EqualSubstringString 34 28 -17.6% 1.21x
ArrayOfPOD 739 643 -13.0% 1.15x (?)
UTF8Decode_InitDecoding 170 148 -12.9% 1.15x (?)
UTF8Decode_InitFromCustom_contiguous 173 154 -11.0% 1.12x (?)
AngryPhonebook.Strasse 151 136 -9.9% 1.11x (?)
AngryPhonebook.Armenian 171 156 -8.8% 1.10x (?)
AngryPhonebook.Cyrillic 183 167 -8.7% 1.10x (?)
ArrayOfGenericPOD2 605 553 -8.6% 1.09x (?)

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 mini
  Model Identifier: Macmini8,1
  Processor Name: 6-Core Intel Core i7
  Processor Speed: 3.2 GHz
  Number of Processors: 1
  Total Number of Cores: 6
  L2 Cache (per Core): 256 KB
  L3 Cache: 12 MB
  Memory: 64 GB

@swift-ci
Copy link
Contributor

Build failed
Swift Test Linux Platform
Git Sha - ccf6209

@nate-chandler
Copy link
Contributor Author

@swift-ci please clean test linux platform

@nate-chandler nate-chandler merged commit f95de76 into swiftlang:master May 28, 2020
@nate-chandler nate-chandler deleted the generic-metadata-prespecialization-components/existential-arguments branch May 28, 2020 02:26
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.

2 participants