Skip to content

Replace materializeForSet with the modify coroutine #18840

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

Merged
merged 3 commits into from
Aug 28, 2018

Conversation

rjmccall
Copy link
Contributor

@rjmccall rjmccall commented Aug 20, 2018

Most of this patch is just removing special cases for materializeForSet or other fairly mechanical replacements. Unfortunately, the rest is still a fairly big change, and not one that can be easily split apart because of the quite reasonable reliance on metaprogramming throughout the compiler. And, of course, there are a bunch of test updates that have to be sync'ed with the actual change to code-generation.

This is SR-7134.

@rjmccall
Copy link
Contributor Author

@swift-ci Please smoke test OS X.

@rjmccall rjmccall force-pushed the dematerializeForSet branch from c08b927 to 70aa1bc Compare August 21, 2018 07:46
@rjmccall
Copy link
Contributor Author

@swift-ci Please smoke test.

@rjmccall rjmccall force-pushed the dematerializeForSet branch from 70aa1bc to 96bc6dd Compare August 21, 2018 21:34
@rjmccall
Copy link
Contributor Author

@swift-ci Please smoke test.

@rjmccall rjmccall force-pushed the dematerializeForSet branch from 96bc6dd to abe0d30 Compare August 23, 2018 02:41
@rjmccall
Copy link
Contributor Author

@swift-ci Please smoke test.

@rjmccall rjmccall force-pushed the dematerializeForSet branch from abe0d30 to c389f8b Compare August 24, 2018 04:09
@rjmccall
Copy link
Contributor Author

@swift-ci Please test.

@swift-ci
Copy link
Contributor

Build failed
Swift Test OS X Platform
Git Sha - c389f8bcccc5112baaccbaec5b1ced137d28698c

@swift-ci
Copy link
Contributor

Build failed
Swift Test Linux Platform
Git Sha - c389f8bcccc5112baaccbaec5b1ced137d28698c

@rjmccall rjmccall force-pushed the dematerializeForSet branch from 46ae169 to de5e875 Compare August 24, 2018 06:06
@rjmccall
Copy link
Contributor Author

@swift-ci Please test.

@swift-ci
Copy link
Contributor

Build failed
Swift Test OS X Platform
Git Sha - c389f8bcccc5112baaccbaec5b1ced137d28698c

@swift-ci
Copy link
Contributor

Build failed
Swift Test Linux Platform
Git Sha - c389f8bcccc5112baaccbaec5b1ced137d28698c

@rjmccall
Copy link
Contributor Author

Preliminary code size numbers look good: https://gist.github.com/rjmccall/385ca49b3c5dc9ec01ba3af05fcd6e67

@rjmccall rjmccall force-pushed the dematerializeForSet branch 2 times, most recently from 753216f to 411fc9f Compare August 25, 2018 00:30
@rjmccall
Copy link
Contributor Author

@swift-ci Please test.

@swift-ci
Copy link
Contributor

Build failed
Swift Test OS X Platform
Git Sha - de5e87524c4f91e661a8768ddf8c1f049f3f35f6

@swift-ci
Copy link
Contributor

Build failed
Swift Test Linux Platform
Git Sha - de5e87524c4f91e661a8768ddf8c1f049f3f35f6

@rjmccall
Copy link
Contributor Author

@swift-ci Please test source compatibility.

@rjmccall
Copy link
Contributor Author

@swift-ci Please test performance.

@rjmccall
Copy link
Contributor Author

@swift-ci Please benchmark.

@rjmccall
Copy link
Contributor Author

@swift-ci please smoke benchmark staging

@swift-ci
Copy link
Contributor

!!! Couldn't read commit file !!!

@rjmccall rjmccall changed the title [WIP] Replace materializeForSet with the modify coroutine Replace materializeForSet with the modify coroutine Aug 25, 2018
@rjmccall
Copy link
Contributor Author

Four failures: the Linux build failure and compatibility-suite failures in Chatto, IBAnimatable, and ProcedureKit. The Chatto regression is hopefully being fixed by @slavapestov's #18978, and ProcedureKit is fixed by #18981. So that's progress.

@swift-ci
Copy link
Contributor

Build comment file:

Optimized (O)

Regression (9)
TEST OLD NEW DELTA SPEEDUP
IterateData 1397 1575 +12.7% 0.89x
ArrayAppendLatin1Substring 139634 151223 +8.3% 0.92x
ArrayAppendUTF16Substring 138426 148862 +7.5% 0.93x
CStringLongAscii 3282 3528 +7.5% 0.93x
StringWordBuilder 2198 2362 +7.5% 0.93x (?)
StringComparison_abnormal 770 826 +7.3% 0.93x (?)
RandomDoubleLCG 2032 2175 +7.0% 0.93x
DictionaryBridgeToObjC_Bridge 18 19 +5.6% 0.95x
StringWithCString2 1692 1785 +5.5% 0.95x
Improvement (7)
TEST OLD NEW DELTA SPEEDUP
StringUTF16SubstringBuilder 5828 5388 -7.5% 1.08x (?)
CharacterPropertiesPrecomputed 965 897 -7.0% 1.08x
FloatingPointPrinting_Float_description_uniform 6022 5627 -6.6% 1.07x
LazilyFilteredArrayContains 35570 33474 -5.9% 1.06x
CharIteration_utf16_unicodeScalars_Backwards 18468 17452 -5.5% 1.06x
StringHashing_abnormal 1424 1351 -5.1% 1.05x (?)
CharacterPropertiesStashed 1700 1618 -4.8% 1.05x
No Changes (458)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 3790 3762 -0.7% 1.01x (?)
AnyHashableWithAClass 90974 88893 -2.3% 1.02x (?)
Array2D 44509 44357 -0.3% 1.00x (?)
ArrayAppend 791 793 +0.3% 1.00x (?)
ArrayAppendArrayOfInt 790 789 -0.1% 1.00x (?)
ArrayAppendAscii 3818 3817 -0.0% 1.00x (?)
ArrayAppendAsciiSubstring 25008 25037 +0.1% 1.00x (?)
ArrayAppendFromGeneric 794 783 -1.4% 1.01x (?)
ArrayAppendGenericStructs 1406 1415 +0.6% 0.99x (?)
ArrayAppendLatin1 38953 39898 +2.4% 0.98x
ArrayAppendLazyMap 1327 1333 +0.5% 1.00x (?)
ArrayAppendOptionals 1418 1399 -1.3% 1.01x (?)
ArrayAppendRepeatCol 1329 1337 +0.6% 0.99x (?)
ArrayAppendReserved 527 527 +0.0% 1.00x
ArrayAppendSequence 1108 1111 +0.3% 1.00x (?)
ArrayAppendStrings 6324 6179 -2.3% 1.02x
ArrayAppendToFromGeneric 796 793 -0.4% 1.00x (?)
ArrayAppendToGeneric 793 780 -1.6% 1.02x (?)
ArrayAppendUTF16 38850 39317 +1.2% 0.99x
ArrayInClass 85 85 +0.0% 1.00x
ArrayLiteral 0 0 +0.0% 1.00x
ArrayOfGenericPOD2 149 149 +0.0% 1.00x
ArrayOfGenericRef 4336 4328 -0.2% 1.00x (?)
ArrayOfPOD 182 185 +1.6% 0.98x (?)
ArrayOfRef 4315 4311 -0.1% 1.00x (?)
ArrayPlusEqualArrayOfInt 782 785 +0.4% 1.00x (?)
ArrayPlusEqualFiveElementCollection 4188 4168 -0.5% 1.00x (?)
ArrayPlusEqualSingleElementCollection 791 797 +0.8% 0.99x (?)
ArrayPlusEqualThreeElements 1641 1627 -0.9% 1.01x (?)
ArraySubscript 1543 1545 +0.1% 1.00x (?)
ArrayValueProp 8 8 +0.0% 1.00x
ArrayValueProp2 8 8 +0.0% 1.00x
ArrayValueProp3 8 8 +0.0% 1.00x
ArrayValueProp4 8 8 +0.0% 1.00x
BinaryFloatingPointPropertiesBinade 31 31 +0.0% 1.00x
BinaryFloatingPointPropertiesNextUp 29 29 +0.0% 1.00x
BinaryFloatingPointPropertiesUlp 35 35 +0.0% 1.00x
BitCount 169 169 +0.0% 1.00x
ByteSwap 99 98 -1.0% 1.01x (?)
COWArrayGuaranteedParameterOverhead 9944 9873 -0.7% 1.01x (?)
COWTree 3612 3592 -0.6% 1.01x (?)
CSVParsing2 1715 1713 -0.1% 1.00x (?)
CSVParsingAlt2 1757 1790 +1.9% 0.98x
CSVParsingAltIndices2 824 815 -1.1% 1.01x (?)
CStringLongNonAscii 2085 2134 +2.4% 0.98x
CStringShortAscii 3153 3175 +0.7% 0.99x (?)
Calculator 206 206 +0.0% 1.00x
CaptureProp 4066 4073 +0.2% 1.00x (?)
ChainedFilterMap 1244 1244 +0.0% 1.00x
CharIndexing_ascii_unicodeScalars 17150 16757 -2.3% 1.02x
CharIndexing_ascii_unicodeScalars_Backwards 16562 16358 -1.2% 1.01x
CharIndexing_chinese_unicodeScalars 13123 12815 -2.3% 1.02x
CharIndexing_chinese_unicodeScalars_Backwards 12535 12379 -1.2% 1.01x
CharIndexing_japanese_unicodeScalars 20516 20044 -2.3% 1.02x
CharIndexing_japanese_unicodeScalars_Backwards 19818 19557 -1.3% 1.01x
CharIndexing_korean_unicodeScalars 16641 16255 -2.3% 1.02x
CharIndexing_korean_unicodeScalars_Backwards 16053 15848 -1.3% 1.01x
CharIndexing_punctuatedJapanese_unicodeScalars 3085 3008 -2.5% 1.03x
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 2987 2964 -0.8% 1.01x (?)
CharIndexing_punctuated_unicodeScalars 3865 3787 -2.0% 1.02x
CharIndexing_punctuated_unicodeScalars_Backwards 3739 3715 -0.6% 1.01x
CharIndexing_russian_unicodeScalars 14282 13957 -2.3% 1.02x
CharIndexing_russian_unicodeScalars_Backwards 13791 13616 -1.3% 1.01x
CharIndexing_tweet_unicodeScalars 33713 32427 -3.8% 1.04x
CharIndexing_tweet_unicodeScalars_Backwards 32647 32261 -1.2% 1.01x
CharIndexing_utf16_unicodeScalars 22914 22153 -3.3% 1.03x
CharIndexing_utf16_unicodeScalars_Backwards 23087 22981 -0.5% 1.00x (?)
CharIteration_ascii_unicodeScalars 20134 20338 +1.0% 0.99x
CharIteration_ascii_unicodeScalars_Backwards 15844 15840 -0.0% 1.00x (?)
CharIteration_chinese_unicodeScalars 15267 15390 +0.8% 0.99x (?)
CharIteration_chinese_unicodeScalars_Backwards 11996 11993 -0.0% 1.00x (?)
CharIteration_japanese_unicodeScalars 24114 24361 +1.0% 0.99x
CharIteration_japanese_unicodeScalars_Backwards 18969 18967 -0.0% 1.00x (?)
CharIteration_korean_unicodeScalars 19557 19713 +0.8% 0.99x (?)
CharIteration_korean_unicodeScalars_Backwards 15360 15354 -0.0% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars 3608 3650 +1.2% 0.99x
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 2859 2856 -0.1% 1.00x (?)
CharIteration_punctuated_unicodeScalars 4536 4568 +0.7% 0.99x
CharIteration_punctuated_unicodeScalars_Backwards 3580 3577 -0.1% 1.00x (?)
CharIteration_russian_unicodeScalars 16805 16939 +0.8% 0.99x (?)
CharIteration_russian_unicodeScalars_Backwards 13197 13191 -0.0% 1.00x (?)
CharIteration_tweet_unicodeScalars 40039 40137 +0.2% 1.00x (?)
CharIteration_tweet_unicodeScalars_Backwards 31294 31646 +1.1% 0.99x
CharIteration_utf16_unicodeScalars 27415 26950 -1.7% 1.02x
CharacterLiteralsLarge 5827 5833 +0.1% 1.00x (?)
CharacterLiteralsSmall 220 220 +0.0% 1.00x
CharacterPropertiesFetch 4527 4450 -1.7% 1.02x (?)
CharacterPropertiesStashedMemo 1398 1371 -1.9% 1.02x
Chars2 2624 2623 -0.0% 1.00x (?)
ClassArrayGetter2 123 123 +0.0% 1.00x
Combos 490 491 +0.2% 1.00x (?)
DataAccessBytes 1145 1139 -0.5% 1.01x (?)
DataAppendArray 5443 5386 -1.0% 1.01x (?)
DataAppendBytes 5163 5176 +0.3% 1.00x (?)
DataAppendDataLargeToLarge 66697 66723 +0.0% 1.00x (?)
DataAppendDataLargeToMedium 35377 35269 -0.3% 1.00x (?)
DataAppendDataLargeToSmall 34226 34115 -0.3% 1.00x (?)
DataAppendDataMediumToLarge 38104 37758 -0.9% 1.01x (?)
DataAppendDataMediumToMedium 6479 6308 -2.6% 1.03x (?)
DataAppendDataMediumToSmall 5940 5891 -0.8% 1.01x (?)
DataAppendDataSmallToLarge 36831 36742 -0.2% 1.00x (?)
DataAppendDataSmallToMedium 6097 6148 +0.8% 0.99x (?)
DataAppendDataSmallToSmall 5761 5655 -1.8% 1.02x (?)
DataAppendSequence 21057 20674 -1.8% 1.02x (?)
DataCopyBytes 456 459 +0.7% 0.99x (?)
DataCount 37 37 +0.0% 1.00x
DataMutateBytes 3828 3826 -0.1% 1.00x (?)
DataReplaceLarge 36312 36274 -0.1% 1.00x (?)
DataReplaceLargeBuffer 58155 57202 -1.6% 1.02x (?)
DataReplaceMedium 7857 7793 -0.8% 1.01x (?)
DataReplaceMediumBuffer 11875 11746 -1.1% 1.01x (?)
DataReplaceSmall 5550 5664 +2.1% 0.98x (?)
DataReplaceSmallBuffer 9324 8961 -3.9% 1.04x (?)
DataReset 2799 2828 +1.0% 0.99x (?)
DataSetCount 544 549 +0.9% 0.99x (?)
DataSubscript 220 220 +0.0% 1.00x
DictOfArraysToArrayOfDicts 788 782 -0.8% 1.01x (?)
Dictionary 499 496 -0.6% 1.01x (?)
Dictionary2 631 619 -1.9% 1.02x
Dictionary2OfObjects 2056 2056 +0.0% 1.00x
Dictionary3 216 213 -1.4% 1.01x (?)
Dictionary3OfObjects 711 708 -0.4% 1.00x (?)
Dictionary4 293 294 +0.3% 1.00x (?)
Dictionary4Legacy 654 653 -0.2% 1.00x (?)
Dictionary4OfObjects 412 414 +0.5% 1.00x (?)
Dictionary4OfObjectsLegacy 840 836 -0.5% 1.00x (?)
DictionaryBridge 1172 1208 +3.1% 0.97x (?)
DictionaryBridgeToObjC_Access 924 939 +1.6% 0.98x (?)
DictionaryBridgeToObjC_BulkAccess 164 162 -1.2% 1.01x (?)
DictionaryCompactMapValuesOfCastValue 10825 10795 -0.3% 1.00x (?)
DictionaryCompactMapValuesOfNilValue 6592 6458 -2.0% 1.02x (?)
DictionaryCopy 98242 98100 -0.1% 1.00x (?)
DictionaryFilter 99002 98730 -0.3% 1.00x (?)
DictionaryGroup 199 200 +0.5% 1.00x (?)
DictionaryGroupOfObjects 2069 2071 +0.1% 1.00x (?)
DictionaryKeysContainsCocoa 40 40 +0.0% 1.00x
DictionaryKeysContainsNative 30 30 +0.0% 1.00x
DictionaryLiteral 1817 1821 +0.2% 1.00x (?)
DictionaryOfObjects 2373 2352 -0.9% 1.01x (?)
DictionaryRemove 5305 5313 +0.2% 1.00x (?)
DictionaryRemoveOfObjects 25127 25023 -0.4% 1.00x (?)
DictionarySubscriptDefaultMutation 243 243 +0.0% 1.00x
DictionarySubscriptDefaultMutationArray 583 583 +0.0% 1.00x
DictionarySubscriptDefaultMutationArrayOfObjects 3980 3982 +0.1% 1.00x (?)
DictionarySubscriptDefaultMutationOfObjects 1668 1668 +0.0% 1.00x
DictionarySwap 938 940 +0.2% 1.00x (?)
DictionarySwapAt 6373 6383 +0.2% 1.00x (?)
DictionarySwapAtOfObjects 51648 52122 +0.9% 0.99x (?)
DictionarySwapOfObjects 8610 8633 +0.3% 1.00x (?)
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollection 76 76 +0.0% 1.00x
DropFirstAnyCollectionLazy 64424 64366 -0.1% 1.00x (?)
DropFirstAnySeqCRangeIter 93 93 +0.0% 1.00x
DropFirstAnySeqCRangeIterLazy 93 93 +0.0% 1.00x
DropFirstAnySeqCntRange 71 71 +0.0% 1.00x
DropFirstAnySeqCntRangeLazy 71 71 +0.0% 1.00x
DropFirstAnySequence 1841 1841 +0.0% 1.00x
DropFirstAnySequenceLazy 1841 1841 +0.0% 1.00x
DropFirstArray 35 35 +0.0% 1.00x
DropFirstArrayLazy 35 35 +0.0% 1.00x
DropFirstCountableRange 29 29 +0.0% 1.00x
DropFirstCountableRangeLazy 29 29 +0.0% 1.00x
DropFirstSequence 2680 2680 +0.0% 1.00x
DropFirstSequenceLazy 2773 2773 +0.0% 1.00x
DropLastAnyCollection 28 28 +0.0% 1.00x
DropLastAnyCollectionLazy 21327 21493 +0.8% 0.99x (?)
DropLastAnySeqCRangeIter 3345 3275 -2.1% 1.02x (?)
DropLastAnySeqCRangeIterLazy 3299 3274 -0.8% 1.01x (?)
DropLastAnySeqCntRange 9 9 +0.0% 1.00x
DropLastAnySeqCntRangeLazy 9 9 +0.0% 1.00x
DropLastAnySequence 4935 4946 +0.2% 1.00x (?)
DropLastAnySequenceLazy 5017 5043 +0.5% 0.99x (?)
DropLastSequence 657 657 +0.0% 1.00x
DropLastSequenceLazy 657 658 +0.2% 1.00x (?)
DropWhileAnyCollection 99 99 +0.0% 1.00x
DropWhileAnyCollectionLazy 147 147 +0.0% 1.00x
DropWhileAnySeqCRangeIter 75 75 +0.0% 1.00x
DropWhileAnySeqCRangeIterLazy 147 147 +0.0% 1.00x
DropWhileAnySeqCntRange 95 95 +0.0% 1.00x
DropWhileAnySeqCntRangeLazy 147 147 +0.0% 1.00x
DropWhileAnySequence 1854 1854 +0.0% 1.00x
DropWhileAnySequenceLazy 1854 1854 +0.0% 1.00x
DropWhileArrayLazy 105 105 +0.0% 1.00x
DropWhileCountableRange 30 30 +0.0% 1.00x
DropWhileCountableRangeLazy 82 82 +0.0% 1.00x
DropWhileSequence 2208 2208 +0.0% 1.00x
DropWhileSequenceLazy 105 105 +0.0% 1.00x
EqualStringSubstring 48 49 +2.1% 0.98x
EqualSubstringString 48 49 +2.1% 0.98x
EqualSubstringSubstring 49 48 -2.0% 1.02x (?)
EqualSubstringSubstringGenericEquatable 48 48 +0.0% 1.00x
ErrorHandling 1195 1202 +0.6% 0.99x (?)
ExclusivityGlobal 5 5 +0.0% 1.00x
ExclusivityIndependent 2 2 +0.0% 1.00x
FatCompactMap 1247 1245 -0.2% 1.00x (?)
FilterEvenUsingReduce 1324 1314 -0.8% 1.01x (?)
FilterEvenUsingReduceInto 158 159 +0.6% 0.99x (?)
FloatingPointPrinting_Double_description_small 21507 21567 +0.3% 1.00x (?)
FloatingPointPrinting_Double_description_uniform 20958 20949 -0.0% 1.00x (?)
FloatingPointPrinting_Double_interpolated 62059 61225 -1.3% 1.01x (?)
FloatingPointPrinting_Float80_description_small 28379 28418 +0.1% 1.00x (?)
FloatingPointPrinting_Float80_description_uniform 27658 27607 -0.2% 1.00x (?)
FloatingPointPrinting_Float80_interpolated 64639 64324 -0.5% 1.00x (?)
FloatingPointPrinting_Float_description_small 5718 5775 +1.0% 0.99x
FloatingPointPrinting_Float_interpolated 38233 38425 +0.5% 1.00x (?)
FrequenciesUsingReduce 4745 4625 -2.5% 1.03x (?)
FrequenciesUsingReduceInto 1483 1450 -2.2% 1.02x (?)
Hanoi 2144 2236 +4.3% 0.96x
HashTest 926 931 +0.5% 0.99x (?)
Histogram 585 586 +0.2% 1.00x (?)
Integrate 341 341 +0.0% 1.00x
Join 163 165 +1.2% 0.99x
LazilyFilteredArrays2 4563 4561 -0.0% 1.00x (?)
LazilyFilteredRange 3663 3658 -0.1% 1.00x (?)
LessSubstringSubstring 48 48 +0.0% 1.00x
LessSubstringSubstringGenericComparable 48 48 +0.0% 1.00x
LinkedList 7552 7551 -0.0% 1.00x (?)
LuhnAlgoEager 435 435 +0.0% 1.00x
LuhnAlgoLazy 432 437 +1.2% 0.99x (?)
MapReduce 397 397 +0.0% 1.00x
MapReduceAnyCollection 369 369 +0.0% 1.00x
MapReduceAnyCollectionShort 2006 2007 +0.0% 1.00x (?)
MapReduceClass 2978 2980 +0.1% 1.00x (?)
MapReduceClassShort 4518 4518 +0.0% 1.00x
MapReduceLazyCollection 13 13 +0.0% 1.00x
MapReduceLazyCollectionShort 31 31 +0.0% 1.00x
MapReduceLazySequence 86 86 +0.0% 1.00x
MapReduceSequence 470 466 -0.9% 1.01x (?)
MapReduceShort 1960 1952 -0.4% 1.00x (?)
MapReduceShortString 20 20 +0.0% 1.00x
MapReduceString 45 45 +0.0% 1.00x
Memset 212 213 +0.5% 1.00x (?)
MonteCarloE 10481 10513 +0.3% 1.00x
MonteCarloPi 42505 42825 +0.8% 0.99x (?)
NSDictionaryCastToSwift 7016 7062 +0.7% 0.99x (?)
NSError 163 163 +0.0% 1.00x
NSStringConversion 690 672 -2.6% 1.03x
NibbleSort 3291 3290 -0.0% 1.00x (?)
NopDeinit 32337 32222 -0.4% 1.00x (?)
ObjectAllocation 133 133 +0.0% 1.00x
ObjectiveCBridgeFromNSArrayAnyObject 25511 25898 +1.5% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 4482 4282 -4.5% 1.05x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 45055 46743 +3.7% 0.96x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 43900 44110 +0.5% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 107796 106938 -0.8% 1.01x (?)
ObjectiveCBridgeFromNSSetAnyObject 47677 45796 -3.9% 1.04x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 3771 3767 -0.1% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 67744 68333 +0.9% 0.99x (?)
ObjectiveCBridgeFromNSString 1256 1239 -1.4% 1.01x (?)
ObjectiveCBridgeFromNSStringForced 2442 2468 +1.1% 0.99x (?)
ObjectiveCBridgeStubDataAppend 6089 6132 +0.7% 0.99x (?)
ObjectiveCBridgeStubDateMutation 400 400 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString2 3341 3406 +1.9% 0.98x (?)
ObjectiveCBridgeStubFromNSString 1019 1030 +1.1% 0.99x (?)
ObjectiveCBridgeStubNSDataAppend 2503 2503 +0.0% 1.00x
ObjectiveCBridgeStubToArrayOfNSString2 3956 3942 -0.4% 1.00x (?)
ObjectiveCBridgeStubToNSDate2 1521 1597 +5.0% 0.95x (?)
ObjectiveCBridgeStubToNSString 2352 2343 -0.4% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 121 121 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath2 2701 2800 +3.7% 0.96x (?)
ObjectiveCBridgeStubURLAppendPathRef2 2748 2624 -4.5% 1.05x (?)
ObjectiveCBridgeToNSArray 14566 14553 -0.1% 1.00x (?)
ObjectiveCBridgeToNSDictionary 27207 26759 -1.6% 1.02x (?)
ObjectiveCBridgeToNSSet 16950 16414 -3.2% 1.03x (?)
ObjectiveCBridgeToNSString 464 455 -1.9% 1.02x
ObserverClosure 2142 2153 +0.5% 0.99x (?)
ObserverForwarderStruct 1161 1162 +0.1% 1.00x (?)
ObserverPartiallyAppliedMethod 3682 3714 +0.9% 0.99x (?)
ObserverUnappliedMethod 2451 2462 +0.4% 1.00x (?)
OpaqueConsumingUsers 4179 4179 +0.0% 1.00x
OpenClose 73 71 -2.7% 1.03x
Phonebook 7054 7220 +2.4% 0.98x
PointerArithmetics 31490 31485 -0.0% 1.00x (?)
PolymorphicCalls 25 25 +0.0% 1.00x
PopFrontArray 1930 1929 -0.1% 1.00x (?)
PopFrontArrayGeneric 1943 1942 -0.1% 1.00x (?)
PopFrontUnsafePointer 8736 8737 +0.0% 1.00x (?)
PrefixAnyCollection 76 76 +0.0% 1.00x
PrefixAnyCollectionLazy 64378 64521 +0.2% 1.00x (?)
PrefixAnySeqCRangeIter 33 32 -3.0% 1.03x
PrefixAnySeqCRangeIterLazy 33 33 +0.0% 1.00x
PrefixAnySeqCntRange 71 71 +0.0% 1.00x
PrefixAnySeqCntRangeLazy 71 71 +0.0% 1.00x
PrefixAnySequence 1377 1377 +0.0% 1.00x
PrefixAnySequenceLazy 1378 1378 +0.0% 1.00x
PrefixArray 35 35 +0.0% 1.00x
PrefixArrayLazy 35 35 +0.0% 1.00x
PrefixCountableRange 29 29 +0.0% 1.00x
PrefixCountableRangeLazy 29 29 +0.0% 1.00x
PrefixSequence 2222 2209 -0.6% 1.01x
PrefixSequenceLazy 2274 2275 +0.0% 1.00x (?)
PrefixWhileAnyCollection 146 146 +0.0% 1.00x
PrefixWhileAnyCollectionLazy 89 89 +0.0% 1.00x
PrefixWhileAnySeqCRangeIter 365 366 +0.3% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 89 89 +0.0% 1.00x
PrefixWhileAnySequence 1509 1521 +0.8% 0.99x
PrefixWhileAnySequenceLazy 1391 1390 -0.1% 1.00x (?)
PrefixWhileArray 88 88 +0.0% 1.00x
PrefixWhileArrayLazy 70 70 +0.0% 1.00x
PrefixWhileSequence 325 325 +0.0% 1.00x
PrefixWhileSequenceLazy 52 52 +0.0% 1.00x
Prims 5397 5311 -1.6% 1.02x (?)
PrimsSplit 5442 5371 -1.3% 1.01x (?)
QueueConcrete 1134 1136 +0.2% 1.00x (?)
QueueGeneric 1126 1126 +0.0% 1.00x
RC4 155 155 +0.0% 1.00x
RGBHistogram 2378 2380 +0.1% 1.00x (?)
RGBHistogramOfObjects 19954 19917 -0.2% 1.00x (?)
Radix2CooleyTukey 12009 12199 +1.6% 0.98x (?)
Radix2CooleyTukeyf 8869 8843 -0.3% 1.00x (?)
RandomDoubleDef 26686 26696 +0.0% 1.00x (?)
RandomIntegersDef 24567 24539 -0.1% 1.00x (?)
RandomIntegersLCG 178 178 +0.0% 1.00x
RandomShuffleDef2 2581 2584 +0.1% 1.00x (?)
RandomShuffleLCG2 1815 1815 +0.0% 1.00x
RangeAssignment 335 336 +0.3% 1.00x (?)
RangeIterationSigned 171 171 +0.0% 1.00x
RangeReplaceableCollectionPlusDefault 1045 1043 -0.2% 1.00x (?)
RecursiveOwnedParameter 115 115 +0.0% 1.00x
RemoveWhereFilterInts 44 44 +0.0% 1.00x
RemoveWhereFilterString 236 241 +2.1% 0.98x (?)
RemoveWhereFilterStrings 434 435 +0.2% 1.00x (?)
RemoveWhereMoveInts 15 15 +0.0% 1.00x
RemoveWhereMoveStrings 731 731 +0.0% 1.00x
RemoveWhereQuadraticInts 1282 1280 -0.2% 1.00x (?)
RemoveWhereQuadraticString 362 364 +0.6% 0.99x (?)
RemoveWhereQuadraticStrings 2751 2751 +0.0% 1.00x
RemoveWhereSwapInts 20 20 +0.0% 1.00x
RemoveWhereSwapStrings 896 897 +0.1% 1.00x (?)
ReversedArray2 200 200 +0.0% 1.00x
ReversedBidirectional 13585 13800 +1.6% 0.98x
ReversedDictionary2 317 317 +0.0% 1.00x
RomanNumbers 77847 78631 +1.0% 0.99x (?)
SequenceAlgosAnySequence 12355 12182 -1.4% 1.01x
SequenceAlgosArray 1565 1567 +0.1% 1.00x (?)
SequenceAlgosContiguousArray 1567 1566 -0.1% 1.00x (?)
SequenceAlgosList 1349 1349 +0.0% 1.00x
SequenceAlgosRange 2576 2576 +0.0% 1.00x
SequenceAlgosUnfoldSequence 1104 1105 +0.1% 1.00x (?)
SetExclusiveOr 4918 4812 -2.2% 1.02x
SetExclusiveOr_OfObjects 11252 11218 -0.3% 1.00x (?)
SetIntersect 595 596 +0.2% 1.00x (?)
SetIntersectionBox0 166 168 +1.2% 0.99x (?)
SetIntersectionBox25 376 377 +0.3% 1.00x (?)
SetIntersectionInt0 59 59 +0.0% 1.00x
SetIntersectionInt100 456 452 -0.9% 1.01x (?)
SetIntersectionInt25 156 156 +0.0% 1.00x
SetIntersectionInt50 255 255 +0.0% 1.00x
SetIsSubsetBox0 350 348 -0.6% 1.01x (?)
SetIsSubsetBox25 177 180 +1.7% 0.98x
SetIsSubsetInt0 233 233 +0.0% 1.00x
SetIsSubsetInt100 287 287 +0.0% 1.00x
SetIsSubsetInt25 73 73 +0.0% 1.00x
SetIsSubsetInt50 144 144 +0.0% 1.00x
SetSubtractingBox0 172 171 -0.6% 1.01x (?)
SetSubtractingBox25 370 372 +0.5% 0.99x (?)
SetSubtractingInt0 69 69 +0.0% 1.00x
SetSubtractingInt100 241 243 +0.8% 0.99x (?)
SetSubtractingInt25 142 142 +0.0% 1.00x
SetSubtractingInt50 179 178 -0.6% 1.01x (?)
SetSymmetricDifferenceBox0 1128 1124 -0.4% 1.00x (?)
SetSymmetricDifferenceBox25 741 741 +0.0% 1.00x
SetSymmetricDifferenceInt0 490 478 -2.4% 1.03x
SetSymmetricDifferenceInt100 305 305 +0.0% 1.00x
SetSymmetricDifferenceInt25 348 345 -0.9% 1.01x (?)
SetSymmetricDifferenceInt50 332 332 +0.0% 1.00x
SetUnion 4199 4194 -0.1% 1.00x (?)
SetUnionBox0 969 965 -0.4% 1.00x (?)
SetUnionBox25 517 516 -0.2% 1.00x (?)
SetUnionInt0 419 419 +0.0% 1.00x
SetUnionInt100 98 97 -1.0% 1.01x (?)
SetUnionInt25 244 245 +0.4% 1.00x (?)
SetUnionInt50 203 203 +0.0% 1.00x
SetUnion_OfObjects 9681 9675 -0.1% 1.00x (?)
SevenBoom 836 848 +1.4% 0.99x (?)
Sim2DArray 312 312 +0.0% 1.00x
SortAdjacentIntPyramids 10246 10240 -0.1% 1.00x (?)
SortIntPyramid 8749 8745 -0.0% 1.00x (?)
SortLargeExistentials 5087 5122 +0.7% 0.99x
SortLettersInPlace 933 935 +0.2% 1.00x (?)
SortSortedStrings 697 713 +2.3% 0.98x
SortStrings 1492 1512 +1.3% 0.99x
SortStringsUnicode 2039 2091 +2.6% 0.98x
StackPromo 16946 17104 +0.9% 0.99x (?)
StaticArray 9 9 +0.0% 1.00x
StrComplexWalk 1781 1781 +0.0% 1.00x
StrToInt 3112 3148 +1.2% 0.99x
StringAdder 548 548 +0.0% 1.00x
StringBuilder 490 490 +0.0% 1.00x
StringBuilderLong 1234 1233 -0.1% 1.00x (?)
StringBuilderSmallReservingCapacity 500 500 +0.0% 1.00x
StringBuilderWithLongSubstring 1433 1418 -1.0% 1.01x (?)
StringComparison_ascii 1045 1068 +2.2% 0.98x
StringComparison_emoji 861 854 -0.8% 1.01x (?)
StringComparison_fastPrenormal 834 861 +3.2% 0.97x (?)
StringComparison_latin1 646 673 +4.2% 0.96x (?)
StringComparison_longSharedPrefix 952 959 +0.7% 0.99x (?)
StringComparison_nonBMPSlowestPrenormal 1671 1675 +0.2% 1.00x (?)
StringComparison_slowerPrenormal 1800 1811 +0.6% 0.99x (?)
StringComparison_zalgo 112316 112377 +0.1% 1.00x (?)
StringEdits 166071 166487 +0.3% 1.00x (?)
StringEnumRawValueInitialization 867 864 -0.3% 1.00x (?)
StringEqualPointerComparison 314 314 +0.0% 1.00x
StringFromLongWholeSubstring 21 21 +0.0% 1.00x
StringFromLongWholeSubstringGeneric 21 21 +0.0% 1.00x
StringHasPrefixAscii 2261 2290 +1.3% 0.99x
StringHasPrefixUnicode 98739 98804 +0.1% 1.00x (?)
StringHasSuffixAscii 2289 2318 +1.3% 0.99x
StringHasSuffixUnicode 99223 99288 +0.1% 1.00x (?)
StringHashing_ascii 34 35 +2.9% 0.97x
StringHashing_emoji 1896 1901 +0.3% 1.00x (?)
StringHashing_fastPrenormal 8273 8384 +1.3% 0.99x (?)
StringHashing_latin1 2541 2560 +0.7% 0.99x (?)
StringHashing_longSharedPrefix 7573 7730 +2.1% 0.98x
StringHashing_nonBMPSlowestPrenormal 2082 2069 -0.6% 1.01x (?)
StringHashing_slowerPrenormal 2707 2725 +0.7% 0.99x (?)
StringHashing_zalgo 3510 3503 -0.2% 1.00x (?)
StringInterpolation 8803 8772 -0.4% 1.00x (?)
StringInterpolationManySmallSegments 17446 17572 +0.7% 0.99x (?)
StringInterpolationSmall 4005 4058 +1.3% 0.99x (?)
StringMatch 12174 12147 -0.2% 1.00x (?)
StringRemoveDupes 467 467 +0.0% 1.00x
StringUTF16Builder 2538 2538 +0.0% 1.00x
StringWalk 1555 1556 +0.1% 1.00x (?)
StringWordBuilderReservingCapacity 1614 1629 +0.9% 0.99x (?)
SubstringComparable 12 12 +0.0% 1.00x
SubstringEqualString 607 612 +0.8% 0.99x (?)
SubstringEquatable 1399 1435 +2.6% 0.97x
SubstringFromLongString 10 10 +0.0% 1.00x
SubstringFromLongStringGeneric 74 74 +0.0% 1.00x
SuffixAnyCollection 28 28 +0.0% 1.00x
SuffixAnyCollectionLazy 21448 21547 +0.5% 1.00x (?)
SuffixAnySeqCRangeIter 3648 3582 -1.8% 1.02x (?)
SuffixAnySeqCRangeIterLazy 3660 3590 -1.9% 1.02x (?)
SuffixAnySeqCntRange 14 14 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 14 14 +0.0% 1.00x
SuffixAnySequence 4927 4930 +0.1% 1.00x (?)
SuffixAnySequenceLazy 5030 5047 +0.3% 1.00x (?)
SuffixSequence 3624 3623 -0.0% 1.00x (?)
SuffixSequenceLazy 3627 3625 -0.1% 1.00x (?)
SumUsingReduce 101 101 +0.0% 1.00x
SumUsingReduceInto 101 101 +0.0% 1.00x
SuperChars 19049 19086 +0.2% 1.00x (?)
TwoSum 1382 1354 -2.0% 1.02x
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode 303 298 -1.7% 1.02x (?)
UTF8Decode_InitDecoding 1341 1348 +0.5% 0.99x (?)
UTF8Decode_InitDecoding_ascii 649 654 +0.8% 0.99x (?)
UTF8Decode_InitFromBytes 1196 1189 -0.6% 1.01x (?)
UTF8Decode_InitFromBytes_ascii 484 480 -0.8% 1.01x (?)
UTF8Decode_InitFromData 1229 1256 +2.2% 0.98x (?)
UTF8Decode_InitFromData_ascii 678 692 +2.1% 0.98x (?)
Walsh 392 392 +0.0% 1.00x
WordCountHistogramASCII 6886 7012 +1.8% 0.98x (?)
WordCountHistogramUTF16 10317 10490 +1.7% 0.98x (?)
WordCountUniqueASCII 2071 2058 -0.6% 1.01x (?)
WordCountUniqueUTF16 4805 4682 -2.6% 1.03x (?)
XorLoop 389 388 -0.3% 1.00x (?)

Unoptimized (Onone)

Regression (55)
TEST OLD NEW DELTA SPEEDUP
CharIteration_tweet_unicodeScalars 290810 409289 +40.7% 0.71x
CharIteration_korean_unicodeScalars_Backwards 236889 322443 +36.1% 0.73x
CharIteration_punctuated_unicodeScalars_Backwards 53918 72953 +35.3% 0.74x
CharIteration_russian_unicodeScalars_Backwards 203380 273716 +34.6% 0.74x
CharIteration_ascii_unicodeScalars_Backwards 245089 329304 +34.4% 0.74x
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 42661 57231 +34.2% 0.75x
CharIteration_tweet_unicodeScalars_Backwards 485748 649890 +33.8% 0.75x
CharIteration_japanese_unicodeScalars_Backwards 293679 392708 +33.7% 0.75x
CharIteration_russian_unicodeScalars 122388 160416 +31.1% 0.76x
CharIteration_chinese_unicodeScalars 110795 144804 +30.7% 0.77x
CharIteration_ascii_unicodeScalars 146516 191346 +30.6% 0.77x
CharIteration_korean_unicodeScalars 142137 185415 +30.4% 0.77x
CharIteration_japanese_unicodeScalars 176190 228715 +29.8% 0.77x
CharIteration_punctuated_unicodeScalars 32957 42731 +29.7% 0.77x
CharIteration_punctuatedJapanese_unicodeScalars 26190 33898 +29.4% 0.77x
DictionarySubscriptDefaultMutationOfObjects 5233 6733 +28.7% 0.78x
CharIteration_chinese_unicodeScalars_Backwards 197850 249083 +25.9% 0.79x
StringComparison_fastPrenormal 4903 6101 +24.4% 0.80x (?)
StringComparison_latin1 3808 4732 +24.3% 0.80x (?)
CharIteration_utf16_unicodeScalars_Backwards 214790 266473 +24.1% 0.81x
CharIndexing_tweet_unicodeScalars 632883 772246 +22.0% 0.82x
CharIteration_utf16_unicodeScalars 125231 151699 +21.1% 0.83x
CharIndexing_punctuated_unicodeScalars 71350 86090 +20.7% 0.83x
CharIndexing_ascii_unicodeScalars 329028 392141 +19.2% 0.84x (?)
CharIndexing_japanese_unicodeScalars 382696 449883 +17.6% 0.85x
CharIndexing_punctuatedJapanese_unicodeScalars 57871 67652 +16.9% 0.86x
StringComparison_slowerPrenormal 4162 4853 +16.6% 0.86x
CharIndexing_chinese_unicodeScalars 242540 282667 +16.5% 0.86x
CharIndexing_korean_unicodeScalars 325402 377997 +16.2% 0.86x
StringComparison_longSharedPrefix 2354 2732 +16.1% 0.86x
CharIndexing_russian_unicodeScalars 275243 319128 +15.9% 0.86x
StringComparison_nonBMPSlowestPrenormal 3692 4274 +15.8% 0.86x
DataCopyBytes 471 543 +15.3% 0.87x (?)
StringComparison_emoji 2006 2283 +13.8% 0.88x (?)
Histogram 6155 6943 +12.8% 0.89x (?)
CharIndexing_utf16_unicodeScalars 280313 315879 +12.7% 0.89x
UTF8Decode_InitFromData_ascii 700 786 +12.3% 0.89x (?)
CharIndexing_chinese_unicodeScalars_Backwards 298458 334309 +12.0% 0.89x (?)
CharIndexing_tweet_unicodeScalars_Backwards 784748 877113 +11.8% 0.89x
CharIndexing_japanese_unicodeScalars_Backwards 475820 531163 +11.6% 0.90x (?)
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 69321 77152 +11.3% 0.90x
CharIndexing_korean_unicodeScalars_Backwards 388390 431493 +11.1% 0.90x
CharIndexing_russian_unicodeScalars_Backwards 332408 369163 +11.1% 0.90x (?)
CharIndexing_punctuated_unicodeScalars_Backwards 87988 97348 +10.6% 0.90x
CharIndexing_ascii_unicodeScalars_Backwards 405974 442210 +8.9% 0.92x
StringComparison_abnormal 1376 1483 +7.8% 0.93x (?)
ErrorHandling 5165 5555 +7.6% 0.93x
CStringLongAscii 3370 3615 +7.3% 0.93x
CharIndexing_utf16_unicodeScalars_Backwards 339106 362472 +6.9% 0.94x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 74124 79230 +6.9% 0.94x (?)
TypeFlood 184 195 +6.0% 0.94x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 49541 52465 +5.9% 0.94x (?)
WordCountUniqueUTF16 9736 10301 +5.8% 0.95x
StringHashing_nonBMPSlowestPrenormal 2345 2477 +5.6% 0.95x (?)
StringWithCString2 1692 1786 +5.6% 0.95x
Improvement (32)
TEST OLD NEW DELTA SPEEDUP
FrequenciesUsingReduceInto 3792 2978 -21.5% 1.27x (?)
DictionaryKeysContainsCocoa 76 64 -15.8% 1.19x (?)
StringMatch 46343 40840 -11.9% 1.13x
ObjectiveCBridgeFromNSArrayAnyObjectForced 9775 8740 -10.6% 1.12x (?)
FrequenciesUsingReduce 11523 10457 -9.3% 1.10x
Combos 2629 2386 -9.2% 1.10x
StringEnumRawValueInitialization 22543 20498 -9.1% 1.10x (?)
ArrayOfPOD 862 784 -9.0% 1.10x
RomanNumbers 1447321 1336771 -7.6% 1.08x
DictionaryOfObjects 6241 5773 -7.5% 1.08x (?)
UTF8Decode_InitDecoding_ascii 1004 931 -7.3% 1.08x (?)
COWArrayGuaranteedParameterOverhead 15744 14615 -7.2% 1.08x (?)
WordCountHistogramASCII 38532 35816 -7.0% 1.08x
StringUTF16SubstringBuilder 22397 20888 -6.7% 1.07x (?)
Dictionary 2245 2095 -6.7% 1.07x (?)
FloatingPointPrinting_Float_description_small 7166 6691 -6.6% 1.07x
StringInterpolation 12136 11339 -6.6% 1.07x
DropFirstAnyCollectionLazy 107914 101078 -6.3% 1.07x (?)
FloatingPointPrinting_Double_interpolated 98695 92471 -6.3% 1.07x (?)
DataReplaceMediumBuffer 12785 11979 -6.3% 1.07x (?)
RandomDoubleLCG 59267 55550 -6.3% 1.07x
ArrayPlusEqualThreeElements 9890 9274 -6.2% 1.07x (?)
DataReplaceSmallBuffer 9778 9179 -6.1% 1.07x (?)
PrefixAnyCollectionLazy 107943 101407 -6.1% 1.06x
LuhnAlgoLazy 6232 5859 -6.0% 1.06x (?)
MapReduceShortString 235 221 -6.0% 1.06x (?)
DictOfArraysToArrayOfDicts 3853 3625 -5.9% 1.06x
DictionaryCompactMapValuesOfCastValue 127534 120232 -5.7% 1.06x
LuhnAlgoEager 6013 5695 -5.3% 1.06x (?)
FloatingPointPrinting_Float_interpolated 67469 63903 -5.3% 1.06x (?)
StringHashing_abnormal 1580 1500 -5.1% 1.05x (?)
Dictionary3OfObjects 2108 2006 -4.8% 1.05x (?)
No Changes (387)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 5290 5395 +2.0% 0.98x (?)
AnyHashableWithAClass 106603 106149 -0.4% 1.00x (?)
Array2D 460463 459146 -0.3% 1.00x
ArrayAppend 4447 4462 +0.3% 1.00x
ArrayAppendArrayOfInt 871 867 -0.5% 1.00x (?)
ArrayAppendAscii 26506 26217 -1.1% 1.01x
ArrayAppendAsciiSubstring 71348 70455 -1.3% 1.01x
ArrayAppendFromGeneric 880 873 -0.8% 1.01x (?)
ArrayAppendGenericStructs 1519 1521 +0.1% 1.00x (?)
ArrayAppendLatin1 62798 62795 -0.0% 1.00x (?)
ArrayAppendLatin1Substring 161375 169308 +4.9% 0.95x
ArrayAppendLazyMap 164350 163487 -0.5% 1.01x (?)
ArrayAppendOptionals 1515 1518 +0.2% 1.00x (?)
ArrayAppendRepeatCol 187357 188350 +0.5% 0.99x
ArrayAppendReserved 4158 4161 +0.1% 1.00x (?)
ArrayAppendSequence 101659 101051 -0.6% 1.01x
ArrayAppendStrings 6461 6348 -1.7% 1.02x
ArrayAppendToFromGeneric 880 873 -0.8% 1.01x (?)
ArrayAppendToGeneric 872 880 +0.9% 0.99x (?)
ArrayAppendUTF16 62767 62694 -0.1% 1.00x (?)
ArrayAppendUTF16Substring 157973 165194 +4.6% 0.96x (?)
ArrayInClass 4802 4889 +1.8% 0.98x
ArrayLiteral 1587 1589 +0.1% 1.00x (?)
ArrayOfGenericPOD2 1128 1125 -0.3% 1.00x (?)
ArrayOfGenericRef 10222 10223 +0.0% 1.00x (?)
ArrayOfRef 9456 9428 -0.3% 1.00x (?)
ArrayPlusEqualArrayOfInt 869 876 +0.8% 0.99x (?)
ArrayPlusEqualFiveElementCollection 226390 225630 -0.3% 1.00x (?)
ArrayPlusEqualSingleElementCollection 222567 221157 -0.6% 1.01x
ArraySubscript 108208 107395 -0.8% 1.01x (?)
ArrayValueProp 3223 3230 +0.2% 1.00x (?)
ArrayValueProp2 14599 14511 -0.6% 1.01x (?)
ArrayValueProp3 3729 3743 +0.4% 1.00x (?)
ArrayValueProp4 3689 3696 +0.2% 1.00x (?)
BinaryFloatingPointPropertiesBinade 88 91 +3.4% 0.97x
BinaryFloatingPointPropertiesNextUp 137 134 -2.2% 1.02x
BinaryFloatingPointPropertiesUlp 132 135 +2.3% 0.98x
BitCount 8835 8837 +0.0% 1.00x (?)
ByteSwap 9779 9775 -0.0% 1.00x (?)
COWTree 12209 12069 -1.1% 1.01x (?)
CSVParsing2 7054 6804 -3.5% 1.04x
CSVParsingAlt2 3066 3101 +1.1% 0.99x (?)
CSVParsingAltIndices2 6017 5931 -1.4% 1.01x (?)
CStringLongNonAscii 2201 2242 +1.9% 0.98x (?)
CStringShortAscii 5939 6021 +1.4% 0.99x (?)
Calculator 1085 1066 -1.8% 1.02x
CaptureProp 282635 283281 +0.2% 1.00x (?)
ChainedFilterMap 228433 228478 +0.0% 1.00x (?)
CharacterLiteralsLarge 5801 5779 -0.4% 1.00x (?)
CharacterLiteralsSmall 703 727 +3.4% 0.97x
CharacterPropertiesFetch 5580 5457 -2.2% 1.02x (?)
CharacterPropertiesPrecomputed 2964 3054 +3.0% 0.97x (?)
CharacterPropertiesStashed 2634 2692 +2.2% 0.98x (?)
CharacterPropertiesStashedMemo 4104 4261 +3.8% 0.96x (?)
Chars2 35441 35403 -0.1% 1.00x (?)
ClassArrayGetter2 9440 9445 +0.1% 1.00x (?)
DataAccessBytes 2350 2337 -0.6% 1.01x (?)
DataAppendArray 5644 5676 +0.6% 0.99x (?)
DataAppendBytes 5241 5369 +2.4% 0.98x (?)
DataAppendDataLargeToLarge 68132 67631 -0.7% 1.01x (?)
DataAppendDataLargeToMedium 35571 35372 -0.6% 1.01x (?)
DataAppendDataLargeToSmall 34247 34266 +0.1% 1.00x (?)
DataAppendDataMediumToLarge 37820 37969 +0.4% 1.00x (?)
DataAppendDataMediumToMedium 6817 6550 -3.9% 1.04x
DataAppendDataMediumToSmall 5998 5902 -1.6% 1.02x (?)
DataAppendDataSmallToLarge 36831 37331 +1.4% 0.99x (?)
DataAppendDataSmallToMedium 6301 6097 -3.2% 1.03x (?)
DataAppendDataSmallToSmall 6082 6052 -0.5% 1.00x (?)
DataAppendSequence 1976098 1977328 +0.1% 1.00x (?)
DataCount 223 223 +0.0% 1.00x
DataMutateBytes 5222 5122 -1.9% 1.02x (?)
DataReplaceLarge 36653 36716 +0.2% 1.00x (?)
DataReplaceLargeBuffer 60337 58477 -3.1% 1.03x
DataReplaceMedium 8205 7907 -3.6% 1.04x (?)
DataReplaceSmall 5645 5869 +4.0% 0.96x (?)
DataReset 2918 2904 -0.5% 1.00x (?)
DataSetCount 563 567 +0.7% 0.99x (?)
DataSubscript 443 443 +0.0% 1.00x
Dictionary2 1280 1265 -1.2% 1.01x
Dictionary2OfObjects 4215 4200 -0.4% 1.00x (?)
Dictionary3 805 799 -0.7% 1.01x (?)
Dictionary4 1167 1170 +0.3% 1.00x (?)
Dictionary4Legacy 1424 1423 -0.1% 1.00x (?)
Dictionary4OfObjects 1784 1832 +2.7% 0.97x
Dictionary4OfObjectsLegacy 1962 2051 +4.5% 0.96x (?)
DictionaryBridge 1292 1357 +5.0% 0.95x (?)
DictionaryBridgeToObjC_Access 1598 1528 -4.4% 1.05x (?)
DictionaryBridgeToObjC_Bridge 19 19 +0.0% 1.00x
DictionaryBridgeToObjC_BulkAccess 166 165 -0.6% 1.01x (?)
DictionaryCompactMapValuesOfNilValue 32396 31845 -1.7% 1.02x
DictionaryCopy 302233 298880 -1.1% 1.01x
DictionaryFilter 299911 296067 -1.3% 1.01x
DictionaryGroup 4382 4372 -0.2% 1.00x (?)
DictionaryGroupOfObjects 6943 6821 -1.8% 1.02x (?)
DictionaryKeysContainsNative 52 50 -3.8% 1.04x (?)
DictionaryLiteral 8165 8171 +0.1% 1.00x (?)
DictionaryRemove 17386 17263 -0.7% 1.01x (?)
DictionaryRemoveOfObjects 53801 55219 +2.6% 0.97x (?)
DictionarySubscriptDefaultMutation 1731 1741 +0.6% 0.99x (?)
DictionarySubscriptDefaultMutationArray 2007 2009 +0.1% 1.00x (?)
DictionarySubscriptDefaultMutationArrayOfObjects 9290 9170 -1.3% 1.01x (?)
DictionarySwap 4640 4554 -1.9% 1.02x
DictionarySwapAt 32384 32682 +0.9% 0.99x
DictionarySwapAtOfObjects 114391 113386 -0.9% 1.01x (?)
DictionarySwapOfObjects 18902 18999 +0.5% 0.99x (?)
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollection 16160 15943 -1.3% 1.01x
DropFirstAnySeqCRangeIter 25273 25108 -0.7% 1.01x
DropFirstAnySeqCRangeIterLazy 25318 25242 -0.3% 1.00x (?)
DropFirstAnySeqCntRange 16183 15974 -1.3% 1.01x (?)
DropFirstAnySeqCntRangeLazy 16226 15907 -2.0% 1.02x
DropFirstAnySequence 12341 12343 +0.0% 1.00x (?)
DropFirstAnySequenceLazy 12193 12518 +2.7% 0.97x
DropFirstArray 3549 3507 -1.2% 1.01x (?)
DropFirstArrayLazy 30317 30339 +0.1% 1.00x (?)
DropFirstCountableRange 350 353 +0.9% 0.99x
DropFirstCountableRangeLazy 35761 35696 -0.2% 1.00x (?)
DropFirstSequence 11784 12033 +2.1% 0.98x (?)
DropFirstSequenceLazy 11800 12128 +2.8% 0.97x
DropLastAnyCollection 5403 5320 -1.5% 1.02x
DropLastAnyCollectionLazy 35332 35307 -0.1% 1.00x (?)
DropLastAnySeqCRangeIter 39525 39300 -0.6% 1.01x
DropLastAnySeqCRangeIterLazy 39757 39391 -0.9% 1.01x
DropLastAnySeqCntRange 5407 5332 -1.4% 1.01x
DropLastAnySeqCntRangeLazy 5429 5311 -2.2% 1.02x
DropLastAnySequence 28367 28395 +0.1% 1.00x (?)
DropLastAnySequenceLazy 28386 28460 +0.3% 1.00x (?)
DropLastSequence 28363 29531 +4.1% 0.96x (?)
DropLastSequenceLazy 28307 28310 +0.0% 1.00x (?)
DropWhileAnyCollection 20886 20527 -1.7% 1.02x
DropWhileAnyCollectionLazy 24071 23678 -1.6% 1.02x
DropWhileAnySeqCRangeIter 26125 25951 -0.7% 1.01x
DropWhileAnySeqCRangeIterLazy 23882 23534 -1.5% 1.01x
DropWhileAnySeqCntRange 20843 20449 -1.9% 1.02x
DropWhileAnySeqCntRangeLazy 23934 23585 -1.5% 1.01x
DropWhileAnySequence 13130 13306 +1.3% 0.99x
DropWhileAnySequenceLazy 11905 12063 +1.3% 0.99x
DropWhileArrayLazy 13722 13450 -2.0% 1.02x
DropWhileCountableRange 5040 5000 -0.8% 1.01x
DropWhileCountableRangeLazy 22617 22530 -0.4% 1.00x
DropWhileSequence 12714 12929 +1.7% 0.98x
DropWhileSequenceLazy 11415 11604 +1.7% 0.98x (?)
EqualStringSubstring 71 71 +0.0% 1.00x
EqualSubstringString 71 71 +0.0% 1.00x
EqualSubstringSubstring 72 72 +0.0% 1.00x
EqualSubstringSubstringGenericEquatable 56 57 +1.8% 0.98x (?)
ExclusivityGlobal 186 194 +4.3% 0.96x
ExclusivityIndependent 70 73 +4.3% 0.96x
FatCompactMap 285534 282807 -1.0% 1.01x (?)
FilterEvenUsingReduce 3585 3609 +0.7% 0.99x (?)
FilterEvenUsingReduceInto 1831 1833 +0.1% 1.00x (?)
FloatingPointPrinting_Double_description_small 22432 22356 -0.3% 1.00x (?)
FloatingPointPrinting_Double_description_uniform 34205 35385 +3.4% 0.97x (?)
FloatingPointPrinting_Float80_description_small 29633 29420 -0.7% 1.01x (?)
FloatingPointPrinting_Float80_description_uniform 57167 57150 -0.0% 1.00x (?)
FloatingPointPrinting_Float80_interpolated 118477 114829 -3.1% 1.03x (?)
FloatingPointPrinting_Float_description_uniform 17799 17585 -1.2% 1.01x
Hanoi 19584 19016 -2.9% 1.03x
HashTest 19837 19861 +0.1% 1.00x (?)
Integrate 586 587 +0.2% 1.00x (?)
IterateData 4980 5008 +0.6% 0.99x (?)
Join 178 181 +1.7% 0.98x
LazilyFilteredArrayContains 741541 737107 -0.6% 1.01x
LazilyFilteredArrays2 89943 90430 +0.5% 0.99x
LazilyFilteredRange 551528 546863 -0.8% 1.01x
LessSubstringSubstring 72 72 +0.0% 1.00x
LessSubstringSubstringGenericComparable 56 56 +0.0% 1.00x
LinkedList 32555 32419 -0.4% 1.00x (?)
MapReduce 24914 24972 +0.2% 1.00x (?)
MapReduceAnyCollection 24968 24930 -0.2% 1.00x (?)
MapReduceAnyCollectionShort 36401 36465 +0.2% 1.00x (?)
MapReduceClass 28900 29027 +0.4% 1.00x (?)
MapReduceClassShort 40454 40750 +0.7% 0.99x (?)
MapReduceLazyCollection 21960 22234 +1.2% 0.99x (?)
MapReduceLazyCollectionShort 32744 33843 +3.4% 0.97x (?)
MapReduceLazySequence 19649 20208 +2.8% 0.97x
MapReduceSequence 29907 30129 +0.7% 0.99x (?)
MapReduceShort 36786 36406 -1.0% 1.01x (?)
MapReduceString 1725 1715 -0.6% 1.01x (?)
Memset 25338 25335 -0.0% 1.00x (?)
MonteCarloE 1147945 1141988 -0.5% 1.01x (?)
MonteCarloPi 5272926 5233666 -0.7% 1.01x
NSDictionaryCastToSwift 8070 7871 -2.5% 1.03x (?)
NSError 617 614 -0.5% 1.00x (?)
NSStringConversion 758 725 -4.4% 1.05x (?)
NibbleSort 366115 368456 +0.6% 0.99x
NopDeinit 192975 200668 +4.0% 0.96x
ObjectAllocation 1235 1239 +0.3% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObject 31170 29834 -4.3% 1.04x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 46497 47301 +1.7% 0.98x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 115148 114503 -0.6% 1.01x (?)
ObjectiveCBridgeFromNSSetAnyObject 48837 49347 +1.0% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 4431 4392 -0.9% 1.01x (?)
ObjectiveCBridgeFromNSString 3099 3079 -0.6% 1.01x (?)
ObjectiveCBridgeFromNSStringForced 2685 2615 -2.6% 1.03x (?)
ObjectiveCBridgeStubDataAppend 6665 6588 -1.2% 1.01x (?)
ObjectiveCBridgeStubDateMutation 745 747 +0.3% 1.00x (?)
ObjectiveCBridgeStubFromArrayOfNSString2 3682 3516 -4.5% 1.05x (?)
ObjectiveCBridgeStubFromNSString 1087 1060 -2.5% 1.03x (?)
ObjectiveCBridgeStubNSDataAppend 3001 2968 -1.1% 1.01x (?)
ObjectiveCBridgeStubToArrayOfNSString2 3966 4033 +1.7% 0.98x (?)
ObjectiveCBridgeStubToNSDate2 1640 1591 -3.0% 1.03x (?)
ObjectiveCBridgeStubToNSString 2456 2420 -1.5% 1.01x
ObjectiveCBridgeStubToNSStringRef 150 151 +0.7% 0.99x (?)
ObjectiveCBridgeStubURLAppendPath2 2890 2885 -0.2% 1.00x (?)
ObjectiveCBridgeStubURLAppendPathRef2 2951 2930 -0.7% 1.01x (?)
ObjectiveCBridgeToNSArray 14883 15039 +1.0% 0.99x (?)
ObjectiveCBridgeToNSDictionary 29058 27868 -4.1% 1.04x (?)
ObjectiveCBridgeToNSSet 17958 18212 +1.4% 0.99x (?)
ObjectiveCBridgeToNSString 547 538 -1.6% 1.02x (?)
ObserverClosure 6399 6347 -0.8% 1.01x (?)
ObserverForwarderStruct 4188 4102 -2.1% 1.02x
ObserverPartiallyAppliedMethod 7861 7805 -0.7% 1.01x (?)
ObserverUnappliedMethod 7841 7789 -0.7% 1.01x (?)
OpaqueConsumingUsers 13418 13414 -0.0% 1.00x (?)
OpenClose 574 581 +1.2% 0.99x
Phonebook 15719 15912 +1.2% 0.99x
PointerArithmetics 415844 407471 -2.0% 1.02x
PolymorphicCalls 2400 2388 -0.5% 1.01x
PopFrontArray 4502 4496 -0.1% 1.00x (?)
PopFrontArrayGeneric 5620 5620 +0.0% 1.00x
PopFrontUnsafePointer 11971 12445 +4.0% 0.96x (?)
PrefixAnyCollection 16171 15999 -1.1% 1.01x (?)
PrefixAnySeqCRangeIter 20225 20170 -0.3% 1.00x (?)
PrefixAnySeqCRangeIterLazy 20198 20124 -0.4% 1.00x (?)
PrefixAnySeqCntRange 16211 16032 -1.1% 1.01x
PrefixAnySeqCntRangeLazy 16232 15963 -1.7% 1.02x
PrefixAnySequence 10010 10064 +0.5% 0.99x (?)
PrefixAnySequenceLazy 9910 10049 +1.4% 0.99x
PrefixArray 3526 3510 -0.5% 1.00x (?)
PrefixArrayLazy 30326 30371 +0.1% 1.00x (?)
PrefixCountableRange 350 353 +0.9% 0.99x
PrefixCountableRangeLazy 35844 35665 -0.5% 1.01x
PrefixSequence 9478 9714 +2.5% 0.98x
PrefixSequenceLazy 9467 9646 +1.9% 0.98x
PrefixWhileAnyCollection 30142 29661 -1.6% 1.02x
PrefixWhileAnyCollectionLazy 19942 19642 -1.5% 1.02x (?)
PrefixWhileAnySeqCRangeIter 33615 33551 -0.2% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 19757 19536 -1.1% 1.01x (?)
PrefixWhileAnySequence 25390 25669 +1.1% 0.99x
PrefixWhileAnySequenceLazy 10610 10744 +1.3% 0.99x (?)
PrefixWhileArray 10400 10350 -0.5% 1.00x (?)
PrefixWhileArrayLazy 11799 11826 +0.2% 1.00x (?)
PrefixWhileSequence 25300 25290 -0.0% 1.00x (?)
PrefixWhileSequenceLazy 10182 10434 +2.5% 0.98x
Prims 14503 13966 -3.7% 1.04x (?)
PrimsSplit 14071 14114 +0.3% 1.00x (?)
QueueConcrete 14069 14125 +0.4% 1.00x (?)
QueueGeneric 18730 18839 +0.6% 0.99x
RC4 13124 13108 -0.1% 1.00x (?)
RGBHistogram 22459 23500 +4.6% 0.96x (?)
RGBHistogramOfObjects 72529 75609 +4.2% 0.96x (?)
Radix2CooleyTukey 47225 46840 -0.8% 1.01x
Radix2CooleyTukeyf 41035 40852 -0.4% 1.00x (?)
RandomDoubleDef 84019 87878 +4.6% 0.96x (?)
RandomIntegersDef 43839 43684 -0.4% 1.00x (?)
RandomIntegersLCG 32542 32671 +0.4% 1.00x
RandomShuffleDef2 6833 6793 -0.6% 1.01x
RandomShuffleLCG2 42899 42829 -0.2% 1.00x
RangeAssignment 2815 2780 -1.2% 1.01x (?)
RangeIterationSigned 14727 14874 +1.0% 0.99x (?)
RangeReplaceableCollectionPlusDefault 11663 11622 -0.4% 1.00x (?)
RecursiveOwnedParameter 6055 6094 +0.6% 0.99x (?)
RemoveWhereFilterInts 2004 2007 +0.1% 1.00x (?)
RemoveWhereFilterString 1298 1291 -0.5% 1.01x (?)
RemoveWhereFilterStrings 2528 2531 +0.1% 1.00x (?)
RemoveWhereMoveInts 3144 3128 -0.5% 1.01x (?)
RemoveWhereMoveStrings 3984 3942 -1.1% 1.01x
RemoveWhereQuadraticInts 8228 8198 -0.4% 1.00x (?)
RemoveWhereQuadraticString 2460 2470 +0.4% 1.00x (?)
RemoveWhereQuadraticStrings 9867 9863 -0.0% 1.00x (?)
RemoveWhereSwapInts 5605 5583 -0.4% 1.00x (?)
RemoveWhereSwapStrings 6466 6533 +1.0% 0.99x
ReversedArray2 14048 14097 +0.3% 1.00x
ReversedBidirectional 43991 43918 -0.2% 1.00x (?)
ReversedDictionary2 15722 15454 -1.7% 1.02x
SequenceAlgosAnySequence 13558 13376 -1.3% 1.01x
SequenceAlgosArray 806869 806761 -0.0% 1.00x (?)
SequenceAlgosContiguousArray 303000 304243 +0.4% 1.00x (?)
SequenceAlgosList 8650 8593 -0.7% 1.01x
SequenceAlgosRange 1318785 1307017 -0.9% 1.01x
SequenceAlgosUnfoldSequence 6368 6410 +0.7% 0.99x (?)
SetExclusiveOr 12840 12738 -0.8% 1.01x (?)
SetExclusiveOr_OfObjects 39422 39349 -0.2% 1.00x (?)
SetIntersect 3818 3811 -0.2% 1.00x (?)
SetIntersectionBox0 823 821 -0.2% 1.00x
SetIntersectionBox25 1367 1373 +0.4% 1.00x (?)
SetIntersectionInt0 381 380 -0.3% 1.00x (?)
SetIntersectionInt100 1089 1064 -2.3% 1.02x
SetIntersectionInt25 576 570 -1.0% 1.01x (?)
SetIntersectionInt50 743 731 -1.6% 1.02x
SetIsSubsetBox0 1021 1019 -0.2% 1.00x (?)
SetIsSubsetBox25 1166 1167 +0.1% 1.00x (?)
SetIsSubsetInt0 740 733 -0.9% 1.01x (?)
SetIsSubsetInt100 1844 1834 -0.5% 1.01x (?)
SetIsSubsetInt25 489 505 +3.3% 0.97x
SetIsSubsetInt50 970 1005 +3.6% 0.97x
SetSubtractingBox0 903 890 -1.4% 1.01x (?)
SetSubtractingBox25 1256 1247 -0.7% 1.01x (?)
SetSubtractingInt0 514 506 -1.6% 1.02x (?)
SetSubtractingInt100 867 865 -0.2% 1.00x
SetSubtractingInt25 687 680 -1.0% 1.01x
SetSubtractingInt50 755 748 -0.9% 1.01x
SetSymmetricDifferenceBox0 3901 3875 -0.7% 1.01x (?)
SetSymmetricDifferenceBox25 2311 2298 -0.6% 1.01x (?)
SetSymmetricDifferenceInt0 1283 1271 -0.9% 1.01x (?)
SetSymmetricDifferenceInt100 1086 1081 -0.5% 1.00x
SetSymmetricDifferenceInt25 971 972 +0.1% 1.00x (?)
SetSymmetricDifferenceInt50 999 1004 +0.5% 1.00x
SetUnion 10256 10152 -1.0% 1.01x (?)
SetUnionBox0 2823 2821 -0.1% 1.00x (?)
SetUnionBox25 1494 1486 -0.5% 1.01x (?)
SetUnionInt0 1024 1025 +0.1% 1.00x (?)
SetUnionInt100 439 427 -2.7% 1.03x
SetUnionInt25 654 650 -0.6% 1.01x
SetUnionInt50 618 613 -0.8% 1.01x
SetUnion_OfObjects 28262 28307 +0.2% 1.00x (?)
SevenBoom 1089 1044 -4.1% 1.04x
Sim2DArray 30583 30594 +0.0% 1.00x (?)
SortAdjacentIntPyramids 201144 204213 +1.5% 0.98x
SortIntPyramid 237612 239494 +0.8% 0.99x
SortLargeExistentials 9846 9853 +0.1% 1.00x (?)
SortLettersInPlace 1578 1583 +0.3% 1.00x (?)
SortSortedStrings 874 858 -1.8% 1.02x
SortStrings 1824 1802 -1.2% 1.01x
SortStringsUnicode 2870 2745 -4.4% 1.05x
StackPromo 89206 92836 +4.1% 0.96x (?)
StaticArray 2283 2296 +0.6% 0.99x (?)
StrComplexWalk 6830 6834 +0.1% 1.00x (?)
StrToInt 78131 79275 +1.5% 0.99x (?)
StringAdder 742 748 +0.8% 0.99x
StringBuilder 4939 4959 +0.4% 1.00x (?)
StringBuilderLong 1448 1420 -1.9% 1.02x (?)
StringBuilderSmallReservingCapacity 4966 5175 +4.2% 0.96x
StringBuilderWithLongSubstring 3172 3269 +3.1% 0.97x (?)
StringComparison_ascii 8821 8810 -0.1% 1.00x (?)
StringComparison_zalgo 115275 114855 -0.4% 1.00x (?)
StringEdits 370278 357501 -3.5% 1.04x (?)
StringEqualPointerComparison 1775 1746 -1.6% 1.02x
StringFromLongWholeSubstring 22 22 +0.0% 1.00x
StringFromLongWholeSubstringGeneric 202 199 -1.5% 1.02x (?)
StringHasPrefixAscii 3246 3278 +1.0% 0.99x
StringHasPrefixUnicode 100198 100371 +0.2% 1.00x (?)
StringHasSuffixAscii 3293 3268 -0.8% 1.01x (?)
StringHasSuffixUnicode 100244 100514 +0.3% 1.00x (?)
StringHashing_ascii 212 209 -1.4% 1.01x (?)
StringHashing_emoji 2151 2190 +1.8% 0.98x (?)
StringHashing_fastPrenormal 8590 8804 +2.5% 0.98x
StringHashing_latin1 2776 2874 +3.5% 0.97x
StringHashing_longSharedPrefix 7743 7883 +1.8% 0.98x
StringHashing_slowerPrenormal 2978 3055 +2.6% 0.97x
StringHashing_zalgo 3622 3630 +0.2% 1.00x (?)
StringInterpolationManySmallSegments 18845 18555 -1.5% 1.02x (?)
StringInterpolationSmall 5799 5802 +0.1% 1.00x (?)
StringRemoveDupes 712 695 -2.4% 1.02x
StringUTF16Builder 7497 7488 -0.1% 1.00x (?)
StringWalk 13002 13532 +4.1% 0.96x
StringWordBuilder 2471 2494 +0.9% 0.99x
StringWordBuilderReservingCapacity 1840 1862 +1.2% 0.99x
SubstringComparable 1573 1573 +0.0% 1.00x
SubstringEqualString 1726 1733 +0.4% 1.00x (?)
SubstringEquatable 5296 5287 -0.2% 1.00x (?)
SubstringFromLongString 15 15 +0.0% 1.00x
SubstringFromLongStringGeneric 104 104 +0.0% 1.00x
SuffixAnyCollection 5416 5338 -1.4% 1.01x
SuffixAnyCollectionLazy 34960 34343 -1.8% 1.02x (?)
SuffixAnySeqCRangeIter 34789 34636 -0.4% 1.00x (?)
SuffixAnySeqCRangeIterLazy 34710 34650 -0.2% 1.00x (?)
SuffixAnySeqCntRange 5412 5322 -1.7% 1.02x
SuffixAnySeqCntRangeLazy 5417 5323 -1.7% 1.02x
SuffixAnySequence 23812 23725 -0.4% 1.00x
SuffixAnySequenceLazy 23799 23729 -0.3% 1.00x (?)
SuffixSequence 23651 23633 -0.1% 1.00x (?)
SuffixSequenceLazy 23613 23605 -0.0% 1.00x (?)
SumUsingReduce 155990 156183 +0.1% 1.00x (?)
SumUsingReduceInto 149661 149128 -0.4% 1.00x (?)
SuperChars 80054 79780 -0.3% 1.00x (?)
TwoSum 3693 3666 -0.7% 1.01x (?)
UTF8Decode 28965 29253 +1.0% 0.99x (?)
UTF8Decode_InitDecoding 1398 1418 +1.4% 0.99x (?)
UTF8Decode_InitFromBytes 1199 1199 +0.0% 1.00x
UTF8Decode_InitFromBytes_ascii 496 492 -0.8% 1.01x (?)
UTF8Decode_InitFromData 1255 1275 +1.6% 0.98x (?)
Walsh 7456 7363 -1.2% 1.01x (?)
WordCountHistogramUTF16 44251 42632 -3.7% 1.04x
WordCountUniqueASCII 6859 6807 -0.8% 1.01x
XorLoop 13255 13344 +0.7% 0.99x (?)
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

@rjmccall
Copy link
Contributor Author

@swift-ci Please test.

1 similar comment
@rjmccall
Copy link
Contributor Author

@swift-ci Please test.

@swift-ci
Copy link
Contributor

Build failed
Swift Test OS X Platform
Git Sha - 411fc9f24cc60dfaded7ecc813367cc820f7b13d

@swift-ci
Copy link
Contributor

Build failed
Swift Test Linux Platform
Git Sha - 411fc9f24cc60dfaded7ecc813367cc820f7b13d

@rjmccall
Copy link
Contributor Author

@swift-ci Please test with #18991.

@rjmccall
Copy link
Contributor Author

@swift-ci Please test.

@swift-ci
Copy link
Contributor

Build failed
Swift Test OS X Platform
Git Sha - b2f51c6a45ddcfced1977ba87ea082346d9a2655

@rjmccall
Copy link
Contributor Author

@swift-ci Please test OS X.

@rjmccall
Copy link
Contributor Author

@swift-ci Please test source compatibility.

1 similar comment
@rjmccall
Copy link
Contributor Author

@swift-ci Please test source compatibility.

For the most part, code should be working with the as-declared
abstraction pattern of the storage, because that's the pattern
produced by its accessors.  However, in the special case of an
accessor synthesized on demand to satisfy a protocol conformance,
that accessor will use the native abstraction pattern of the
declaration, and so the witness thunk that uses that accessor
must use that pattern when generating its access.

This doesn't matter today because the only on-demand synthesized
accessor is materializeForSet, and witnesses for materializeForSet
don't actually call the synthetic materializeForSet --- in fact,
nothing does.  But the modify accessor uses the otherwise-standard
pattern where the witness modify calls the concrete modify, and
that modify currently uses the native abstraction pattern.
As always, most of the work here went into working around the AST
representations of parameter and argument lists.
Most of this patch is just removing special cases for materializeForSet
or other fairly mechanical replacements.  Unfortunately, the rest is
still a fairly big change, and not one that can be easily split apart
because of the quite reasonable reliance on metaprogramming throughout
the compiler.  And, of course, there are a bunch of test updates that
have to be sync'ed with the actual change to code-generation.

This is SR-7134.
@rjmccall rjmccall force-pushed the dematerializeForSet branch from b2f51c6 to b80618f Compare August 27, 2018 07:24
@rjmccall
Copy link
Contributor Author

@swift-ci Please test.

@rjmccall
Copy link
Contributor Author

@swift-ci Please test source compatibility.

@rjmccall
Copy link
Contributor Author

@swift-ci Please test.

1 similar comment
@rjmccall
Copy link
Contributor Author

@swift-ci Please test.

@rjmccall
Copy link
Contributor Author

Please?

@rjmccall
Copy link
Contributor Author

@swift-ci Please test.

@swift-ci
Copy link
Contributor

Build failed
Swift Test OS X Platform
Git Sha - b80618f

@rjmccall
Copy link
Contributor Author

@swift-ci Please test OS X.

@rjmccall
Copy link
Contributor Author

@swift-ci Please smoke benchmark staging.

@swift-ci
Copy link
Contributor

!!! Couldn't read commit file !!!

@rjmccall
Copy link
Contributor Author

@swift-ci Please smoke benchmark staging.

@swift-ci
Copy link
Contributor

Build comment file:

Performance: -O

TEST OLD NEW DELTA SPEEDUP
Regression
UTF8Decode 302 343 +13.6% 0.88x
StringEqualPointerComparison 314 342 +8.9% 0.92x
Improvement
CharacterPropertiesPrecomputed 977 899 -8.0% 1.09x
AngryPhonebook 3825 3556 -7.0% 1.08x

Performance: -Osize

TEST OLD NEW DELTA SPEEDUP
Regression
UTF8Decode 318 381 +19.8% 0.83x
StringHashing_abnormal 1333 1439 +8.0% 0.93x
Improvement
CStringLongAscii 3543 3283 -7.3% 1.08x
AngryPhonebook 3834 3582 -6.6% 1.07x
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

@rjmccall
Copy link
Contributor Author

Internal performance analysis checks out. Looks good; merging.

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