Skip to content

[string] Only bridge tagged NSStrings to small string form. #16320

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 1 commit into from
May 4, 2018

Conversation

milseman
Copy link
Member

@milseman milseman commented May 2, 2018

Non-tagged NSStrings carry identity separate from their
value. Continue to bridge them lazily, even if they could fit in small
form, to respect this and avoid potential information loss.

@milseman
Copy link
Member Author

milseman commented May 2, 2018

@swift-ci please test

@swift-ci
Copy link
Contributor

swift-ci commented May 3, 2018

Build failed
Swift Test OS X Platform
Git Sha - e42c94f25403424bf0a549e91361f9cd0197fe7d

@milseman
Copy link
Member Author

milseman commented May 3, 2018

Out of curiosity:

@swift-ci please smoke benchmark

@swift-ci
Copy link
Contributor

swift-ci commented May 3, 2018

Build comment file:

Optimized (O)

Regression (5)
TEST OLD NEW DELTA SPEEDUP
DataAppendDataMediumToMedium 7889 8524 +8.0% 0.93x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 42920 46175 +7.6% 0.93x (?)
StringComparison_abnormal 796 854 +7.3% 0.93x (?)
COWTree 5367 5756 +7.2% 0.93x
ObjectiveCBridgeFromNSSetAnyObject 48597 51230 +5.4% 0.95x (?)
Improvement (7)
TEST OLD NEW DELTA SPEEDUP
ObjectiveCBridgeStubToNSDate 17251 15350 -11.0% 1.12x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 4887 4556 -6.8% 1.07x (?)
ObjectiveCBridgeStubFromArrayOfNSString 35473 33342 -6.0% 1.06x (?)
DataReplaceSmall 9288 8772 -5.6% 1.06x (?)
ObjectiveCBridgeStubNSDateMutationRef 13875 13132 -5.4% 1.06x (?)
CharIndexing_punctuatedJapanese_unicodeScalars 3313 3136 -5.3% 1.06x
StringEdits 180713 171321 -5.2% 1.05x (?)
No Changes (415)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 3998 3951 -1.2% 1.01x (?)
AnyHashableWithAClass 84808 84804 -0.0% 1.00x (?)
Array2D 2555 2552 -0.1% 1.00x (?)
ArrayAppend 1057 1066 +0.9% 0.99x (?)
ArrayAppendArrayOfInt 795 797 +0.3% 1.00x (?)
ArrayAppendAscii 4117 4094 -0.6% 1.01x (?)
ArrayAppendAsciiSubstring 157300 157682 +0.2% 1.00x (?)
ArrayAppendFromGeneric 799 798 -0.1% 1.00x (?)
ArrayAppendGenericStructs 1428 1426 -0.1% 1.00x
ArrayAppendLatin1 40126 40368 +0.6% 0.99x
ArrayAppendLatin1Substring 278096 278540 +0.2% 1.00x (?)
ArrayAppendLazyMap 1341 1340 -0.1% 1.00x (?)
ArrayAppendOptionals 1426 1426 +0.0% 1.00x
ArrayAppendRepeatCol 1367 1341 -1.9% 1.02x (?)
ArrayAppendReserved 797 796 -0.1% 1.00x (?)
ArrayAppendSequence 1120 1121 +0.1% 1.00x (?)
ArrayAppendStrings 6222 6225 +0.0% 1.00x (?)
ArrayAppendToFromGeneric 804 800 -0.5% 1.00x
ArrayAppendToGeneric 799 798 -0.1% 1.00x (?)
ArrayAppendUTF16 39316 39515 +0.5% 0.99x (?)
ArrayAppendUTF16Substring 285548 287710 +0.8% 0.99x (?)
ArrayInClass 86 86 +0.0% 1.00x
ArrayLiteral 0 0 +0.0% 1.00x
ArrayOfGenericPOD2 151 150 -0.7% 1.01x
ArrayOfGenericRef 4391 4379 -0.3% 1.00x (?)
ArrayOfPOD 183 183 +0.0% 1.00x
ArrayOfRef 4371 4380 +0.2% 1.00x (?)
ArrayPlusEqualArrayOfInt 800 797 -0.4% 1.00x
ArrayPlusEqualFiveElementCollection 5475 5473 -0.0% 1.00x (?)
ArrayPlusEqualSingleElementCollection 1064 1069 +0.5% 1.00x
ArrayPlusEqualThreeElements 1651 1648 -0.2% 1.00x (?)
ArraySubscript 1537 1534 -0.2% 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 25 25 +0.0% 1.00x
BinaryFloatingPointPropertiesNextUp 28 28 +0.0% 1.00x
BinaryFloatingPointPropertiesUlp 35 35 +0.0% 1.00x
BitCount 202 202 +0.0% 1.00x
ByteSwap 105 104 -1.0% 1.01x
CSVParsing 735521 731435 -0.6% 1.01x
CSVParsingAlt 788451 791270 +0.4% 1.00x
CSVParsingAltIndices 344669 345330 +0.2% 1.00x (?)
CStringLongAscii 4636 4645 +0.2% 1.00x (?)
CStringLongNonAscii 2288 2280 -0.3% 1.00x (?)
CStringShortAscii 3199 3210 +0.3% 1.00x (?)
Calculator 1137 1130 -0.6% 1.01x
CaptureProp 4124 4115 -0.2% 1.00x
ChainedFilterMap 1408 1409 +0.1% 1.00x
CharIndexing_ascii_unicodeScalars 17354 17455 +0.6% 0.99x
CharIndexing_ascii_unicodeScalars_Backwards 16363 16361 -0.0% 1.00x (?)
CharIndexing_chinese_unicodeScalars 13144 13143 -0.0% 1.00x (?)
CharIndexing_chinese_unicodeScalars_Backwards 12401 12393 -0.1% 1.00x
CharIndexing_japanese_unicodeScalars 20785 20794 +0.0% 1.00x (?)
CharIndexing_japanese_unicodeScalars_Backwards 19596 19593 -0.0% 1.00x (?)
CharIndexing_korean_unicodeScalars 16846 16844 -0.0% 1.00x (?)
CharIndexing_korean_unicodeScalars_Backwards 15876 15863 -0.1% 1.00x (?)
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 2970 2970 +0.0% 1.00x
CharIndexing_punctuated_unicodeScalars 3920 3918 -0.1% 1.00x (?)
CharIndexing_punctuated_unicodeScalars_Backwards 3718 3717 -0.0% 1.00x (?)
CharIndexing_russian_unicodeScalars 14465 14469 +0.0% 1.00x (?)
CharIndexing_russian_unicodeScalars_Backwards 13637 13628 -0.1% 1.00x (?)
CharIndexing_tweet_unicodeScalars 33821 33845 +0.1% 1.00x (?)
CharIndexing_tweet_unicodeScalars_Backwards 32259 32298 +0.1% 1.00x (?)
CharIndexing_utf16_unicodeScalars 23054 23057 +0.0% 1.00x (?)
CharIndexing_utf16_unicodeScalars_Backwards 23324 23349 +0.1% 1.00x
CharIteration_ascii_unicodeScalars 21499 21566 +0.3% 1.00x
CharIteration_ascii_unicodeScalars_Backwards 15109 15112 +0.0% 1.00x (?)
CharIteration_chinese_unicodeScalars 16273 16402 +0.8% 0.99x
CharIteration_chinese_unicodeScalars_Backwards 11450 11445 -0.0% 1.00x (?)
CharIteration_japanese_unicodeScalars 25750 25873 +0.5% 1.00x
CharIteration_japanese_unicodeScalars_Backwards 18092 18110 +0.1% 1.00x (?)
CharIteration_korean_unicodeScalars 20865 20907 +0.2% 1.00x
CharIteration_korean_unicodeScalars_Backwards 14653 14647 -0.0% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars 3866 3833 -0.9% 1.01x
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 2738 2738 +0.0% 1.00x
CharIteration_punctuated_unicodeScalars 4824 4824 +0.0% 1.00x
CharIteration_punctuated_unicodeScalars_Backwards 3427 3426 -0.0% 1.00x (?)
CharIteration_russian_unicodeScalars 17916 17974 +0.3% 1.00x
CharIteration_russian_unicodeScalars_Backwards 12587 12589 +0.0% 1.00x (?)
CharIteration_tweet_unicodeScalars 42457 42691 +0.6% 0.99x
CharIteration_tweet_unicodeScalars_Backwards 29857 29838 -0.1% 1.00x (?)
CharIteration_utf16_unicodeScalars 28117 27968 -0.5% 1.01x
CharIteration_utf16_unicodeScalars_Backwards 18641 18612 -0.2% 1.00x
CharacterLiteralsLarge 5828 5843 +0.3% 1.00x (?)
CharacterLiteralsSmall 217 217 +0.0% 1.00x
CharacterPropertiesFetch 4565 4546 -0.4% 1.00x (?)
CharacterPropertiesPrecomputed 1110 1110 +0.0% 1.00x
CharacterPropertiesStashed 1466 1477 +0.8% 0.99x (?)
CharacterPropertiesStashedMemo 1546 1544 -0.1% 1.00x (?)
Chars 1093 1094 +0.1% 1.00x (?)
ClassArrayGetter 15 15 +0.0% 1.00x
Combos 487 485 -0.4% 1.00x
DataAccessBytes 1241 1236 -0.4% 1.00x (?)
DataAppendArray 6416 6341 -1.2% 1.01x (?)
DataAppendBytes 6016 6000 -0.3% 1.00x (?)
DataAppendDataLargeToLarge 71907 72180 +0.4% 1.00x (?)
DataAppendDataLargeToMedium 36637 36970 +0.9% 0.99x (?)
DataAppendDataLargeToSmall 36034 36028 -0.0% 1.00x (?)
DataAppendDataMediumToLarge 39594 39613 +0.0% 1.00x (?)
DataAppendDataMediumToSmall 7361 7282 -1.1% 1.01x (?)
DataAppendDataSmallToLarge 38959 38639 -0.8% 1.01x (?)
DataAppendDataSmallToMedium 7832 7979 +1.9% 0.98x (?)
DataAppendDataSmallToSmall 7357 7078 -3.8% 1.04x (?)
DataAppendSequence 21212 21286 +0.3% 1.00x (?)
DataCopyBytes 2533 2546 +0.5% 0.99x
DataCount 38 38 +0.0% 1.00x
DataMutateBytes 4386 4444 +1.3% 0.99x (?)
DataReplaceLarge 41588 41667 +0.2% 1.00x (?)
DataReplaceLargeBuffer 60822 61287 +0.8% 0.99x
DataReplaceMedium 12615 12270 -2.7% 1.03x (?)
DataReplaceMediumBuffer 15182 15720 +3.5% 0.97x (?)
DataReplaceSmallBuffer 11732 11702 -0.3% 1.00x (?)
DataReset 3196 3269 +2.3% 0.98x (?)
DataSetCount 910 910 +0.0% 1.00x
DataSubscript 238 238 +0.0% 1.00x
DictOfArraysToArrayOfDicts 814 810 -0.5% 1.00x (?)
Dictionary 697 694 -0.4% 1.00x
Dictionary2 806 802 -0.5% 1.00x (?)
Dictionary2OfObjects 2213 2227 +0.6% 0.99x (?)
Dictionary3 257 253 -1.6% 1.02x
Dictionary3OfObjects 764 764 +0.0% 1.00x
Dictionary4 342 342 +0.0% 1.00x
Dictionary4Legacy 730 728 -0.3% 1.00x (?)
Dictionary4OfObjects 457 451 -1.3% 1.01x (?)
Dictionary4OfObjectsLegacy 948 946 -0.2% 1.00x
DictionaryBridge 1199 1202 +0.3% 1.00x (?)
DictionaryCopy 107177 107762 +0.5% 0.99x
DictionaryFilter 106816 107539 +0.7% 0.99x
DictionaryGroup 215 215 +0.0% 1.00x
DictionaryGroupOfObjects 2144 2158 +0.7% 0.99x
DictionaryLiteral 1911 1941 +1.6% 0.98x (?)
DictionaryOfObjects 2456 2442 -0.6% 1.01x (?)
DictionaryRemove 4218 4220 +0.0% 1.00x (?)
DictionaryRemoveOfObjects 26390 26283 -0.4% 1.00x (?)
DictionarySubscriptDefaultMutation 266 266 +0.0% 1.00x
DictionarySubscriptDefaultMutationArray 621 620 -0.2% 1.00x
DictionarySubscriptDefaultMutationArrayOfObjects 4032 4050 +0.4% 1.00x (?)
DictionarySubscriptDefaultMutationOfObjects 1713 1723 +0.6% 0.99x
DictionarySwap 1042 1041 -0.1% 1.00x
DictionarySwapAt 6747 6776 +0.4% 1.00x (?)
DictionarySwapAtOfObjects 52361 53263 +1.7% 0.98x (?)
DictionarySwapOfObjects 8479 8685 +2.4% 0.98x
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollection 84 84 +0.0% 1.00x
DropFirstAnyCollectionLazy 63149 63289 +0.2% 1.00x (?)
DropFirstAnySeqCRangeIter 21455 21346 -0.5% 1.01x
DropFirstAnySeqCRangeIterLazy 21443 21382 -0.3% 1.00x
DropFirstAnySeqCntRange 41 41 +0.0% 1.00x
DropFirstAnySeqCntRangeLazy 41 41 +0.0% 1.00x
DropFirstAnySequence 5021 5026 +0.1% 1.00x
DropFirstAnySequenceLazy 5025 5020 -0.1% 1.00x (?)
DropFirstArray 35 35 +0.0% 1.00x
DropFirstArrayLazy 35 35 +0.0% 1.00x
DropFirstCountableRange 35 35 +0.0% 1.00x
DropFirstCountableRangeLazy 35 35 +0.0% 1.00x
DropFirstSequence 2680 2681 +0.0% 1.00x (?)
DropFirstSequenceLazy 2774 2776 +0.1% 1.00x
DropLastAnyCollection 31 31 +0.0% 1.00x
DropLastAnyCollectionLazy 20870 21346 +2.3% 0.98x (?)
DropLastAnySeqCRangeIter 3653 3643 -0.3% 1.00x (?)
DropLastAnySeqCRangeIterLazy 3662 3642 -0.5% 1.01x (?)
DropLastAnySeqCntRange 13 13 +0.0% 1.00x
DropLastAnySeqCntRangeLazy 13 13 +0.0% 1.00x
DropLastAnySequence 5046 5035 -0.2% 1.00x (?)
DropLastAnySequenceLazy 5179 5179 +0.0% 1.00x
DropLastCountableRange 12 12 +0.0% 1.00x
DropLastCountableRangeLazy 11 11 +0.0% 1.00x
DropLastSequence 575 575 +0.0% 1.00x
DropLastSequenceLazy 575 575 +0.0% 1.00x
DropWhileAnyCollection 107 107 +0.0% 1.00x
DropWhileAnyCollectionLazy 125 125 +0.0% 1.00x
DropWhileAnySeqCRangeIter 16803 16730 -0.4% 1.00x
DropWhileAnySeqCRangeIterLazy 125 125 +0.0% 1.00x
DropWhileAnySeqCntRange 51 51 +0.0% 1.00x
DropWhileAnySeqCntRangeLazy 125 125 +0.0% 1.00x
DropWhileAnySequence 4843 4855 +0.2% 1.00x
DropWhileAnySequenceLazy 1858 1855 -0.2% 1.00x (?)
DropWhileArrayLazy 88 88 +0.0% 1.00x
DropWhileCountableRange 36 36 +0.0% 1.00x
DropWhileCountableRangeLazy 105 105 +0.0% 1.00x
DropWhileSequence 2213 2213 +0.0% 1.00x
DropWhileSequenceLazy 88 88 +0.0% 1.00x
EqualStringSubstring 56 56 +0.0% 1.00x
EqualSubstringString 64 65 +1.6% 0.98x (?)
EqualSubstringSubstring 48 49 +2.1% 0.98x
EqualSubstringSubstringGenericEquatable 48 49 +2.1% 0.98x
ErrorHandling 1520 1511 -0.6% 1.01x
ExclusivityGlobal 5 5 +0.0% 1.00x
ExclusivityIndependent 2 2 +0.0% 1.00x
FatCompactMap 205229 205464 +0.1% 1.00x (?)
FilterEvenUsingReduce 1300 1318 +1.4% 0.99x (?)
FilterEvenUsingReduceInto 148 147 -0.7% 1.01x (?)
FloatingPointPrinting_Double_description_small 23650 23670 +0.1% 1.00x (?)
FloatingPointPrinting_Double_description_uniform 23435 23210 -1.0% 1.01x
FloatingPointPrinting_Double_interpolated 77578 79036 +1.9% 0.98x (?)
FloatingPointPrinting_Float80_description_small 30723 30950 +0.7% 0.99x (?)
FloatingPointPrinting_Float80_description_uniform 29665 29724 +0.2% 1.00x (?)
FloatingPointPrinting_Float80_interpolated 81771 81881 +0.1% 1.00x (?)
FloatingPointPrinting_Float_description_small 5257 5254 -0.1% 1.00x (?)
FloatingPointPrinting_Float_description_uniform 4965 4970 +0.1% 1.00x (?)
FloatingPointPrinting_Float_interpolated 53497 52569 -1.7% 1.02x (?)
FrequenciesUsingReduce 4932 5070 +2.8% 0.97x
FrequenciesUsingReduceInto 1553 1535 -1.2% 1.01x (?)
Hanoi 2183 2175 -0.4% 1.00x (?)
HashTest 1054 1041 -1.2% 1.01x
Histogram 706 706 +0.0% 1.00x
Integrate 342 341 -0.3% 1.00x
IterateData 1967 1965 -0.1% 1.00x (?)
Join 189 185 -2.1% 1.02x
LazilyFilteredArrayContains 36672 36672 +0.0% 1.00x
LazilyFilteredArrays 67163 67046 -0.2% 1.00x (?)
LazilyFilteredRange 3887 3883 -0.1% 1.00x (?)
LessSubstringSubstring 48 49 +2.1% 0.98x
LessSubstringSubstringGenericComparable 48 49 +2.1% 0.98x
LinkedList 7564 7585 +0.3% 1.00x (?)
LuhnAlgoEager 299 298 -0.3% 1.00x (?)
LuhnAlgoLazy 298 297 -0.3% 1.00x
MapReduce 398 399 +0.3% 1.00x (?)
MapReduceAnyCollection 401 401 +0.0% 1.00x
MapReduceAnyCollectionShort 2278 2257 -0.9% 1.01x
MapReduceClass 2996 2997 +0.0% 1.00x (?)
MapReduceClassShort 4570 4564 -0.1% 1.00x (?)
MapReduceLazyCollection 13 13 +0.0% 1.00x
MapReduceLazyCollectionShort 37 37 +0.0% 1.00x
MapReduceLazySequence 86 86 +0.0% 1.00x
MapReduceSequence 454 459 +1.1% 0.99x (?)
MapReduceShort 2001 2014 +0.6% 0.99x
MapReduceShortString 30 30 +0.0% 1.00x
MapReduceString 80 80 +0.0% 1.00x
Memset 215 218 +1.4% 0.99x (?)
MonteCarloE 10383 10372 -0.1% 1.00x
MonteCarloPi 42785 42811 +0.1% 1.00x
NSDictionaryCastToSwift 7162 7189 +0.4% 1.00x (?)
NSError 174 174 +0.0% 1.00x
NSStringConversion 694 693 -0.1% 1.00x (?)
NibbleSort 3672 3673 +0.0% 1.00x (?)
NopDeinit 32376 32375 -0.0% 1.00x (?)
ObjectAllocation 133 132 -0.8% 1.01x (?)
ObjectiveCBridgeFromNSArrayAnyObject 26821 25806 -3.8% 1.04x
ObjectiveCBridgeFromNSArrayAnyObjectToString 46447 45313 -2.4% 1.03x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 112411 111225 -1.1% 1.01x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 4802 4799 -0.1% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 68776 68774 -0.0% 1.00x (?)
ObjectiveCBridgeFromNSString 1205 1182 -1.9% 1.02x
ObjectiveCBridgeFromNSStringForced 2706 2727 +0.8% 0.99x (?)
ObjectiveCBridgeStubDataAppend 11759 11895 +1.2% 0.99x (?)
ObjectiveCBridgeStubDateMutation 401 401 +0.0% 1.00x
ObjectiveCBridgeStubFromNSDate 6513 6521 +0.1% 1.00x (?)
ObjectiveCBridgeStubFromNSString 1026 1009 -1.7% 1.02x (?)
ObjectiveCBridgeStubFromNSStringRef 155 156 +0.6% 0.99x (?)
ObjectiveCBridgeStubNSDataAppend 2651 2600 -1.9% 1.02x (?)
ObjectiveCBridgeStubToArrayOfNSString 40977 39140 -4.5% 1.05x
ObjectiveCBridgeStubToNSDateRef 3420 3435 +0.4% 1.00x (?)
ObjectiveCBridgeStubToNSString 2390 2386 -0.2% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 115 115 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 293725 296182 +0.8% 0.99x (?)
ObjectiveCBridgeStubURLAppendPathRef 299990 292415 -2.5% 1.03x (?)
ObjectiveCBridgeToNSArray 15706 15773 +0.4% 1.00x (?)
ObjectiveCBridgeToNSDictionary 26675 26974 +1.1% 0.99x (?)
ObjectiveCBridgeToNSSet 17122 16983 -0.8% 1.01x (?)
ObjectiveCBridgeToNSString 493 493 +0.0% 1.00x
ObserverClosure 2163 2151 -0.6% 1.01x (?)
ObserverForwarderStruct 1262 1252 -0.8% 1.01x
ObserverPartiallyAppliedMethod 3774 3770 -0.1% 1.00x (?)
ObserverUnappliedMethod 2612 2605 -0.3% 1.00x
OpenClose 282 285 +1.1% 0.99x
PartialApplyDynamicType 0 0 +0.0% 1.00x
Phonebook 4587 4607 +0.4% 1.00x
PointerArithmetics 34353 34379 +0.1% 1.00x (?)
PolymorphicCalls 25 25 +0.0% 1.00x
PopFrontArray 1970 1983 +0.7% 0.99x (?)
PopFrontArrayGeneric 1980 1980 +0.0% 1.00x
PopFrontUnsafePointer 9626 9531 -1.0% 1.01x (?)
PrefixAnyCollection 84 83 -1.2% 1.01x
PrefixAnyCollectionLazy 62306 63400 +1.8% 0.98x
PrefixAnySeqCRangeIter 16702 16640 -0.4% 1.00x (?)
PrefixAnySeqCRangeIterLazy 16703 16655 -0.3% 1.00x (?)
PrefixAnySeqCntRange 28 28 +0.0% 1.00x
PrefixAnySeqCntRangeLazy 28 28 +0.0% 1.00x
PrefixAnySequence 4324 4330 +0.1% 1.00x (?)
PrefixAnySequenceLazy 4326 4321 -0.1% 1.00x (?)
PrefixArray 35 35 +0.0% 1.00x
PrefixArrayLazy 35 35 +0.0% 1.00x
PrefixCountableRange 35 35 +0.0% 1.00x
PrefixCountableRangeLazy 35 35 +0.0% 1.00x
PrefixSequence 2219 2219 +0.0% 1.00x
PrefixSequenceLazy 2276 2275 -0.0% 1.00x (?)
PrefixWhileAnyCollection 154 154 +0.0% 1.00x
PrefixWhileAnyCollectionLazy 90 90 +0.0% 1.00x
PrefixWhileAnySeqCRangeIter 9008 9042 +0.4% 1.00x
PrefixWhileAnySeqCRangeIterLazy 72 73 +1.4% 0.99x
PrefixWhileAnySeqCntRange 60 60 +0.0% 1.00x
PrefixWhileAnySeqCntRangeLazy 90 90 +0.0% 1.00x
PrefixWhileAnySequence 10165 10164 -0.0% 1.00x (?)
PrefixWhileAnySequenceLazy 1393 1393 +0.0% 1.00x
PrefixWhileArray 88 88 +0.0% 1.00x
PrefixWhileArrayLazy 70 70 +0.0% 1.00x
PrefixWhileCountableRange 36 36 +0.0% 1.00x
PrefixWhileCountableRangeLazy 35 35 +0.0% 1.00x
PrefixWhileSequence 361 360 -0.3% 1.00x (?)
PrefixWhileSequenceLazy 52 52 +0.0% 1.00x
Prims 915 904 -1.2% 1.01x (?)
PrimsSplit 919 914 -0.5% 1.01x (?)
QueueConcrete 1149 1151 +0.2% 1.00x
QueueGeneric 1148 1148 +0.0% 1.00x
RC4 170 170 +0.0% 1.00x
RGBHistogram 3218 3214 -0.1% 1.00x (?)
RGBHistogramOfObjects 23704 23782 +0.3% 1.00x (?)
RangeAssignment 355 356 +0.3% 1.00x (?)
RangeIterationSigned 171 171 +0.0% 1.00x
RangeReplaceableCollectionPlusDefault 982 983 +0.1% 1.00x (?)
RecursiveOwnedParameter 115 115 +0.0% 1.00x
RemoveWhereFilterInts 43 43 +0.0% 1.00x
RemoveWhereFilterString 328 327 -0.3% 1.00x (?)
RemoveWhereFilterStrings 435 436 +0.2% 1.00x (?)
RemoveWhereMoveInts 15 15 +0.0% 1.00x
RemoveWhereMoveStrings 707 707 +0.0% 1.00x
RemoveWhereQuadraticInts 1291 1289 -0.2% 1.00x (?)
RemoveWhereQuadraticString 492 485 -1.4% 1.01x
RemoveWhereQuadraticStrings 2754 2755 +0.0% 1.00x (?)
RemoveWhereSwapInts 19 19 +0.0% 1.00x
RemoveWhereSwapStrings 862 859 -0.3% 1.00x
ReversedArray 58 58 +0.0% 1.00x
ReversedBidirectional 16449 16593 +0.9% 0.99x
ReversedDictionary 270 268 -0.7% 1.01x (?)
RomanNumbers 141202 140580 -0.4% 1.00x (?)
SequenceAlgosAnySequence 11897 11851 -0.4% 1.00x (?)
SequenceAlgosArray 1579 1581 +0.1% 1.00x (?)
SequenceAlgosContiguousArray 1580 1579 -0.1% 1.00x (?)
SequenceAlgosList 1357 1351 -0.4% 1.00x (?)
SequenceAlgosRange 2576 2577 +0.0% 1.00x (?)
SequenceAlgosUnfoldSequence 1102 1103 +0.1% 1.00x (?)
SetExclusiveOr 5290 5287 -0.1% 1.00x (?)
SetExclusiveOr_OfObjects 11930 11862 -0.6% 1.01x
SetIntersect 700 700 +0.0% 1.00x
SetIntersect_OfObjects 1580 1564 -1.0% 1.01x (?)
SetIsSubsetOf 353 354 +0.3% 1.00x (?)
SetIsSubsetOf_OfObjects 439 439 +0.0% 1.00x
SetUnion 4570 4543 -0.6% 1.01x (?)
SetUnion_OfObjects 10321 10361 +0.4% 1.00x (?)
SevenBoom 886 885 -0.1% 1.00x (?)
Sim2DArray 670 666 -0.6% 1.01x
SortLargeExistentials 5961 5988 +0.5% 1.00x
SortLettersInPlace 1055 1034 -2.0% 1.02x
SortSortedStrings 994 995 +0.1% 1.00x (?)
SortStrings 1943 1941 -0.1% 1.00x (?)
SortStringsUnicode 2460 2447 -0.5% 1.01x
StackPromo 22985 22931 -0.2% 1.00x (?)
StaticArray 9 9 +0.0% 1.00x
StrComplexWalk 1787 1789 +0.1% 1.00x (?)
StrToInt 2837 2883 +1.6% 0.98x
StringAdder 746 746 +0.0% 1.00x
StringBuilder 774 774 +0.0% 1.00x
StringBuilderLong 1275 1257 -1.4% 1.01x (?)
StringBuilderWithLongSubstring 1438 1494 +3.9% 0.96x (?)
StringComparison_ascii 1258 1260 +0.2% 1.00x (?)
StringComparison_emoji 802 808 +0.7% 0.99x
StringComparison_fastPrenormal 795 801 +0.8% 0.99x
StringComparison_latin1 624 627 +0.5% 1.00x
StringComparison_longSharedPrefix 926 931 +0.5% 0.99x
StringComparison_nonBMPSlowestPrenormal 1596 1603 +0.4% 1.00x (?)
StringComparison_slowerPrenormal 1662 1691 +1.7% 0.98x
StringComparison_zalgo 124118 124830 +0.6% 0.99x (?)
StringEnumRawValueInitialization 948 954 +0.6% 0.99x
StringEqualPointerComparison 286 286 +0.0% 1.00x
StringFromLongWholeSubstring 21 21 +0.0% 1.00x
StringFromLongWholeSubstringGeneric 21 21 +0.0% 1.00x
StringHasPrefixAscii 2061 2063 +0.1% 1.00x
StringHasPrefixUnicode 110242 110194 -0.0% 1.00x (?)
StringHasSuffixAscii 2217 2205 -0.5% 1.01x
StringHasSuffixUnicode 114661 114346 -0.3% 1.00x
StringInterpolation 10398 10471 +0.7% 0.99x (?)
StringInterpolationManySmallSegments 19311 19312 +0.0% 1.00x (?)
StringInterpolationSmall 7009 6803 -2.9% 1.03x (?)
StringMatch 11547 11511 -0.3% 1.00x (?)
StringRemoveDupes 689 691 +0.3% 1.00x
StringUTF16Builder 2780 2770 -0.4% 1.00x (?)
StringUTF16SubstringBuilder 6091 6085 -0.1% 1.00x (?)
StringWalk 1433 1433 +0.0% 1.00x
StringWithCString 40786 40817 +0.1% 1.00x (?)
StringWordBuilder 2389 2329 -2.5% 1.03x
StringWordBuilderReservingCapacity 2105 2023 -3.9% 1.04x
SubstringComparable 26 26 +0.0% 1.00x
SubstringEqualString 793 792 -0.1% 1.00x (?)
SubstringEquatable 1443 1424 -1.3% 1.01x
SubstringFromLongString 10 10 +0.0% 1.00x
SubstringFromLongStringGeneric 75 75 +0.0% 1.00x
SuffixAnyCollection 31 31 +0.0% 1.00x
SuffixAnyCollectionLazy 21116 21105 -0.1% 1.00x (?)
SuffixAnySeqCRangeIter 3850 3870 +0.5% 0.99x
SuffixAnySeqCRangeIterLazy 3845 3844 -0.0% 1.00x (?)
SuffixAnySeqCntRange 21 21 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 21 21 +0.0% 1.00x
SuffixAnySequence 5049 5043 -0.1% 1.00x (?)
SuffixAnySequenceLazy 5171 5170 -0.0% 1.00x (?)
SuffixCountableRange 11 11 +0.0% 1.00x
SuffixCountableRangeLazy 11 11 +0.0% 1.00x
SuffixSequence 3751 3761 +0.3% 1.00x (?)
SuffixSequenceLazy 3746 3747 +0.0% 1.00x (?)
SumUsingReduce 101 101 +0.0% 1.00x
SumUsingReduceInto 97 97 +0.0% 1.00x
SuperChars 14823 14859 +0.2% 1.00x (?)
TwoSum 1473 1478 +0.3% 1.00x
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode 294 294 +0.0% 1.00x
Walsh 429 428 -0.2% 1.00x
WordCountHistogramASCII 7690 7665 -0.3% 1.00x (?)
WordCountHistogramUTF16 14167 14335 +1.2% 0.99x (?)
WordCountUniqueASCII 2170 2204 +1.6% 0.98x
WordCountUniqueUTF16 7422 7491 +0.9% 0.99x (?)
WordSplitASCII 6630 6532 -1.5% 1.02x (?)
WordSplitUTF16 8339 8671 +4.0% 0.96x
XorLoop 401 400 -0.2% 1.00x (?)

Unoptimized (Onone)

Regression (20)
TEST OLD NEW DELTA SPEEDUP
CharacterPropertiesFetch 5634 6939 +23.2% 0.81x
ObjectiveCBridgeFromNSSetAnyObjectForced 5861 6613 +12.8% 0.89x
CharIndexing_japanese_unicodeScalars 390555 432519 +10.7% 0.90x
CharIndexing_tweet_unicodeScalars 643401 710851 +10.5% 0.91x
CharIndexing_russian_unicodeScalars 270005 298146 +10.4% 0.91x
CharIndexing_korean_unicodeScalars 314572 347208 +10.4% 0.91x
CharIndexing_chinese_unicodeScalars 244181 267781 +9.7% 0.91x
NSError 607 665 +9.6% 0.91x
CharIndexing_punctuatedJapanese_unicodeScalars 58050 63205 +8.9% 0.92x
CharIndexing_ascii_unicodeScalars 325681 354112 +8.7% 0.92x (?)
ObjectiveCBridgeStubToNSString 2438 2638 +8.2% 0.92x (?)
CharIndexing_punctuated_unicodeScalars 72865 78666 +8.0% 0.93x (?)
StringInterpolationSmall 8428 9063 +7.5% 0.93x
PopFrontUnsafePointer 10433 11215 +7.5% 0.93x (?)
FloatingPointPrinting_Float_interpolated 72681 78083 +7.4% 0.93x (?)
CharIndexing_utf16_unicodeScalars 284155 303872 +6.9% 0.94x
DataSetCount 595 636 +6.9% 0.94x
StringEdits 388104 410032 +5.7% 0.95x (?)
FloatingPointPrinting_Float80_interpolated 130469 137662 +5.5% 0.95x
ObjectiveCBridgeToNSArray 15405 16244 +5.4% 0.95x (?)
Improvement (12)
TEST OLD NEW DELTA SPEEDUP
TypeFlood 225 201 -10.7% 1.12x (?)
StringBuilderWithLongSubstring 5587 5006 -10.4% 1.12x
FloatingPointPrinting_Double_interpolated 109418 98693 -9.8% 1.11x
DataAppendDataSmallToSmall 6378 5869 -8.0% 1.09x
StringBuilder 5965 5520 -7.5% 1.08x
DataReplaceMediumBuffer 17038 15777 -7.4% 1.08x
DataReplaceMedium 10048 9325 -7.2% 1.08x (?)
LuhnAlgoLazy 5760 5386 -6.5% 1.07x
ObjectiveCBridgeFromNSArrayAnyObjectToString 53032 49680 -6.3% 1.07x (?)
PrefixAnyCollectionLazy 105003 99137 -5.6% 1.06x (?)
DataAppendDataMediumToMedium 7432 7054 -5.1% 1.05x
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 46963 44693 -4.8% 1.05x (?)
No Changes (395)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 5779 6080 +5.2% 0.95x (?)
AnyHashableWithAClass 101775 101771 -0.0% 1.00x (?)
Array2D 637457 637687 +0.0% 1.00x (?)
ArrayAppend 4332 4328 -0.1% 1.00x (?)
ArrayAppendArrayOfInt 867 865 -0.2% 1.00x (?)
ArrayAppendAscii 28786 28776 -0.0% 1.00x (?)
ArrayAppendAsciiSubstring 189786 189431 -0.2% 1.00x (?)
ArrayAppendFromGeneric 871 871 +0.0% 1.00x
ArrayAppendGenericStructs 1506 1504 -0.1% 1.00x (?)
ArrayAppendLatin1 66260 66485 +0.3% 1.00x
ArrayAppendLatin1Substring 319824 319381 -0.1% 1.00x (?)
ArrayAppendLazyMap 171530 170821 -0.4% 1.00x
ArrayAppendOptionals 1505 1505 +0.0% 1.00x
ArrayAppendRepeatCol 184866 188248 +1.8% 0.98x (?)
ArrayAppendReserved 4176 4176 +0.0% 1.00x
ArrayAppendSequence 103873 103764 -0.1% 1.00x (?)
ArrayAppendStrings 6343 6345 +0.0% 1.00x (?)
ArrayAppendToFromGeneric 870 870 +0.0% 1.00x
ArrayAppendToGeneric 876 873 -0.3% 1.00x (?)
ArrayAppendUTF16 66617 66587 -0.0% 1.00x (?)
ArrayAppendUTF16Substring 322664 323402 +0.2% 1.00x (?)
ArrayInClass 6205 6202 -0.0% 1.00x (?)
ArrayLiteral 1810 1823 +0.7% 0.99x
ArrayOfGenericPOD2 1072 1073 +0.1% 1.00x (?)
ArrayOfGenericRef 10877 11062 +1.7% 0.98x (?)
ArrayOfPOD 759 759 +0.0% 1.00x
ArrayOfRef 9977 10033 +0.6% 0.99x (?)
ArrayPlusEqualArrayOfInt 870 870 +0.0% 1.00x
ArrayPlusEqualFiveElementCollection 240138 241162 +0.4% 1.00x (?)
ArrayPlusEqualSingleElementCollection 241542 243305 +0.7% 0.99x (?)
ArrayPlusEqualThreeElements 9704 9349 -3.7% 1.04x
ArraySubscript 107649 106291 -1.3% 1.01x
ArrayValueProp 3692 3708 +0.4% 1.00x (?)
ArrayValueProp2 15299 15303 +0.0% 1.00x (?)
ArrayValueProp3 4205 4226 +0.5% 1.00x (?)
ArrayValueProp4 4126 4131 +0.1% 1.00x (?)
BinaryFloatingPointPropertiesBinade 85 85 +0.0% 1.00x
BinaryFloatingPointPropertiesNextUp 131 131 +0.0% 1.00x
BinaryFloatingPointPropertiesUlp 128 128 +0.0% 1.00x
BitCount 8780 8784 +0.0% 1.00x (?)
ByteSwap 9650 9660 +0.1% 1.00x (?)
COWTree 12167 12212 +0.4% 1.00x (?)
CSVParsing 2969424 2940156 -1.0% 1.01x (?)
CSVParsingAlt 1438201 1416260 -1.5% 1.02x (?)
CSVParsingAltIndices 2369421 2402940 +1.4% 0.99x (?)
CStringLongAscii 5546 5537 -0.2% 1.00x (?)
CStringLongNonAscii 2623 2592 -1.2% 1.01x (?)
CStringShortAscii 6329 6323 -0.1% 1.00x (?)
Calculator 2047 2048 +0.0% 1.00x
CaptureProp 276757 277421 +0.2% 1.00x (?)
ChainedFilterMap 235105 236009 +0.4% 1.00x (?)
CharIndexing_ascii_unicodeScalars_Backwards 395559 391342 -1.1% 1.01x (?)
CharIndexing_chinese_unicodeScalars_Backwards 296945 305404 +2.8% 0.97x (?)
CharIndexing_japanese_unicodeScalars_Backwards 472420 472236 -0.0% 1.00x (?)
CharIndexing_korean_unicodeScalars_Backwards 386202 379549 -1.7% 1.02x
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 67937 66930 -1.5% 1.02x (?)
CharIndexing_punctuated_unicodeScalars_Backwards 86008 85066 -1.1% 1.01x (?)
CharIndexing_russian_unicodeScalars_Backwards 326770 326380 -0.1% 1.00x (?)
CharIndexing_tweet_unicodeScalars_Backwards 778541 772992 -0.7% 1.01x (?)
CharIndexing_utf16_unicodeScalars_Backwards 327446 324345 -0.9% 1.01x (?)
CharIteration_ascii_unicodeScalars 155110 155331 +0.1% 1.00x (?)
CharIteration_ascii_unicodeScalars_Backwards 278250 276297 -0.7% 1.01x (?)
CharIteration_chinese_unicodeScalars 112912 112883 -0.0% 1.00x (?)
CharIteration_chinese_unicodeScalars_Backwards 209606 209452 -0.1% 1.00x (?)
CharIteration_japanese_unicodeScalars 179449 179068 -0.2% 1.00x (?)
CharIteration_japanese_unicodeScalars_Backwards 331916 332224 +0.1% 1.00x (?)
CharIteration_korean_unicodeScalars 149934 150816 +0.6% 0.99x
CharIteration_korean_unicodeScalars_Backwards 268947 269035 +0.0% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars 26978 27559 +2.2% 0.98x (?)
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 48208 47911 -0.6% 1.01x (?)
CharIteration_punctuated_unicodeScalars 34671 34860 +0.5% 0.99x (?)
CharIteration_punctuated_unicodeScalars_Backwards 61183 60877 -0.5% 1.01x
CharIteration_russian_unicodeScalars 128462 129405 +0.7% 0.99x (?)
CharIteration_russian_unicodeScalars_Backwards 231062 231236 +0.1% 1.00x (?)
CharIteration_tweet_unicodeScalars 295380 295651 +0.1% 1.00x (?)
CharIteration_tweet_unicodeScalars_Backwards 557782 549176 -1.5% 1.02x
CharIteration_utf16_unicodeScalars 126586 127222 +0.5% 1.00x (?)
CharIteration_utf16_unicodeScalars_Backwards 237584 237081 -0.2% 1.00x (?)
CharacterLiteralsLarge 5809 5789 -0.3% 1.00x (?)
CharacterLiteralsSmall 659 659 +0.0% 1.00x
CharacterPropertiesPrecomputed 3480 3514 +1.0% 0.99x (?)
CharacterPropertiesStashed 2310 2348 +1.6% 0.98x (?)
CharacterPropertiesStashedMemo 4386 4393 +0.2% 1.00x (?)
Chars 37332 37360 +0.1% 1.00x (?)
ClassArrayGetter 988 990 +0.2% 1.00x (?)
Combos 2429 2378 -2.1% 1.02x (?)
DataAccessBytes 2412 2406 -0.2% 1.00x (?)
DataAppendArray 5381 5380 -0.0% 1.00x (?)
DataAppendBytes 5071 5046 -0.5% 1.00x (?)
DataAppendDataLargeToLarge 68158 69039 +1.3% 0.99x (?)
DataAppendDataLargeToMedium 35976 35420 -1.5% 1.02x (?)
DataAppendDataLargeToSmall 34676 34947 +0.8% 0.99x (?)
DataAppendDataMediumToLarge 38505 38555 +0.1% 1.00x (?)
DataAppendDataMediumToSmall 5980 6013 +0.6% 0.99x (?)
DataAppendDataSmallToLarge 37260 37224 -0.1% 1.00x (?)
DataAppendDataSmallToMedium 6445 6397 -0.7% 1.01x (?)
DataAppendSequence 1918277 1912532 -0.3% 1.00x (?)
DataCopyBytes 2564 2520 -1.7% 1.02x
DataCount 223 223 +0.0% 1.00x
DataMutateBytes 5382 5246 -2.5% 1.03x (?)
DataReplaceLarge 39176 38951 -0.6% 1.01x (?)
DataReplaceLargeBuffer 60381 61502 +1.9% 0.98x (?)
DataReplaceSmall 7033 6912 -1.7% 1.02x (?)
DataReplaceSmallBuffer 11863 12195 +2.8% 0.97x (?)
DataReset 2875 2872 -0.1% 1.00x (?)
DataSubscript 444 444 +0.0% 1.00x
DictOfArraysToArrayOfDicts 3521 3495 -0.7% 1.01x (?)
Dictionary 2401 2446 +1.9% 0.98x (?)
Dictionary2 1463 1452 -0.8% 1.01x (?)
Dictionary2OfObjects 4322 4365 +1.0% 0.99x (?)
Dictionary3 863 867 +0.5% 1.00x (?)
Dictionary3OfObjects 2182 2133 -2.2% 1.02x (?)
Dictionary4 1209 1213 +0.3% 1.00x (?)
Dictionary4Legacy 1506 1494 -0.8% 1.01x (?)
Dictionary4OfObjects 1757 1754 -0.2% 1.00x (?)
Dictionary4OfObjectsLegacy 2094 2183 +4.3% 0.96x
DictionaryBridge 1369 1365 -0.3% 1.00x (?)
DictionaryCopy 315431 316458 +0.3% 1.00x (?)
DictionaryFilter 327517 328748 +0.4% 1.00x
DictionaryGroup 4562 4536 -0.6% 1.01x (?)
DictionaryGroupOfObjects 7077 7263 +2.6% 0.97x (?)
DictionaryLiteral 9173 9110 -0.7% 1.01x (?)
DictionaryOfObjects 5918 5895 -0.4% 1.00x (?)
DictionaryRemove 18937 18458 -2.5% 1.03x (?)
DictionaryRemoveOfObjects 53951 53242 -1.3% 1.01x (?)
DictionarySubscriptDefaultMutation 1998 2001 +0.2% 1.00x (?)
DictionarySubscriptDefaultMutationArray 2234 2236 +0.1% 1.00x (?)
DictionarySubscriptDefaultMutationArrayOfObjects 9677 9709 +0.3% 1.00x (?)
DictionarySubscriptDefaultMutationOfObjects 5579 5509 -1.3% 1.01x (?)
DictionarySwap 4931 4927 -0.1% 1.00x (?)
DictionarySwapAt 35342 35235 -0.3% 1.00x
DictionarySwapAtOfObjects 115079 116555 +1.3% 0.99x (?)
DictionarySwapOfObjects 19411 19244 -0.9% 1.01x (?)
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollection 15538 15501 -0.2% 1.00x (?)
DropFirstAnyCollectionLazy 99983 104327 +4.3% 0.96x (?)
DropFirstAnySeqCRangeIter 23777 23693 -0.4% 1.00x (?)
DropFirstAnySeqCRangeIterLazy 23786 23690 -0.4% 1.00x (?)
DropFirstAnySeqCntRange 15460 15559 +0.6% 0.99x (?)
DropFirstAnySeqCntRangeLazy 15432 15423 -0.1% 1.00x (?)
DropFirstAnySequence 13101 13115 +0.1% 1.00x (?)
DropFirstAnySequenceLazy 12995 12936 -0.5% 1.00x (?)
DropFirstArray 3362 3329 -1.0% 1.01x
DropFirstArrayLazy 29349 29324 -0.1% 1.00x (?)
DropFirstCountableRange 310 309 -0.3% 1.00x (?)
DropFirstCountableRangeLazy 33957 34049 +0.3% 1.00x (?)
DropFirstSequence 12738 12703 -0.3% 1.00x (?)
DropFirstSequenceLazy 12646 12602 -0.3% 1.00x (?)
DropLastAnyCollection 5157 5158 +0.0% 1.00x (?)
DropLastAnyCollectionLazy 34461 34696 +0.7% 0.99x (?)
DropLastAnySeqCRangeIter 40915 41155 +0.6% 0.99x
DropLastAnySeqCRangeIterLazy 40936 41183 +0.6% 0.99x (?)
DropLastAnySeqCntRange 5238 5154 -1.6% 1.02x
DropLastAnySeqCntRangeLazy 5190 5175 -0.3% 1.00x
DropLastAnySequence 31130 30801 -1.1% 1.01x
DropLastAnySequenceLazy 31314 31054 -0.8% 1.01x
DropLastCountableRange 108 108 +0.0% 1.00x
DropLastCountableRangeLazy 11326 11327 +0.0% 1.00x (?)
DropLastSequence 31143 31073 -0.2% 1.00x
DropLastSequenceLazy 30975 30869 -0.3% 1.00x
DropWhileAnyCollection 19983 20093 +0.6% 0.99x
DropWhileAnyCollectionLazy 22436 22369 -0.3% 1.00x
DropWhileAnySeqCRangeIter 24415 24421 +0.0% 1.00x (?)
DropWhileAnySeqCRangeIterLazy 22434 22368 -0.3% 1.00x
DropWhileAnySeqCntRange 19994 19982 -0.1% 1.00x (?)
DropWhileAnySeqCntRangeLazy 22331 22186 -0.6% 1.01x (?)
DropWhileAnySequence 13837 13730 -0.8% 1.01x
DropWhileAnySequenceLazy 12679 12557 -1.0% 1.01x (?)
DropWhileArrayLazy 14137 14158 +0.1% 1.00x
DropWhileCountableRange 4859 4858 -0.0% 1.00x (?)
DropWhileCountableRangeLazy 21962 21981 +0.1% 1.00x (?)
DropWhileSequence 13315 13325 +0.1% 1.00x (?)
DropWhileSequenceLazy 12198 12131 -0.5% 1.01x (?)
EqualStringSubstring 73 73 +0.0% 1.00x
EqualSubstringString 74 75 +1.4% 0.99x
EqualSubstringSubstring 72 73 +1.4% 0.99x
EqualSubstringSubstringGenericEquatable 58 58 +0.0% 1.00x
ErrorHandling 7507 7640 +1.8% 0.98x (?)
ExclusivityGlobal 186 186 +0.0% 1.00x
ExclusivityIndependent 72 72 +0.0% 1.00x
FatCompactMap 294483 293362 -0.4% 1.00x
FilterEvenUsingReduce 3604 3601 -0.1% 1.00x (?)
FilterEvenUsingReduceInto 1889 1895 +0.3% 1.00x (?)
FloatingPointPrinting_Double_description_small 24279 24352 +0.3% 1.00x
FloatingPointPrinting_Double_description_uniform 35890 36128 +0.7% 0.99x (?)
FloatingPointPrinting_Float80_description_small 31177 31434 +0.8% 0.99x
FloatingPointPrinting_Float80_description_uniform 62790 62294 -0.8% 1.01x (?)
FloatingPointPrinting_Float_description_small 6654 6502 -2.3% 1.02x
FloatingPointPrinting_Float_description_uniform 17434 17425 -0.1% 1.00x (?)
FrequenciesUsingReduce 11201 11381 +1.6% 0.98x (?)
FrequenciesUsingReduceInto 3136 3188 +1.7% 0.98x (?)
Hanoi 20627 20508 -0.6% 1.01x
HashTest 21457 21459 +0.0% 1.00x (?)
Histogram 6280 6288 +0.1% 1.00x (?)
Integrate 459 458 -0.2% 1.00x
IterateData 5478 5460 -0.3% 1.00x (?)
Join 903 907 +0.4% 1.00x
LazilyFilteredArrayContains 754137 754588 +0.1% 1.00x (?)
LazilyFilteredArrays 1505205 1508643 +0.2% 1.00x (?)
LazilyFilteredRange 534587 535780 +0.2% 1.00x (?)
LessSubstringSubstring 72 73 +1.4% 0.99x
LessSubstringSubstringGenericComparable 59 58 -1.7% 1.02x
LinkedList 32521 32623 +0.3% 1.00x (?)
LuhnAlgoEager 5515 5361 -2.8% 1.03x (?)
MapReduce 25726 25568 -0.6% 1.01x
MapReduceAnyCollection 25699 25604 -0.4% 1.00x (?)
MapReduceAnyCollectionShort 36270 36518 +0.7% 0.99x (?)
MapReduceClass 30001 29967 -0.1% 1.00x (?)
MapReduceClassShort 41166 41329 +0.4% 1.00x (?)
MapReduceLazyCollection 23765 23806 +0.2% 1.00x (?)
MapReduceLazyCollectionShort 33032 33657 +1.9% 0.98x (?)
MapReduceLazySequence 20550 20529 -0.1% 1.00x (?)
MapReduceSequence 30796 30779 -0.1% 1.00x (?)
MapReduceShort 36720 36802 +0.2% 1.00x (?)
MapReduceShortString 243 240 -1.2% 1.01x
MapReduceString 1752 1741 -0.6% 1.01x (?)
Memset 44157 44121 -0.1% 1.00x (?)
MonteCarloE 1141975 1129817 -1.1% 1.01x
MonteCarloPi 5176964 5118319 -1.1% 1.01x
NSDictionaryCastToSwift 8227 8310 +1.0% 0.99x (?)
NSStringConversion 760 756 -0.5% 1.01x (?)
NibbleSort 500442 500788 +0.1% 1.00x (?)
NopDeinit 191607 192143 +0.3% 1.00x (?)
ObjectAllocation 1260 1289 +2.3% 0.98x (?)
ObjectiveCBridgeFromNSArrayAnyObject 28675 27918 -2.6% 1.03x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 9147 9241 +1.0% 0.99x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 116122 113632 -2.1% 1.02x (?)
ObjectiveCBridgeFromNSSetAnyObject 55099 55673 +1.0% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 72229 76008 +5.2% 0.95x (?)
ObjectiveCBridgeFromNSString 2904 2986 +2.8% 0.97x (?)
ObjectiveCBridgeFromNSStringForced 2806 2777 -1.0% 1.01x (?)
ObjectiveCBridgeStubDataAppend 6198 6295 +1.6% 0.98x (?)
ObjectiveCBridgeStubDateMutation 745 745 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 32971 34072 +3.3% 0.97x (?)
ObjectiveCBridgeStubFromNSDate 6930 6927 -0.0% 1.00x (?)
ObjectiveCBridgeStubFromNSString 1092 1082 -0.9% 1.01x (?)
ObjectiveCBridgeStubFromNSStringRef 193 193 +0.0% 1.00x
ObjectiveCBridgeStubNSDataAppend 3057 3105 +1.6% 0.98x
ObjectiveCBridgeStubNSDateMutationRef 16656 17165 +3.1% 0.97x
ObjectiveCBridgeStubToArrayOfNSString 41134 39633 -3.6% 1.04x (?)
ObjectiveCBridgeStubToNSDate 16049 15862 -1.2% 1.01x (?)
ObjectiveCBridgeStubToNSDateRef 3456 3477 +0.6% 0.99x (?)
ObjectiveCBridgeStubToNSStringRef 153 154 +0.7% 0.99x (?)
ObjectiveCBridgeStubURLAppendPath 307355 303567 -1.2% 1.01x (?)
ObjectiveCBridgeStubURLAppendPathRef 315357 313761 -0.5% 1.01x (?)
ObjectiveCBridgeToNSDictionary 28051 28186 +0.5% 1.00x (?)
ObjectiveCBridgeToNSSet 18736 18016 -3.8% 1.04x (?)
ObjectiveCBridgeToNSString 525 525 +0.0% 1.00x
ObserverClosure 6575 6559 -0.2% 1.00x (?)
ObserverForwarderStruct 4508 4513 +0.1% 1.00x (?)
ObserverPartiallyAppliedMethod 8141 8108 -0.4% 1.00x (?)
ObserverUnappliedMethod 8291 8334 +0.5% 0.99x (?)
OpenClose 862 879 +2.0% 0.98x
PartialApplyDynamicType 41828 40960 -2.1% 1.02x (?)
Phonebook 19252 19067 -1.0% 1.01x
PointerArithmetics 117430 117387 -0.0% 1.00x (?)
PolymorphicCalls 2346 2362 +0.7% 0.99x (?)
PopFrontArray 4785 4777 -0.2% 1.00x (?)
PopFrontArrayGeneric 5520 5504 -0.3% 1.00x (?)
PrefixAnyCollection 15460 15454 -0.0% 1.00x (?)
PrefixAnySeqCRangeIter 18823 18859 +0.2% 1.00x (?)
PrefixAnySeqCRangeIterLazy 18877 18904 +0.1% 1.00x (?)
PrefixAnySeqCntRange 15558 15640 +0.5% 0.99x (?)
PrefixAnySeqCntRangeLazy 15418 15452 +0.2% 1.00x (?)
PrefixAnySequence 10770 10763 -0.1% 1.00x (?)
PrefixAnySequenceLazy 10718 10622 -0.9% 1.01x (?)
PrefixArray 3367 3330 -1.1% 1.01x
PrefixArrayLazy 29394 29380 -0.0% 1.00x (?)
PrefixCountableRange 310 308 -0.6% 1.01x (?)
PrefixCountableRangeLazy 33969 33982 +0.0% 1.00x (?)
PrefixSequence 10321 10270 -0.5% 1.00x (?)
PrefixSequenceLazy 10190 10168 -0.2% 1.00x (?)
PrefixWhileAnyCollection 28890 28908 +0.1% 1.00x (?)
PrefixWhileAnyCollectionLazy 18530 18426 -0.6% 1.01x
PrefixWhileAnySeqCRangeIter 34371 34600 +0.7% 0.99x
PrefixWhileAnySeqCRangeIterLazy 18396 18294 -0.6% 1.01x (?)
PrefixWhileAnySeqCntRange 28964 28960 -0.0% 1.00x (?)
PrefixWhileAnySeqCntRangeLazy 18407 18311 -0.5% 1.01x (?)
PrefixWhileAnySequence 26912 26905 -0.0% 1.00x (?)
PrefixWhileAnySequenceLazy 11004 11167 +1.5% 0.99x
PrefixWhileArray 10472 10545 +0.7% 0.99x (?)
PrefixWhileArrayLazy 12347 12352 +0.0% 1.00x (?)
PrefixWhileCountableRange 13783 13784 +0.0% 1.00x (?)
PrefixWhileCountableRangeLazy 18203 18111 -0.5% 1.01x (?)
PrefixWhileSequence 26584 26641 +0.2% 1.00x (?)
PrefixWhileSequenceLazy 10756 10799 +0.4% 1.00x (?)
Prims 9529 9563 +0.4% 1.00x (?)
PrimsSplit 9553 9599 +0.5% 1.00x (?)
QueueConcrete 14286 14271 -0.1% 1.00x
QueueGeneric 18769 18775 +0.0% 1.00x (?)
RC4 16229 16191 -0.2% 1.00x (?)
RGBHistogram 24506 24382 -0.5% 1.01x (?)
RGBHistogramOfObjects 77765 77838 +0.1% 1.00x (?)
RangeAssignment 2715 2779 +2.4% 0.98x
RangeIterationSigned 14947 14881 -0.4% 1.00x (?)
RangeReplaceableCollectionPlusDefault 11603 11192 -3.5% 1.04x
RecursiveOwnedParameter 5801 5804 +0.1% 1.00x (?)
RemoveWhereFilterInts 1955 1948 -0.4% 1.00x
RemoveWhereFilterString 1295 1291 -0.3% 1.00x (?)
RemoveWhereFilterStrings 2467 2470 +0.1% 1.00x (?)
RemoveWhereMoveInts 3404 3397 -0.2% 1.00x
RemoveWhereMoveStrings 3923 3922 -0.0% 1.00x (?)
RemoveWhereQuadraticInts 8069 8125 +0.7% 0.99x
RemoveWhereQuadraticString 2294 2266 -1.2% 1.01x (?)
RemoveWhereQuadraticStrings 9760 9752 -0.1% 1.00x (?)
RemoveWhereSwapInts 6153 6150 -0.0% 1.00x
RemoveWhereSwapStrings 6869 6870 +0.0% 1.00x (?)
ReversedArray 13029 12961 -0.5% 1.01x (?)
ReversedBidirectional 43952 43655 -0.7% 1.01x (?)
ReversedDictionary 23197 23087 -0.5% 1.00x (?)
RomanNumbers 1340111 1341363 +0.1% 1.00x (?)
SequenceAlgosAnySequence 12990 13391 +3.1% 0.97x (?)
SequenceAlgosArray 756401 756408 +0.0% 1.00x (?)
SequenceAlgosContiguousArray 300715 299092 -0.5% 1.01x
SequenceAlgosList 8700 8742 +0.5% 1.00x
SequenceAlgosRange 1279332 1272914 -0.5% 1.01x (?)
SequenceAlgosUnfoldSequence 6600 6627 +0.4% 1.00x
SetExclusiveOr 16501 16423 -0.5% 1.00x (?)
SetExclusiveOr_OfObjects 41196 41213 +0.0% 1.00x (?)
SetIntersect 6628 6622 -0.1% 1.00x
SetIntersect_OfObjects 10287 10374 +0.8% 0.99x (?)
SetIsSubsetOf 1176 1173 -0.3% 1.00x (?)
SetIsSubsetOf_OfObjects 2235 2248 +0.6% 0.99x (?)
SetUnion 11844 11916 +0.6% 0.99x
SetUnion_OfObjects 29661 29752 +0.3% 1.00x (?)
SevenBoom 1083 1081 -0.2% 1.00x (?)
Sim2DArray 43494 43476 -0.0% 1.00x (?)
SortLargeExistentials 11588 11633 +0.4% 1.00x (?)
SortLettersInPlace 1980 1955 -1.3% 1.01x
SortSortedStrings 1114 1107 -0.6% 1.01x
SortStrings 2240 2165 -3.3% 1.03x
SortStringsUnicode 2718 2688 -1.1% 1.01x
StackPromo 100644 102294 +1.6% 0.98x (?)
StaticArray 2554 2550 -0.2% 1.00x (?)
StrComplexWalk 6833 6834 +0.0% 1.00x (?)
StrToInt 82652 80124 -3.1% 1.03x (?)
StringAdder 1111 1146 +3.2% 0.97x
StringBuilderLong 2970 2969 -0.0% 1.00x (?)
StringComparison_abnormal 1324 1389 +4.9% 0.95x (?)
StringComparison_ascii 9487 9483 -0.0% 1.00x (?)
StringComparison_emoji 2072 2085 +0.6% 0.99x (?)
StringComparison_fastPrenormal 4945 4950 +0.1% 1.00x (?)
StringComparison_latin1 3855 3878 +0.6% 0.99x
StringComparison_longSharedPrefix 2375 2376 +0.0% 1.00x (?)
StringComparison_nonBMPSlowestPrenormal 3705 3738 +0.9% 0.99x
StringComparison_slowerPrenormal 4170 4150 -0.5% 1.00x
StringComparison_zalgo 127527 127527 +0.0% 1.00x
StringEnumRawValueInitialization 32862 32950 +0.3% 1.00x (?)
StringEqualPointerComparison 1601 1600 -0.1% 1.00x (?)
StringFromLongWholeSubstring 12 12 +0.0% 1.00x
StringFromLongWholeSubstringGeneric 206 206 +0.0% 1.00x
StringHasPrefixAscii 3123 3121 -0.1% 1.00x (?)
StringHasPrefixUnicode 115114 116068 +0.8% 0.99x (?)
StringHasSuffixAscii 3294 3293 -0.0% 1.00x (?)
StringHasSuffixUnicode 107101 107170 +0.1% 1.00x (?)
StringInterpolation 12854 12871 +0.1% 1.00x (?)
StringInterpolationManySmallSegments 20767 20384 -1.8% 1.02x (?)
StringMatch 42006 40566 -3.4% 1.04x
StringRemoveDupes 713 721 +1.1% 0.99x (?)
StringUTF16Builder 8739 8642 -1.1% 1.01x (?)
StringUTF16SubstringBuilder 25580 25426 -0.6% 1.01x (?)
StringWalk 12373 12404 +0.3% 1.00x (?)
StringWithCString 45518 45529 +0.0% 1.00x (?)
StringWordBuilder 2491 2519 +1.1% 0.99x
StringWordBuilderReservingCapacity 2117 2116 -0.0% 1.00x (?)
SubstringComparable 1643 1639 -0.2% 1.00x
SubstringEqualString 1717 1721 +0.2% 1.00x (?)
SubstringEquatable 5429 5454 +0.5% 1.00x
SubstringFromLongString 18 18 +0.0% 1.00x
SubstringFromLongStringGeneric 114 109 -4.4% 1.05x
SuffixAnyCollection 5166 5174 +0.2% 1.00x
SuffixAnyCollectionLazy 35248 35584 +1.0% 0.99x (?)
SuffixAnySeqCRangeIter 36687 36824 +0.4% 1.00x (?)
SuffixAnySeqCRangeIterLazy 36607 36750 +0.4% 1.00x (?)
SuffixAnySeqCntRange 5189 5159 -0.6% 1.01x (?)
SuffixAnySeqCntRangeLazy 5157 5156 -0.0% 1.00x (?)
SuffixAnySequence 26659 26575 -0.3% 1.00x (?)
SuffixAnySequenceLazy 26669 26573 -0.4% 1.00x
SuffixCountableRange 108 108 +0.0% 1.00x
SuffixCountableRangeLazy 11338 11346 +0.1% 1.00x (?)
SuffixSequence 26685 26598 -0.3% 1.00x
SuffixSequenceLazy 26459 26481 +0.1% 1.00x (?)
SumUsingReduce 161294 160947 -0.2% 1.00x (?)
SumUsingReduceInto 154270 153549 -0.5% 1.00x
SuperChars 87964 87807 -0.2% 1.00x (?)
TwoSum 3496 3541 +1.3% 0.99x
UTF8Decode 29861 29883 +0.1% 1.00x (?)
Walsh 12039 12057 +0.1% 1.00x (?)
WordCountHistogramASCII 38979 38937 -0.1% 1.00x (?)
WordCountHistogramUTF16 46326 46441 +0.2% 1.00x (?)
WordCountUniqueASCII 7247 7240 -0.1% 1.00x (?)
WordCountUniqueUTF16 12947 13371 +3.3% 0.97x (?)
WordSplitASCII 9890 9941 +0.5% 0.99x (?)
WordSplitUTF16 12136 12138 +0.0% 1.00x (?)
XorLoop 23241 23248 +0.0% 1.00x (?)
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

@milseman milseman force-pushed the identity_crisis branch from e42c94f to b1d48f7 Compare May 3, 2018 17:44
Non-tagged NSStrings carry identity separate from their
value. Continue to bridge them lazily, even if they could fit in small
form, to respect this and avoid potential information loss.

Temporarily disable invariant that all natives strings that could be
small, are.
@milseman milseman force-pushed the identity_crisis branch from b1d48f7 to 5f1ba83 Compare May 3, 2018 17:45
@milseman
Copy link
Member Author

milseman commented May 3, 2018

@swift-ci please test

1 similar comment
@milseman
Copy link
Member Author

milseman commented May 3, 2018

@swift-ci please test

@swift-ci
Copy link
Contributor

swift-ci commented May 3, 2018

Build failed
Swift Test Linux Platform
Git Sha - 5f1ba83

@milseman
Copy link
Member Author

milseman commented May 3, 2018

Linux PR testing is borked currently

@milseman
Copy link
Member Author

milseman commented May 3, 2018

@swift-ci please smoke test Linux platform

@milseman
Copy link
Member Author

milseman commented May 4, 2018

@swift-ci please smoke test linux platform

@milseman
Copy link
Member Author

milseman commented May 4, 2018

Whoops, it already passed smoke testing. I meant:

@swift-ci please test linux platform

@swift-ci
Copy link
Contributor

swift-ci commented May 4, 2018

Build failed
Swift Test Linux Platform
Git Sha - 5f1ba83

@milseman milseman merged commit cd32463 into swiftlang:master May 4, 2018
@milseman milseman deleted the identity_crisis branch March 1, 2019 18:45
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