Skip to content
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

Smol String #14755

Merged
merged 6 commits into from
Mar 29, 2018
Merged

Smol String #14755

merged 6 commits into from
Mar 29, 2018

Conversation

milseman
Copy link
Member

@milseman milseman commented Feb 20, 2018

Add in small strings, plumb all APIs through, etc. There's some current performance issues, namely that small string support introduces branching and our default implementation technique involves spilling to the stack and calling _UnmanagedString methods. The first is unavoidable (although we're planning a better overall branching strategy to reduce this impact), the second is TODO.

@milseman
Copy link
Member Author

@swift-ci please test

(I've been passing clean locally on release+asserts, but not debug+asserts)

@milseman
Copy link
Member Author

(expecting regressions)

@swift-ci please smoke benchmark

@milseman
Copy link
Member Author

@swift-ci please test

@milseman
Copy link
Member Author

@swift-ci please smoke benchmark

@swift-ci
Copy link
Contributor

Build failed
Swift Test OS X Platform
Git Sha - e5ef4a522a701c5218130630486e45de4e529f83

@swift-ci
Copy link
Contributor

Build failed
Swift Test Linux Platform
Git Sha - e5ef4a522a701c5218130630486e45de4e529f83

@swift-ci
Copy link
Contributor

Build comment file:

Optimized (O)

Regression (37)
TEST OLD NEW DELTA SPEEDUP
RemoveWhereQuadraticString 204 481 +135.8% 0.42x
StringFromLongWholeSubstringGeneric 10 21 +110.0% 0.48x
CSVParsingAltIndices 357450 720817 +101.7% 0.50x
NSStringConversion 292 551 +88.7% 0.53x
Sim2DArray 412 639 +55.1% 0.64x
EqualStringSubstring 48 66 +37.5% 0.73x
EqualSubstringString 48 65 +35.4% 0.74x
SubstringEqualString 531 697 +31.3% 0.76x
RemoveWhereFilterString 309 393 +27.2% 0.79x
StringComparison_latin1 554 691 +24.7% 0.80x
RomanNumbers 114098 136536 +19.7% 0.84x
StringMatch 8333 9927 +19.1% 0.84x
StringComparison_fastPrenormal 731 865 +18.3% 0.85x
SortStringsUnicode 2457 2865 +16.6% 0.86x
Join 371 428 +15.4% 0.87x
StrComplexWalk 1560 1779 +14.0% 0.88x
DropLastAnyCollectionLazy 21603 24104 +11.6% 0.90x
Hanoi 3318 3650 +10.0% 0.91x
SubstringFromLongString 10 11 +10.0% 0.91x
SubstringComparable 44 48 +9.1% 0.92x
DropLastCountableRangeLazy 11 12 +9.1% 0.92x
PointerArithmetics 31510 34366 +9.1% 0.92x
MapReduceLazyCollectionShort 34 37 +8.8% 0.92x
SuffixAnyCollectionLazy 21649 23555 +8.8% 0.92x
SortSortedStrings 966 1051 +8.8% 0.92x
StringWordBuilderReservingCapacity 1355 1473 +8.7% 0.92x
NopDeinit 21573 23403 +8.5% 0.92x
ObjectiveCBridgeStubFromArrayOfNSString 26186 28357 +8.3% 0.92x
SortStrings 1734 1876 +8.2% 0.92x
ObjectiveCBridgeFromNSSetAnyObjectToString 68246 73788 +8.1% 0.92x (?)
StringWordBuilder 1822 1967 +8.0% 0.93x
SubstringEquatable 1355 1461 +7.8% 0.93x
WordCountUniqueUTF16 19273 20744 +7.6% 0.93x (?)
StringComparison_abnormal 738 786 +6.5% 0.94x
ObjectiveCBridgeToNSSet 41904 44545 +6.3% 0.94x
LessSubstringSubstring 48 51 +6.2% 0.94x
StringComparison_longSharedPrefix 905 953 +5.3% 0.95x
Improvement (16)
TEST OLD NEW DELTA SPEEDUP
PrefixWhileCountableRange 53 35 -34.0% 1.51x
StringBuilderLong 1473 1022 -30.6% 1.44x (?)
ReversedDictionary 172 131 -23.8% 1.31x
StringInterpolation 10720 8803 -17.9% 1.22x
DictionarySubscriptDefaultMutationArray 538 486 -9.7% 1.11x
ObjectiveCBridgeStubToNSDate 17678 16000 -9.5% 1.10x
DropLastSequence 689 628 -8.9% 1.10x
DropLastSequenceLazy 690 629 -8.8% 1.10x
ObjectiveCBridgeFromNSString 1407 1293 -8.1% 1.09x (?)
StringAdder 4182 3875 -7.3% 1.08x
ObjectiveCBridgeStubNSDataAppend 2671 2478 -7.2% 1.08x (?)
CharacterLiteralsLarge 6138 5786 -5.7% 1.06x
ArrayAppendReserved 799 756 -5.4% 1.06x
Walsh 428 405 -5.4% 1.06x
MapReduceSequence 469 445 -5.1% 1.05x
ObjectiveCBridgeStubToNSStringRef 118 112 -5.1% 1.05x
No Changes (325)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 3656 3543 -3.1% 1.03x
AnyHashableWithAClass 72471 69954 -3.5% 1.04x
Array2D 2554 2522 -1.3% 1.01x (?)
ArrayAppend 1062 1022 -3.8% 1.04x
ArrayAppendArrayOfInt 796 797 +0.1% 1.00x (?)
ArrayAppendAscii 13251 13616 +2.8% 0.97x
ArrayAppendFromGeneric 802 798 -0.5% 1.01x (?)
ArrayAppendGenericStructs 1429 1429 +0.0% 1.00x
ArrayAppendLatin1 38074 39737 +4.4% 0.96x
ArrayAppendLazyMap 1343 1342 -0.1% 1.00x (?)
ArrayAppendOptionals 1430 1429 -0.1% 1.00x (?)
ArrayAppendRepeatCol 1334 1339 +0.4% 1.00x (?)
ArrayAppendSequence 1135 1127 -0.7% 1.01x
ArrayAppendStrings 15280 15302 +0.1% 1.00x
ArrayAppendToFromGeneric 786 796 +1.3% 0.99x (?)
ArrayAppendToGeneric 798 797 -0.1% 1.00x (?)
ArrayAppendUTF16 37802 39438 +4.3% 0.96x
ArrayInClass 86 86 +0.0% 1.00x
ArrayLiteral 0 0 +0.0% 1.00x
ArrayOfGenericPOD2 151 151 +0.0% 1.00x
ArrayOfGenericRef 4373 4387 +0.3% 1.00x (?)
ArrayOfPOD 183 183 +0.0% 1.00x
ArrayOfRef 4370 4382 +0.3% 1.00x (?)
ArrayPlusEqualArrayOfInt 800 799 -0.1% 1.00x (?)
ArrayPlusEqualFiveElementCollection 5585 5517 -1.2% 1.01x
ArrayPlusEqualSingleElementCollection 1065 1016 -4.6% 1.05x
ArrayPlusEqualThreeElements 1712 1677 -2.0% 1.02x
ArraySubscript 1522 1528 +0.4% 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
BinaryFloatingPointConversionFromBinaryInteger 39 38 -2.6% 1.03x
BitCount 211 202 -4.3% 1.04x
ByteSwap 101 100 -1.0% 1.01x
COWTree 5324 5390 +1.2% 0.99x (?)
CSVParsing 757817 748506 -1.2% 1.01x (?)
CSVParsingAlt 720442 722880 +0.3% 1.00x (?)
CStringLongAscii 4782 4774 -0.2% 1.00x
CStringLongNonAscii 2098 2166 +3.2% 0.97x
CStringShortAscii 4729 4812 +1.8% 0.98x (?)
Calculator 660 641 -2.9% 1.03x
CaptureProp 3880 3913 +0.9% 0.99x
CharIndexing_ascii_unicodeScalars 15411 15408 -0.0% 1.00x (?)
CharIndexing_ascii_unicodeScalars_Backwards 14343 14501 +1.1% 0.99x
CharIndexing_chinese_unicodeScalars 11674 11669 -0.0% 1.00x (?)
CharIndexing_chinese_unicodeScalars_Backwards 10866 10988 +1.1% 0.99x
CharIndexing_japanese_unicodeScalars 18464 18452 -0.1% 1.00x
CharIndexing_japanese_unicodeScalars_Backwards 17175 17348 +1.0% 0.99x
CharIndexing_korean_unicodeScalars 14955 14950 -0.0% 1.00x (?)
CharIndexing_korean_unicodeScalars_Backwards 13916 14059 +1.0% 0.99x
CharIndexing_punctuatedJapanese_unicodeScalars 2788 2788 +0.0% 1.00x
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 2611 2639 +1.1% 0.99x
CharIndexing_punctuated_unicodeScalars 3489 3489 +0.0% 1.00x
CharIndexing_punctuated_unicodeScalars_Backwards 3269 3302 +1.0% 0.99x
CharIndexing_russian_unicodeScalars 12845 12844 -0.0% 1.00x (?)
CharIndexing_russian_unicodeScalars_Backwards 11970 12094 +1.0% 0.99x
CharIndexing_tweet_unicodeScalars 30328 30304 -0.1% 1.00x
CharIndexing_tweet_unicodeScalars_Backwards 28229 28293 +0.2% 1.00x
CharIndexing_utf16_unicodeScalars 20341 20399 +0.3% 1.00x
CharIndexing_utf16_unicodeScalars_Backwards 20897 21331 +2.1% 0.98x
CharIteration_ascii_unicodeScalars 20564 20794 +1.1% 0.99x
CharIteration_ascii_unicodeScalars_Backwards 13525 13525 +0.0% 1.00x
CharIteration_chinese_unicodeScalars 15528 15725 +1.3% 0.99x
CharIteration_chinese_unicodeScalars_Backwards 10250 10255 +0.0% 1.00x (?)
CharIteration_japanese_unicodeScalars 24650 24823 +0.7% 0.99x
CharIteration_japanese_unicodeScalars_Backwards 16175 16193 +0.1% 1.00x (?)
CharIteration_korean_unicodeScalars 19933 20153 +1.1% 0.99x
CharIteration_korean_unicodeScalars_Backwards 13116 13116 +0.0% 1.00x
CharIteration_punctuatedJapanese_unicodeScalars 3671 3743 +2.0% 0.98x
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 2477 2473 -0.2% 1.00x
CharIteration_punctuated_unicodeScalars 4617 4697 +1.7% 0.98x
CharIteration_punctuated_unicodeScalars_Backwards 3089 3089 +0.0% 1.00x
CharIteration_russian_unicodeScalars 17094 17286 +1.1% 0.99x
CharIteration_russian_unicodeScalars_Backwards 11266 11272 +0.1% 1.00x
CharIteration_tweet_unicodeScalars 40457 41144 +1.7% 0.98x
CharIteration_tweet_unicodeScalars_Backwards 26693 26720 +0.1% 1.00x (?)
CharIteration_utf16_unicodeScalars 27285 27409 +0.5% 1.00x
CharIteration_utf16_unicodeScalars_Backwards 17107 17334 +1.3% 0.99x
CharacterLiteralsSmall 411 411 +0.0% 1.00x
CharacterPropertiesFetch 4573 4603 +0.7% 0.99x (?)
CharacterPropertiesPrecomputed 981 1030 +5.0% 0.95x
CharacterPropertiesStashed 1534 1600 +4.3% 0.96x
CharacterPropertiesStashedMemo 1518 1588 +4.6% 0.96x
Chars 970 972 +0.2% 1.00x
ClassArrayGetter 15 15 +0.0% 1.00x
Combos 459 456 -0.7% 1.01x
DictOfArraysToArrayOfDicts 793 787 -0.8% 1.01x (?)
Dictionary 509 514 +1.0% 0.99x
Dictionary2 1609 1625 +1.0% 0.99x
Dictionary2OfObjects 2978 2983 +0.2% 1.00x (?)
Dictionary3 236 237 +0.4% 1.00x (?)
Dictionary3OfObjects 671 678 +1.0% 0.99x (?)
Dictionary4 147 148 +0.7% 0.99x
Dictionary4OfObjects 201 205 +2.0% 0.98x
DictionaryBridge 2046 2018 -1.4% 1.01x (?)
DictionaryGroup 134 133 -0.7% 1.01x
DictionaryGroupOfObjects 1919 1961 +2.2% 0.98x
DictionaryLiteral 1635 1595 -2.4% 1.03x
DictionaryOfObjects 2184 2183 -0.0% 1.00x (?)
DictionaryRemove 2746 2794 +1.7% 0.98x
DictionaryRemoveOfObjects 23742 23766 +0.1% 1.00x
DictionarySubscriptDefaultMutation 142 142 +0.0% 1.00x
DictionarySubscriptDefaultMutationArrayOfObjects 3818 3834 +0.4% 1.00x (?)
DictionarySubscriptDefaultMutationOfObjects 1389 1393 +0.3% 1.00x
DictionarySwap 469 469 +0.0% 1.00x
DictionarySwapOfObjects 7716 7430 -3.7% 1.04x
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollection 101 101 +0.0% 1.00x
DropFirstAnyCollectionLazy 64765 66987 +3.4% 0.97x
DropFirstAnySeqCRangeIter 18676 18275 -2.1% 1.02x
DropFirstAnySeqCRangeIterLazy 18596 18299 -1.6% 1.02x
DropFirstAnySeqCntRange 94 94 +0.0% 1.00x
DropFirstAnySeqCntRangeLazy 94 94 +0.0% 1.00x
DropFirstAnySequence 4399 4399 +0.0% 1.00x
DropFirstAnySequenceLazy 4379 4430 +1.2% 0.99x
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 2701 2698 -0.1% 1.00x
DropFirstSequenceLazy 2792 2787 -0.2% 1.00x (?)
DropLastAnyCollection 37 37 +0.0% 1.00x
DropLastAnySeqCRangeIter 3786 3795 +0.2% 1.00x (?)
DropLastAnySeqCRangeIterLazy 3792 3818 +0.7% 0.99x
DropLastAnySeqCntRange 30 30 +0.0% 1.00x
DropLastAnySeqCntRangeLazy 29 29 +0.0% 1.00x
DropLastAnySequence 5142 5134 -0.2% 1.00x
DropLastAnySequenceLazy 5240 5253 +0.2% 1.00x
DropLastCountableRange 12 12 +0.0% 1.00x
DropWhileAnyCollection 125 125 +0.0% 1.00x
DropWhileAnyCollectionLazy 166 166 +0.0% 1.00x
DropWhileAnySeqCRangeIter 15203 14978 -1.5% 1.02x
DropWhileAnySeqCRangeIterLazy 166 166 +0.0% 1.00x
DropWhileAnySeqCntRange 118 118 +0.0% 1.00x
DropWhileAnySeqCntRangeLazy 166 166 +0.0% 1.00x
DropWhileAnySequence 4769 4712 -1.2% 1.01x
DropWhileAnySequenceLazy 1856 1858 +0.1% 1.00x (?)
DropWhileArrayLazy 129 129 +0.0% 1.00x
DropWhileCountableRange 36 35 -2.8% 1.03x
DropWhileCountableRangeLazy 111 111 +0.0% 1.00x
DropWhileSequence 1344 1344 +0.0% 1.00x
DropWhileSequenceLazy 88 88 +0.0% 1.00x
EqualSubstringSubstring 48 50 +4.2% 0.96x
EqualSubstringSubstringGenericEquatable 48 50 +4.2% 0.96x
ErrorHandling 2277 2303 +1.1% 0.99x (?)
ExclusivityGlobal 5 5 +0.0% 1.00x
ExclusivityIndependent 2 2 +0.0% 1.00x
FilterEvenUsingReduce 1316 1329 +1.0% 0.99x (?)
FilterEvenUsingReduceInto 149 149 +0.0% 1.00x
FrequenciesUsingReduce 6715 6727 +0.2% 1.00x (?)
FrequenciesUsingReduceInto 3144 3140 -0.1% 1.00x (?)
HashTest 1785 1731 -3.0% 1.03x
Histogram 325 325 +0.0% 1.00x
Integrate 217 224 +3.2% 0.97x
IterateData 1347 1349 +0.1% 1.00x (?)
LazilyFilteredArrayContains 36672 36687 +0.0% 1.00x (?)
LazilyFilteredArrays 67230 65304 -2.9% 1.03x (?)
LazilyFilteredRange 3969 3889 -2.0% 1.02x
LessSubstringSubstringGenericComparable 48 47 -2.1% 1.02x (?)
LinkedList 7540 7608 +0.9% 0.99x
LuhnAlgoEager 582 585 +0.5% 0.99x (?)
LuhnAlgoLazy 583 586 +0.5% 0.99x
MapReduce 400 398 -0.5% 1.01x
MapReduceAnyCollection 409 429 +4.9% 0.95x
MapReduceAnyCollectionShort 2297 2242 -2.4% 1.02x
MapReduceClass 3032 3034 +0.1% 1.00x (?)
MapReduceClassShort 4584 4637 +1.2% 0.99x (?)
MapReduceLazyCollection 13 13 +0.0% 1.00x
MapReduceLazySequence 86 86 +0.0% 1.00x
MapReduceShort 2035 2014 -1.0% 1.01x (?)
MapReduceShortString 21 21 +0.0% 1.00x
MapReduceString 81 80 -1.2% 1.01x (?)
Memset 218 216 -0.9% 1.01x (?)
MonteCarloE 10399 10412 +0.1% 1.00x (?)
MonteCarloPi 42897 42891 -0.0% 1.00x (?)
NSDictionaryCastToSwift 5499 5423 -1.4% 1.01x (?)
NSError 301 306 +1.7% 0.98x
NibbleSort 3961 3963 +0.1% 1.00x
ObjectAllocation 184 185 +0.5% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObject 21118 20701 -2.0% 1.02x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 4146 4131 -0.4% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 41284 43297 +4.9% 0.95x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 33965 34042 +0.2% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 124585 126076 +1.2% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObject 60857 60527 -0.5% 1.01x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 4250 4277 +0.6% 0.99x (?)
ObjectiveCBridgeFromNSStringForced 2403 2374 -1.2% 1.01x (?)
ObjectiveCBridgeStubDataAppend 4110 3993 -2.8% 1.03x (?)
ObjectiveCBridgeStubDateMutation 257 257 +0.0% 1.00x
ObjectiveCBridgeStubFromNSDate 4137 3982 -3.7% 1.04x (?)
ObjectiveCBridgeStubFromNSString 851 846 -0.6% 1.01x (?)
ObjectiveCBridgeStubFromNSStringRef 161 155 -3.7% 1.04x
ObjectiveCBridgeStubNSDateMutationRef 13465 13374 -0.7% 1.01x (?)
ObjectiveCBridgeStubToArrayOfNSString 28827 30028 +4.2% 0.96x (?)
ObjectiveCBridgeStubToNSDateRef 3455 3421 -1.0% 1.01x (?)
ObjectiveCBridgeStubToNSString 1525 1524 -0.1% 1.00x (?)
ObjectiveCBridgeStubURLAppendPath 331249 331040 -0.1% 1.00x (?)
ObjectiveCBridgeStubURLAppendPathRef 326483 323587 -0.9% 1.01x (?)
ObjectiveCBridgeToNSArray 29677 29416 -0.9% 1.01x (?)
ObjectiveCBridgeToNSDictionary 51933 51170 -1.5% 1.01x (?)
ObjectiveCBridgeToNSString 1307 1298 -0.7% 1.01x (?)
ObserverClosure 2172 2156 -0.7% 1.01x
ObserverForwarderStruct 1006 995 -1.1% 1.01x (?)
ObserverPartiallyAppliedMethod 3731 3728 -0.1% 1.00x (?)
ObserverUnappliedMethod 2390 2388 -0.1% 1.00x (?)
OpenClose 123 128 +4.1% 0.96x
PartialApplyDynamicType 0 0 +0.0% 1.00x
Phonebook 3773 3925 +4.0% 0.96x
PolymorphicCalls 25 25 +0.0% 1.00x
PopFrontArray 1870 1952 +4.4% 0.96x (?)
PopFrontArrayGeneric 1957 1966 +0.5% 1.00x (?)
PopFrontUnsafePointer 9635 9446 -2.0% 1.02x (?)
PrefixAnyCollection 101 101 +0.0% 1.00x
PrefixAnyCollectionLazy 64610 67829 +5.0% 0.95x
PrefixAnySeqCRangeIter 14286 14174 -0.8% 1.01x
PrefixAnySeqCRangeIterLazy 14288 14185 -0.7% 1.01x
PrefixAnySeqCntRange 94 94 +0.0% 1.00x
PrefixAnySeqCntRangeLazy 94 94 +0.0% 1.00x
PrefixAnySequence 3892 3834 -1.5% 1.02x
PrefixAnySequenceLazy 3832 3835 +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 1326 1325 -0.1% 1.00x
PrefixSequenceLazy 1415 1414 -0.1% 1.00x (?)
PrefixWhileAnyCollection 172 172 +0.0% 1.00x
PrefixWhileAnyCollectionLazy 108 108 +0.0% 1.00x
PrefixWhileAnySeqCRangeIter 9335 9371 +0.4% 1.00x
PrefixWhileAnySeqCRangeIterLazy 90 90 +0.0% 1.00x
PrefixWhileAnySeqCntRange 165 164 -0.6% 1.01x (?)
PrefixWhileAnySeqCntRangeLazy 108 108 +0.0% 1.00x
PrefixWhileAnySequence 10495 10486 -0.1% 1.00x (?)
PrefixWhileAnySequenceLazy 1394 1393 -0.1% 1.00x
PrefixWhileArray 88 88 +0.0% 1.00x
PrefixWhileArrayLazy 70 70 +0.0% 1.00x
PrefixWhileCountableRangeLazy 35 35 +0.0% 1.00x
PrefixWhileSequence 380 379 -0.3% 1.00x
PrefixWhileSequenceLazy 52 52 +0.0% 1.00x
Prims 766 753 -1.7% 1.02x
PrimsSplit 781 765 -2.0% 1.02x
QueueConcrete 1308 1311 +0.2% 1.00x
QueueGeneric 1158 1161 +0.3% 1.00x
RC4 171 176 +2.9% 0.97x
RGBHistogram 2254 2220 -1.5% 1.02x
RGBHistogramOfObjects 23565 23766 +0.9% 0.99x
RangeAssignment 353 356 +0.8% 0.99x (?)
RangeIterationSigned 171 171 +0.0% 1.00x
RangeIterationSigned64 200 200 +0.0% 1.00x
RangeIterationUnsigned 200 200 +0.0% 1.00x
RangeReplaceableCollectionPlusDefault 987 981 -0.6% 1.01x (?)
RecursiveOwnedParameter 2348 2381 +1.4% 0.99x
RemoveWhereFilterInts 46 46 +0.0% 1.00x
RemoveWhereFilterStrings 432 432 +0.0% 1.00x
RemoveWhereMoveInts 17 17 +0.0% 1.00x
RemoveWhereMoveStrings 520 519 -0.2% 1.00x (?)
RemoveWhereQuadraticInts 1290 1284 -0.5% 1.00x
RemoveWhereQuadraticStrings 2759 2759 +0.0% 1.00x
RemoveWhereSwapInts 19 19 +0.0% 1.00x
RemoveWhereSwapStrings 850 848 -0.2% 1.00x
ReversedArray 57 57 +0.0% 1.00x
ReversedBidirectional 17199 17181 -0.1% 1.00x (?)
SequenceAlgosAnySequence 10400 10324 -0.7% 1.01x
SequenceAlgosArray 1579 1577 -0.1% 1.00x (?)
SequenceAlgosContiguousArray 1584 1579 -0.3% 1.00x (?)
SequenceAlgosList 1352 1356 +0.3% 1.00x (?)
SequenceAlgosRange 4296 4295 -0.0% 1.00x (?)
SequenceAlgosUnfoldSequence 1080 1080 +0.0% 1.00x
SetExclusiveOr 3370 3377 +0.2% 1.00x (?)
SetExclusiveOr_OfObjects 8840 8979 +1.6% 0.98x
SetIntersect 321 323 +0.6% 0.99x (?)
SetIntersect_OfObjects 1767 1783 +0.9% 0.99x
SetIsSubsetOf 298 298 +0.0% 1.00x
SetIsSubsetOf_OfObjects 363 363 +0.0% 1.00x
SetUnion 3069 3081 +0.4% 1.00x (?)
SetUnion_OfObjects 7252 7355 +1.4% 0.99x
SevenBoom 1530 1532 +0.1% 1.00x (?)
SortLargeExistentials 6778 6733 -0.7% 1.01x
SortLettersInPlace 1126 1142 +1.4% 0.99x
StackPromo 22380 22208 -0.8% 1.01x
StaticArray 5 5 +0.0% 1.00x
StrToInt 2076 2147 +3.4% 0.97x
StringBuilder 1370 1354 -1.2% 1.01x
StringComparison_ascii 992 1022 +3.0% 0.97x
StringComparison_emoji 814 850 +4.4% 0.96x
StringComparison_nonBMPSlowestPrenormal 1583 1657 +4.7% 0.96x (?)
StringComparison_slowerPrenormal 1681 1763 +4.9% 0.95x
StringComparison_zalgo 114293 114465 +0.2% 1.00x (?)
StringEdits 120046 125111 +4.2% 0.96x
StringEnumRawValueInitialization 980 984 +0.4% 1.00x (?)
StringEqualPointerComparison 315 315 +0.0% 1.00x
StringFromLongWholeSubstring 21 20 -4.8% 1.05x
StringHasPrefixAscii 1317 1346 +2.2% 0.98x
StringHasPrefixUnicode 28009 27823 -0.7% 1.01x
StringHasSuffixAscii 1432 1461 +2.0% 0.98x
StringHasSuffixUnicode 85088 84558 -0.6% 1.01x (?)
StringRemoveDupes 1193 1225 +2.7% 0.97x (?)
StringUTF16Builder 2375 2280 -4.0% 1.04x
StringWalk 1454 1433 -1.4% 1.01x (?)
StringWithCString 43169 42661 -1.2% 1.01x
SubstringFromLongStringGeneric 69 69 +0.0% 1.00x
SuffixAnyCollection 43 43 +0.0% 1.00x
SuffixAnySeqCRangeIter 3994 3993 -0.0% 1.00x (?)
SuffixAnySeqCRangeIterLazy 3990 3997 +0.2% 1.00x
SuffixAnySeqCntRange 36 35 -2.8% 1.03x
SuffixAnySeqCntRangeLazy 36 35 -2.8% 1.03x
SuffixAnySequence 5119 5104 -0.3% 1.00x
SuffixAnySequenceLazy 5212 5214 +0.0% 1.00x (?)
SuffixCountableRange 11 11 +0.0% 1.00x
SuffixCountableRangeLazy 11 11 +0.0% 1.00x
SuffixSequence 3764 3794 +0.8% 0.99x (?)
SuffixSequenceLazy 3764 3780 +0.4% 1.00x
SumUsingReduce 96 96 +0.0% 1.00x
SumUsingReduceInto 96 96 +0.0% 1.00x
SuperChars 42323 42870 +1.3% 0.99x
TwoSum 1028 995 -3.2% 1.03x
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode 316 316 +0.0% 1.00x
WordCountHistogramASCII 7413 7527 +1.5% 0.98x
WordCountHistogramUTF16 25058 25534 +1.9% 0.98x
WordCountUniqueASCII 1854 1855 +0.1% 1.00x (?)
WordSplitASCII 21369 21833 +2.2% 0.98x (?)
WordSplitUTF16 23395 23558 +0.7% 0.99x (?)
XorLoop 394 399 +1.3% 0.99x

Unoptimized (Onone)

Regression (29)
TEST OLD NEW DELTA SPEEDUP
NSStringConversion 335 597 +78.2% 0.56x
StrToInt 57329 83874 +46.3% 0.68x
RangeReplaceableCollectionPlusDefault 8361 11427 +36.7% 0.73x
LuhnAlgoEager 4707 5971 +26.9% 0.79x
CStringLongAscii 4593 5596 +21.8% 0.82x
StringWithCString 37541 45261 +20.6% 0.83x
CStringLongNonAscii 2098 2516 +19.9% 0.83x
LuhnAlgoLazy 5066 6039 +19.2% 0.84x
ExclusivityIndependent 68 79 +16.2% 0.86x
ErrorHandling 6838 7880 +15.2% 0.87x
CharIteration_korean_unicodeScalars_Backwards 284192 326459 +14.9% 0.87x (?)
SortStringsUnicode 2726 3081 +13.0% 0.88x
ArrayOfPOD 758 847 +11.7% 0.89x
ClassArrayGetter 984 1094 +11.2% 0.90x
CharIteration_russian_unicodeScalars_Backwards 245873 272421 +10.8% 0.90x
DropLastAnyCollectionLazy 34438 38123 +10.7% 0.90x
StrComplexWalk 6662 7270 +9.1% 0.92x
RangeIterationSigned64 39486 43073 +9.1% 0.92x
WordCountHistogramUTF16 69300 74868 +8.0% 0.93x (?)
OpenClose 514 554 +7.8% 0.93x
ObjectiveCBridgeStubNSDateMutationRef 15587 16722 +7.3% 0.93x
CharIndexing_russian_unicodeScalars_Backwards 324480 346361 +6.7% 0.94x (?)
SortSortedStrings 1000 1067 +6.7% 0.94x
StringRemoveDupes 1374 1457 +6.0% 0.94x
BinaryFloatingPointConversionFromBinaryInteger 6081 6423 +5.6% 0.95x
StringEqualPointerComparison 3488 3683 +5.6% 0.95x
ObjectiveCBridgeStubToNSDate 16069 16963 +5.6% 0.95x (?)
SuperChars 125223 131942 +5.4% 0.95x
ObjectiveCBridgeToNSSet 42482 44754 +5.3% 0.95x (?)
Improvement (14)
TEST OLD NEW DELTA SPEEDUP
StringFromLongWholeSubstring 22 12 -45.5% 1.83x
SubstringFromLongString 24 18 -25.0% 1.33x
CSVParsingAltIndices 2435016 2175376 -10.7% 1.12x
MapReduce 28019 25434 -9.2% 1.10x
ObjectiveCBridgeFromNSArrayAnyObjectToString 44454 40529 -8.8% 1.10x (?)
Dictionary3 1443 1318 -8.7% 1.09x
StringWordBuilderReservingCapacity 2172 2026 -6.7% 1.07x
StringWordBuilder 2520 2358 -6.4% 1.07x
CharIndexing_tweet_unicodeScalars 766459 719338 -6.1% 1.07x
FrequenciesUsingReduceInto 5677 5333 -6.1% 1.06x
CharIteration_chinese_unicodeScalars_Backwards 242771 228564 -5.9% 1.06x (?)
SubstringFromLongStringGeneric 107 101 -5.6% 1.06x
DictionarySubscriptDefaultMutationArrayOfObjects 9543 9055 -5.1% 1.05x
Dictionary3OfObjects 2385 2267 -4.9% 1.05x
No Changes (335)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 5111 5032 -1.5% 1.02x
AnyHashableWithAClass 87260 87463 +0.2% 1.00x (?)
Array2D 630211 636658 +1.0% 0.99x
ArrayAppend 4555 4665 +2.4% 0.98x
ArrayAppendArrayOfInt 866 865 -0.1% 1.00x (?)
ArrayAppendAscii 40263 39790 -1.2% 1.01x
ArrayAppendFromGeneric 868 864 -0.5% 1.00x
ArrayAppendGenericStructs 1488 1495 +0.5% 1.00x (?)
ArrayAppendLatin1 63267 65522 +3.6% 0.97x
ArrayAppendLazyMap 167730 167877 +0.1% 1.00x (?)
ArrayAppendOptionals 1477 1498 +1.4% 0.99x (?)
ArrayAppendRepeatCol 174820 169987 -2.8% 1.03x
ArrayAppendReserved 4173 4282 +2.6% 0.97x
ArrayAppendSequence 139900 143386 +2.5% 0.98x
ArrayAppendStrings 15394 15396 +0.0% 1.00x (?)
ArrayAppendToFromGeneric 867 863 -0.5% 1.00x (?)
ArrayAppendToGeneric 871 867 -0.5% 1.00x (?)
ArrayAppendUTF16 63303 66150 +4.5% 0.96x
ArrayInClass 6197 6192 -0.1% 1.00x (?)
ArrayLiteral 1796 1783 -0.7% 1.01x
ArrayOfGenericPOD2 1128 1129 +0.1% 1.00x
ArrayOfGenericRef 10099 10130 +0.3% 1.00x (?)
ArrayOfRef 9344 9462 +1.3% 0.99x
ArrayPlusEqualArrayOfInt 862 861 -0.1% 1.00x (?)
ArrayPlusEqualFiveElementCollection 233684 234237 +0.2% 1.00x (?)
ArrayPlusEqualSingleElementCollection 232497 231657 -0.4% 1.00x (?)
ArrayPlusEqualThreeElements 9237 9134 -1.1% 1.01x (?)
ArraySubscript 115968 116554 +0.5% 0.99x
ArrayValueProp 3624 3633 +0.2% 1.00x (?)
ArrayValueProp2 16219 15916 -1.9% 1.02x (?)
ArrayValueProp3 4173 4141 -0.8% 1.01x
ArrayValueProp4 4083 4083 +0.0% 1.00x
BitCount 7601 7661 +0.8% 0.99x
ByteSwap 9196 9227 +0.3% 1.00x
COWTree 11506 11844 +2.9% 0.97x (?)
CSVParsing 2431324 2399351 -1.3% 1.01x
CSVParsingAlt 1335125 1299676 -2.7% 1.03x (?)
CStringShortAscii 7908 8306 +5.0% 0.95x (?)
Calculator 1481 1545 +4.3% 0.96x
CaptureProp 250201 248922 -0.5% 1.01x (?)
CharIndexing_ascii_unicodeScalars 364982 355237 -2.7% 1.03x
CharIndexing_ascii_unicodeScalars_Backwards 393286 392412 -0.2% 1.00x (?)
CharIndexing_chinese_unicodeScalars 277043 267273 -3.5% 1.04x (?)
CharIndexing_chinese_unicodeScalars_Backwards 293657 291225 -0.8% 1.01x (?)
CharIndexing_japanese_unicodeScalars 439613 432967 -1.5% 1.02x (?)
CharIndexing_japanese_unicodeScalars_Backwards 460093 460725 +0.1% 1.00x (?)
CharIndexing_korean_unicodeScalars 352318 355332 +0.9% 0.99x (?)
CharIndexing_korean_unicodeScalars_Backwards 381515 380256 -0.3% 1.00x (?)
CharIndexing_punctuatedJapanese_unicodeScalars 64407 66166 +2.7% 0.97x
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 67733 67895 +0.2% 1.00x (?)
CharIndexing_punctuated_unicodeScalars 79876 79026 -1.1% 1.01x (?)
CharIndexing_punctuated_unicodeScalars_Backwards 83770 86050 +2.7% 0.97x (?)
CharIndexing_russian_unicodeScalars 303741 310197 +2.1% 0.98x
CharIndexing_tweet_unicodeScalars_Backwards 769842 760983 -1.2% 1.01x (?)
CharIndexing_utf16_unicodeScalars 308492 302812 -1.8% 1.02x (?)
CharIndexing_utf16_unicodeScalars_Backwards 327250 336179 +2.7% 0.97x (?)
CharIteration_ascii_unicodeScalars 157622 158846 +0.8% 0.99x (?)
CharIteration_ascii_unicodeScalars_Backwards 292875 304679 +4.0% 0.96x (?)
CharIteration_chinese_unicodeScalars 119755 116400 -2.8% 1.03x (?)
CharIteration_japanese_unicodeScalars 189463 184073 -2.8% 1.03x (?)
CharIteration_japanese_unicodeScalars_Backwards 366348 354829 -3.1% 1.03x (?)
CharIteration_korean_unicodeScalars 152662 151065 -1.0% 1.01x
CharIteration_punctuatedJapanese_unicodeScalars 28448 27461 -3.5% 1.04x
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 51441 52663 +2.4% 0.98x (?)
CharIteration_punctuated_unicodeScalars 35559 34915 -1.8% 1.02x (?)
CharIteration_punctuated_unicodeScalars_Backwards 66842 64285 -3.8% 1.04x (?)
CharIteration_russian_unicodeScalars 131299 130204 -0.8% 1.01x (?)
CharIteration_tweet_unicodeScalars 310575 302552 -2.6% 1.03x
CharIteration_tweet_unicodeScalars_Backwards 582489 601215 +3.2% 0.97x
CharIteration_utf16_unicodeScalars 130616 129234 -1.1% 1.01x (?)
CharIteration_utf16_unicodeScalars_Backwards 252266 248849 -1.4% 1.01x (?)
CharacterLiteralsLarge 5919 5740 -3.0% 1.03x (?)
CharacterLiteralsSmall 664 640 -3.6% 1.04x
CharacterPropertiesFetch 5606 5651 +0.8% 0.99x (?)
CharacterPropertiesPrecomputed 4268 4459 +4.5% 0.96x
CharacterPropertiesStashed 2492 2405 -3.5% 1.04x (?)
CharacterPropertiesStashedMemo 5176 5277 +2.0% 0.98x (?)
Chars 40958 39891 -2.6% 1.03x
Combos 2192 2281 +4.1% 0.96x (?)
DictOfArraysToArrayOfDicts 3418 3482 +1.9% 0.98x
Dictionary 2601 2600 -0.0% 1.00x (?)
Dictionary2 2897 2888 -0.3% 1.00x (?)
Dictionary2OfObjects 5549 5687 +2.5% 0.98x (?)
Dictionary4 1203 1196 -0.6% 1.01x (?)
Dictionary4OfObjects 1832 1848 +0.9% 0.99x (?)
DictionaryBridge 2185 2120 -3.0% 1.03x (?)
DictionaryGroup 4210 4179 -0.7% 1.01x
DictionaryGroupOfObjects 7353 7384 +0.4% 1.00x (?)
DictionaryLiteral 8560 8577 +0.2% 1.00x (?)
DictionaryOfObjects 6214 6266 +0.8% 0.99x (?)
DictionaryRemove 18174 18139 -0.2% 1.00x (?)
DictionaryRemoveOfObjects 49857 50638 +1.6% 0.98x (?)
DictionarySubscriptDefaultMutation 2036 2037 +0.0% 1.00x (?)
DictionarySubscriptDefaultMutationArray 2292 2286 -0.3% 1.00x
DictionarySubscriptDefaultMutationOfObjects 5572 5595 +0.4% 1.00x (?)
DictionarySwap 5232 5215 -0.3% 1.00x (?)
DictionarySwapOfObjects 22468 22459 -0.0% 1.00x (?)
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollection 13452 13456 +0.0% 1.00x (?)
DropFirstAnyCollectionLazy 103089 106820 +3.6% 0.97x
DropFirstAnySeqCRangeIter 20641 20691 +0.2% 1.00x (?)
DropFirstAnySeqCRangeIterLazy 20809 20293 -2.5% 1.03x
DropFirstAnySeqCntRange 13478 13511 +0.2% 1.00x (?)
DropFirstAnySeqCntRangeLazy 13607 13439 -1.2% 1.01x
DropFirstAnySequence 10899 10782 -1.1% 1.01x
DropFirstAnySequenceLazy 10900 11346 +4.1% 0.96x
DropFirstArray 3833 3733 -2.6% 1.03x (?)
DropFirstArrayLazy 25798 25395 -1.6% 1.02x
DropFirstCountableRange 323 325 +0.6% 0.99x
DropFirstCountableRangeLazy 26347 25552 -3.0% 1.03x
DropFirstSequence 10461 10376 -0.8% 1.01x
DropFirstSequenceLazy 10537 10335 -1.9% 1.02x (?)
DropLastAnyCollection 4514 4514 +0.0% 1.00x
DropLastAnySeqCRangeIter 37647 37468 -0.5% 1.00x
DropLastAnySeqCRangeIterLazy 37365 37899 +1.4% 0.99x
DropLastAnySeqCntRange 4511 4479 -0.7% 1.01x (?)
DropLastAnySeqCntRangeLazy 4508 4505 -0.1% 1.00x (?)
DropLastAnySequence 28951 28853 -0.3% 1.00x
DropLastAnySequenceLazy 28908 28657 -0.9% 1.01x (?)
DropLastCountableRange 112 113 +0.9% 0.99x
DropLastCountableRangeLazy 8786 8490 -3.4% 1.03x (?)
DropLastSequence 28713 28565 -0.5% 1.01x (?)
DropLastSequenceLazy 28939 28630 -1.1% 1.01x
DropWhileAnyCollection 17269 17158 -0.6% 1.01x
DropWhileAnyCollectionLazy 19076 18775 -1.6% 1.02x
DropWhileAnySeqCRangeIter 22035 21630 -1.8% 1.02x
DropWhileAnySeqCRangeIterLazy 19010 18653 -1.9% 1.02x
DropWhileAnySeqCntRange 17153 17063 -0.5% 1.01x (?)
DropWhileAnySeqCntRangeLazy 19090 18767 -1.7% 1.02x
DropWhileAnySequence 12083 11951 -1.1% 1.01x
DropWhileAnySequenceLazy 10124 9953 -1.7% 1.02x
DropWhileArrayLazy 14165 13637 -3.7% 1.04x
DropWhileCountableRange 3940 3888 -1.3% 1.01x
DropWhileCountableRangeLazy 18828 18370 -2.4% 1.02x
DropWhileSequence 11796 11716 -0.7% 1.01x (?)
DropWhileSequenceLazy 9861 9650 -2.1% 1.02x
EqualStringSubstring 92 93 +1.1% 0.99x
EqualSubstringString 91 94 +3.3% 0.97x
EqualSubstringSubstring 93 94 +1.1% 0.99x
EqualSubstringSubstringGenericEquatable 98 101 +3.1% 0.97x
ExclusivityGlobal 183 180 -1.6% 1.02x
FilterEvenUsingReduce 3649 3617 -0.9% 1.01x (?)
FilterEvenUsingReduceInto 1931 1925 -0.3% 1.00x (?)
FrequenciesUsingReduce 10805 10575 -2.1% 1.02x
Hanoi 20033 19866 -0.8% 1.01x
HashTest 21988 21573 -1.9% 1.02x
Histogram 6667 6477 -2.8% 1.03x
Integrate 838 826 -1.4% 1.01x
IterateData 5900 6009 +1.8% 0.98x
Join 1103 1117 +1.3% 0.99x
LazilyFilteredArrayContains 773624 770838 -0.4% 1.00x
LazilyFilteredArrays 1449236 1455761 +0.5% 1.00x (?)
LazilyFilteredRange 469171 475310 +1.3% 0.99x (?)
LessSubstringSubstring 94 95 +1.1% 0.99x
LessSubstringSubstringGenericComparable 98 99 +1.0% 0.99x
LinkedList 32017 31957 -0.2% 1.00x (?)
MapReduceAnyCollection 26413 25561 -3.2% 1.03x
MapReduceAnyCollectionShort 36395 37611 +3.3% 0.97x (?)
MapReduceClass 30600 30009 -1.9% 1.02x
MapReduceClassShort 41839 41456 -0.9% 1.01x
MapReduceLazyCollection 22543 22656 +0.5% 1.00x
MapReduceLazyCollectionShort 34674 33265 -4.1% 1.04x
MapReduceLazySequence 17938 17470 -2.6% 1.03x
MapReduceSequence 29500 28927 -1.9% 1.02x
MapReduceShort 36573 36858 +0.8% 0.99x (?)
MapReduceShortString 230 234 +1.7% 0.98x (?)
MapReduceString 1823 1799 -1.3% 1.01x
Memset 44722 44733 +0.0% 1.00x (?)
MonteCarloE 1240654 1234081 -0.5% 1.01x (?)
MonteCarloPi 5603856 5556572 -0.8% 1.01x
NSDictionaryCastToSwift 6719 6656 -0.9% 1.01x (?)
NSError 715 730 +2.1% 0.98x
NibbleSort 411198 410614 -0.1% 1.00x (?)
NopDeinit 169165 164965 -2.5% 1.03x
ObjectAllocation 1358 1348 -0.7% 1.01x (?)
ObjectiveCBridgeFromNSArrayAnyObject 23320 22847 -2.0% 1.02x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 8319 8137 -2.2% 1.02x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 35145 36348 +3.4% 0.97x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 129368 132991 +2.8% 0.97x (?)
ObjectiveCBridgeFromNSSetAnyObject 64082 62743 -2.1% 1.02x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 7271 7325 +0.7% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 76471 76935 +0.6% 0.99x (?)
ObjectiveCBridgeFromNSString 3146 3164 +0.6% 0.99x (?)
ObjectiveCBridgeFromNSStringForced 2835 2736 -3.5% 1.04x (?)
ObjectiveCBridgeStubDataAppend 4505 4533 +0.6% 0.99x (?)
ObjectiveCBridgeStubDateMutation 649 630 -2.9% 1.03x
ObjectiveCBridgeStubFromArrayOfNSString 28659 28933 +1.0% 0.99x (?)
ObjectiveCBridgeStubFromNSDate 4823 4825 +0.0% 1.00x (?)
ObjectiveCBridgeStubFromNSString 901 883 -2.0% 1.02x (?)
ObjectiveCBridgeStubFromNSStringRef 196 202 +3.1% 0.97x
ObjectiveCBridgeStubNSDataAppend 2955 2943 -0.4% 1.00x (?)
ObjectiveCBridgeStubToArrayOfNSString 29244 29498 +0.9% 0.99x (?)
ObjectiveCBridgeStubToNSDateRef 3497 3518 +0.6% 0.99x
ObjectiveCBridgeStubToNSString 1575 1577 +0.1% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 153 153 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 332685 342002 +2.8% 0.97x
ObjectiveCBridgeStubURLAppendPathRef 338501 326773 -3.5% 1.04x (?)
ObjectiveCBridgeToNSArray 30283 29848 -1.4% 1.01x (?)
ObjectiveCBridgeToNSDictionary 53998 51448 -4.7% 1.05x (?)
ObjectiveCBridgeToNSString 1349 1346 -0.2% 1.00x
ObserverClosure 6298 6265 -0.5% 1.01x (?)
ObserverForwarderStruct 4419 4404 -0.3% 1.00x (?)
ObserverPartiallyAppliedMethod 7918 7798 -1.5% 1.02x
ObserverUnappliedMethod 8132 7973 -2.0% 1.02x
PartialApplyDynamicType 42461 42549 +0.2% 1.00x (?)
Phonebook 19820 20225 +2.0% 0.98x
PointerArithmetics 116390 120298 +3.4% 0.97x
PolymorphicCalls 6312 6129 -2.9% 1.03x (?)
PopFrontArray 4554 4625 +1.6% 0.98x (?)
PopFrontArrayGeneric 5911 5693 -3.7% 1.04x (?)
PopFrontUnsafePointer 11043 11415 +3.4% 0.97x (?)
PrefixAnyCollection 13652 13489 -1.2% 1.01x
PrefixAnyCollectionLazy 106013 110320 +4.1% 0.96x
PrefixAnySeqCRangeIter 16438 16456 +0.1% 1.00x (?)
PrefixAnySeqCRangeIterLazy 16797 16315 -2.9% 1.03x
PrefixAnySeqCntRange 13557 13561 +0.0% 1.00x (?)
PrefixAnySeqCntRangeLazy 13545 13526 -0.1% 1.00x (?)
PrefixAnySequence 9005 8915 -1.0% 1.01x
PrefixAnySequenceLazy 9036 8976 -0.7% 1.01x
PrefixArray 3761 3923 +4.3% 0.96x
PrefixArrayLazy 25780 25244 -2.1% 1.02x
PrefixCountableRange 325 325 +0.0% 1.00x
PrefixCountableRangeLazy 26357 25555 -3.0% 1.03x (?)
PrefixSequence 8744 8650 -1.1% 1.01x
PrefixSequenceLazy 8752 8699 -0.6% 1.01x
PrefixWhileAnyCollection 24420 24406 -0.1% 1.00x (?)
PrefixWhileAnyCollectionLazy 15869 16239 +2.3% 0.98x
PrefixWhileAnySeqCRangeIter 33507 33243 -0.8% 1.01x (?)
PrefixWhileAnySeqCRangeIterLazy 15966 16012 +0.3% 1.00x
PrefixWhileAnySeqCntRange 24451 24026 -1.7% 1.02x
PrefixWhileAnySeqCntRangeLazy 15911 16006 +0.6% 0.99x (?)
PrefixWhileAnySequence 26721 25896 -3.1% 1.03x (?)
PrefixWhileAnySequenceLazy 9208 9048 -1.7% 1.02x
PrefixWhileArray 10624 10640 +0.2% 1.00x (?)
PrefixWhileArrayLazy 11981 11860 -1.0% 1.01x
PrefixWhileCountableRange 11122 10996 -1.1% 1.01x
PrefixWhileCountableRangeLazy 15653 15779 +0.8% 0.99x (?)
PrefixWhileSequence 25728 25814 +0.3% 1.00x (?)
PrefixWhileSequenceLazy 9104 8907 -2.2% 1.02x
Prims 9576 9609 +0.3% 1.00x (?)
PrimsSplit 9658 9659 +0.0% 1.00x (?)
QueueConcrete 15067 14922 -1.0% 1.01x
QueueGeneric 19060 18981 -0.4% 1.00x (?)
RC4 16808 16796 -0.1% 1.00x (?)
RGBHistogram 25908 26011 +0.4% 1.00x (?)
RGBHistogramOfObjects 96078 96392 +0.3% 1.00x (?)
RangeAssignment 2237 2234 -0.1% 1.00x (?)
RangeIterationSigned 16801 16783 -0.1% 1.00x (?)
RangeIterationUnsigned 35608 34857 -2.1% 1.02x (?)
RecursiveOwnedParameter 7887 7930 +0.5% 0.99x (?)
RemoveWhereFilterInts 2024 2044 +1.0% 0.99x
RemoveWhereFilterString 1474 1467 -0.5% 1.00x
RemoveWhereFilterStrings 2848 2861 +0.5% 1.00x
RemoveWhereMoveInts 3337 3333 -0.1% 1.00x (?)
RemoveWhereMoveStrings 4032 4035 +0.1% 1.00x
RemoveWhereQuadraticInts 7632 7638 +0.1% 1.00x
RemoveWhereQuadraticString 2292 2280 -0.5% 1.01x (?)
RemoveWhereQuadraticStrings 9319 9304 -0.2% 1.00x (?)
RemoveWhereSwapInts 5984 5989 +0.1% 1.00x (?)
RemoveWhereSwapStrings 6683 6725 +0.6% 0.99x
ReversedArray 13182 13012 -1.3% 1.01x
ReversedBidirectional 42411 42478 +0.2% 1.00x
ReversedDictionary 23436 23303 -0.6% 1.01x
RomanNumbers 1308569 1269481 -3.0% 1.03x
SequenceAlgosAnySequence 11334 10932 -3.5% 1.04x
SequenceAlgosArray 786987 770461 -2.1% 1.02x
SequenceAlgosContiguousArray 326040 318562 -2.3% 1.02x
SequenceAlgosList 8096 8060 -0.4% 1.00x
SequenceAlgosRange 1102926 1059867 -3.9% 1.04x
SequenceAlgosUnfoldSequence 5657 5471 -3.3% 1.03x
SetExclusiveOr 17244 17282 +0.2% 1.00x (?)
SetExclusiveOr_OfObjects 41869 41809 -0.1% 1.00x (?)
SetIntersect 8266 8237 -0.4% 1.00x
SetIntersect_OfObjects 12083 12109 +0.2% 1.00x
SetIsSubsetOf 1344 1360 +1.2% 0.99x
SetIsSubsetOf_OfObjects 1572 1564 -0.5% 1.01x
SetUnion 11886 11832 -0.5% 1.00x
SetUnion_OfObjects 29368 29271 -0.3% 1.00x (?)
SevenBoom 1645 1651 +0.4% 1.00x (?)
Sim2DArray 43669 43652 -0.0% 1.00x (?)
SortLargeExistentials 15577 15482 -0.6% 1.01x (?)
SortLettersInPlace 2683 2731 +1.8% 0.98x
SortStrings 1988 2089 +5.1% 0.95x
StackPromo 100254 99645 -0.6% 1.01x (?)
StaticArray 2609 2586 -0.9% 1.01x (?)
StringAdder 4702 4627 -1.6% 1.02x
StringBuilder 6763 6623 -2.1% 1.02x (?)
StringBuilderLong 2743 2671 -2.6% 1.03x
StringComparison_abnormal 1314 1372 +4.4% 0.96x (?)
StringComparison_ascii 9804 9674 -1.3% 1.01x
StringComparison_emoji 2091 2127 +1.7% 0.98x
StringComparison_fastPrenormal 5317 5373 +1.1% 0.99x
StringComparison_latin1 4143 4170 +0.7% 0.99x
StringComparison_longSharedPrefix 2466 2534 +2.8% 0.97x
StringComparison_nonBMPSlowestPrenormal 3833 3927 +2.5% 0.98x
StringComparison_slowerPrenormal 4404 4433 +0.7% 0.99x (?)
StringComparison_zalgo 116791 116419 -0.3% 1.00x (?)
StringEdits 342862 334470 -2.4% 1.03x (?)
StringEnumRawValueInitialization 17502 18103 +3.4% 0.97x (?)
StringFromLongWholeSubstringGeneric 200 203 +1.5% 0.99x
StringHasPrefixAscii 2981 3063 +2.8% 0.97x
StringHasPrefixUnicode 29371 29256 -0.4% 1.00x (?)
StringHasSuffixAscii 3171 3249 +2.5% 0.98x
StringHasSuffixUnicode 86160 86139 -0.0% 1.00x (?)
StringInterpolation 13347 13567 +1.6% 0.98x (?)
StringMatch 35123 34370 -2.1% 1.02x (?)
StringUTF16Builder 7686 7390 -3.9% 1.04x (?)
StringWalk 13145 12546 -4.6% 1.05x
SubstringComparable 2059 2056 -0.1% 1.00x (?)
SubstringEqualString 1905 1948 +2.3% 0.98x (?)
SubstringEquatable 6130 6125 -0.1% 1.00x (?)
SuffixAnyCollection 4572 4522 -1.1% 1.01x
SuffixAnyCollectionLazy 35857 37170 +3.7% 0.96x (?)
SuffixAnySeqCRangeIter 33770 33364 -1.2% 1.01x
SuffixAnySeqCRangeIterLazy 33491 33614 +0.4% 1.00x (?)
SuffixAnySeqCntRange 4523 4477 -1.0% 1.01x (?)
SuffixAnySeqCntRangeLazy 4472 4503 +0.7% 0.99x (?)
SuffixAnySequence 25305 25090 -0.8% 1.01x
SuffixAnySequenceLazy 25779 24916 -3.3% 1.03x (?)
SuffixCountableRange 112 111 -0.9% 1.01x (?)
SuffixCountableRangeLazy 8803 8492 -3.5% 1.04x (?)
SuffixSequence 24984 25064 +0.3% 1.00x
SuffixSequenceLazy 25224 24909 -1.2% 1.01x (?)
SumUsingReduce 163223 168489 +3.2% 0.97x
SumUsingReduceInto 158284 164832 +4.1% 0.96x
TwoSum 3957 3993 +0.9% 0.99x
TypeFlood 155 155 +0.0% 1.00x
UTF8Decode 29973 29851 -0.4% 1.00x (?)
Walsh 12021 12024 +0.0% 1.00x (?)
WordCountHistogramASCII 47049 47210 +0.3% 1.00x (?)
WordCountUniqueASCII 7992 8002 +0.1% 1.00x
WordCountUniqueUTF16 29287 28296 -3.4% 1.04x (?)
WordSplitASCII 27505 26852 -2.4% 1.02x (?)
WordSplitUTF16 28064 28817 +2.7% 0.97x (?)
XorLoop 23902 23420 -2.0% 1.02x (?)
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
Copy link
Member Author

Regression from RemoveWhereQuadraticString seems to be that small strings added just barely enough code to tilt the inlining heuristic away from one top level of inlining, and thus there's some ARC.

@milseman
Copy link
Member Author

So yeah, that's not nearly as bad as I feared and I think a lot of it will improve when we switch to a more sane bit-layout and branching scheme.

@milseman
Copy link
Member Author

Now trying with ASCII literals

@swift-ci please smoke benchmark

@milseman
Copy link
Member Author

(expected net regression from spill-based approaches, just interested in magnitude)

@swift-ci
Copy link
Contributor

Build comment file:

Optimized (O)

Regression (76)
TEST OLD NEW DELTA SPEEDUP
StringHasSuffixAscii 1431 57455 +3915.0% 0.02x
StringHasPrefixAscii 1289 46875 +3536.5% 0.03x
Dictionary 504 5447 +980.8% 0.09x
StringEnumRawValueInitialization 956 5618 +487.7% 0.17x
OpenClose 126 552 +338.1% 0.23x
DictionaryOfObjects 2175 7706 +254.3% 0.28x
SortSortedStrings 956 2733 +185.9% 0.35x
Phonebook 3797 10538 +177.5% 0.36x
Calculator 635 1741 +174.2% 0.36x
StringWordBuilderReservingCapacity 1268 3383 +166.8% 0.37x
SortStrings 1724 4453 +158.3% 0.39x
RemoveWhereQuadraticString 200 496 +148.0% 0.40x
DictOfArraysToArrayOfDicts 795 1970 +147.8% 0.40x
StringWordBuilder 1701 4052 +138.2% 0.42x
StringBuilder 1385 2965 +114.1% 0.47x
StringMatch 8323 17768 +113.5% 0.47x
StringFromLongWholeSubstringGeneric 10 21 +110.0% 0.48x
SubstringEqualString 522 1077 +106.3% 0.48x
CSVParsingAltIndices 356838 721609 +102.2% 0.49x
NSStringConversion 283 564 +99.3% 0.50x
StrToInt 2073 4013 +93.6% 0.52x
StringWithCString 43011 72129 +67.7% 0.60x
Sim2DArray 414 670 +61.8% 0.62x
ObjectiveCBridgeStubToNSString 1517 2402 +58.3% 0.63x
StringEdits 117063 183443 +56.7% 0.64x
ErrorHandling 2352 3607 +53.4% 0.65x
MapReduceShortString 21 32 +52.4% 0.66x
RomanNumbers 111758 158162 +41.5% 0.71x
EqualStringSubstring 48 66 +37.5% 0.73x
EqualSubstringString 48 66 +37.5% 0.73x
ObjectiveCBridgeStubToArrayOfNSString 29286 40251 +37.4% 0.73x
StringBuilderLong 1224 1637 +33.7% 0.75x (?)
DictionaryBridge 1982 2620 +32.2% 0.76x
StringUTF16Builder 2367 3080 +30.1% 0.77x
Join 373 480 +28.7% 0.78x
StringComparison_latin1 563 708 +25.8% 0.80x
StringComparison_fastPrenormal 709 887 +25.1% 0.80x
SortLettersInPlace 1134 1405 +23.9% 0.81x
HashTest 1765 2169 +22.9% 0.81x
RemoveWhereFilterString 309 379 +22.7% 0.82x
SortLargeExistentials 6824 8289 +21.5% 0.82x
StringAdder 4234 5080 +20.0% 0.83x
Combos 455 535 +17.6% 0.85x
SubstringComparable 41 48 +17.1% 0.85x
RangeIterationSigned 171 200 +17.0% 0.86x
SortStringsUnicode 2449 2851 +16.4% 0.86x
WordCountHistogramUTF16 22973 26611 +15.8% 0.86x
StringComparison_slowerPrenormal 1556 1778 +14.3% 0.88x (?)
StrComplexWalk 1562 1781 +14.0% 0.88x
StringComparison_nonBMPSlowestPrenormal 1461 1651 +13.0% 0.88x
MapReduceLazyCollectionShort 34 38 +11.8% 0.89x
COWTree 5335 5943 +11.4% 0.90x
StringComparison_emoji 764 846 +10.7% 0.90x
StringEqualPointerComparison 286 315 +10.1% 0.91x
ArrayAppendUTF16 37141 40874 +10.1% 0.91x
SubstringFromLongString 10 11 +10.0% 0.91x
RangeReplaceableCollectionPlusDefault 987 1083 +9.7% 0.91x
StringComparison_abnormal 733 804 +9.7% 0.91x (?)
ObjectAllocation 184 201 +9.2% 0.92x
SuffixCountableRange 11 12 +9.1% 0.92x
ObjectiveCBridgeStubDataAppend 3991 4344 +8.8% 0.92x
Dictionary3 233 253 +8.6% 0.92x
NopDeinit 21569 23344 +8.2% 0.92x
ObjectiveCBridgeStubFromArrayOfNSString 27026 29231 +8.2% 0.92x
SubstringEquatable 1325 1433 +8.2% 0.92x
StringComparison_longSharedPrefix 885 955 +7.9% 0.93x
Hanoi 3354 3616 +7.8% 0.93x
ObjectiveCBridgeFromNSArrayAnyObjectForced 4000 4298 +7.4% 0.93x (?)
LazilyFilteredArrayContains 35476 37852 +6.7% 0.94x
SumUsingReduceInto 96 102 +6.2% 0.94x
EqualSubstringSubstring 48 51 +6.2% 0.94x
LessSubstringSubstring 48 51 +6.2% 0.94x
LessSubstringSubstringGenericComparable 48 51 +6.2% 0.94x
CStringLongNonAscii 2143 2274 +6.1% 0.94x
CStringShortAscii 4710 4996 +6.1% 0.94x
StackPromo 22228 23410 +5.3% 0.95x
Improvement (19)
TEST OLD NEW DELTA SPEEDUP
ObjectiveCBridgeToNSString 1297 493 -62.0% 2.63x
ObjectiveCBridgeToNSArray 29411 15642 -46.8% 1.88x
SevenBoom 1534 890 -42.0% 1.72x
NSError 296 173 -41.6% 1.71x
PrefixWhileCountableRange 53 35 -34.0% 1.51x
ObjectiveCBridgeToNSSet 41908 28956 -30.9% 1.45x
ObjectiveCBridgeToNSDictionary 51007 39802 -22.0% 1.28x
AngryPhonebook 3620 2874 -20.6% 1.26x (?)
ObjectiveCBridgeStubURLAppendPath 334765 267128 -20.2% 1.25x
ObjectiveCBridgeStubURLAppendPathRef 330044 266817 -19.2% 1.24x
StringInterpolation 10761 8708 -19.1% 1.24x
ReversedBidirectional 17181 15407 -10.3% 1.12x
DropLastCountableRange 12 11 -8.3% 1.09x
SuffixCountableRangeLazy 12 11 -8.3% 1.09x
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 37414 34619 -7.5% 1.08x
CharacterLiteralsLarge 6098 5788 -5.1% 1.05x
BinaryFloatingPointConversionFromBinaryInteger 40 38 -5.0% 1.05x
SetIsSubsetOf_OfObjects 382 363 -5.0% 1.05x
SetIsSubsetOf 314 299 -4.8% 1.05x
No Changes (283)
TEST OLD NEW DELTA SPEEDUP
AnyHashableWithAClass 70392 70966 +0.8% 0.99x
Array2D 2556 2551 -0.2% 1.00x (?)
ArrayAppend 1029 1031 +0.2% 1.00x (?)
ArrayAppendArrayOfInt 795 798 +0.4% 1.00x (?)
ArrayAppendAscii 13251 13805 +4.2% 0.96x
ArrayAppendFromGeneric 797 796 -0.1% 1.00x (?)
ArrayAppendGenericStructs 1427 1430 +0.2% 1.00x (?)
ArrayAppendLatin1 38070 40056 +5.2% 0.95x
ArrayAppendLazyMap 1341 1339 -0.1% 1.00x (?)
ArrayAppendOptionals 1428 1427 -0.1% 1.00x (?)
ArrayAppendRepeatCol 1339 1344 +0.4% 1.00x (?)
ArrayAppendReserved 755 757 +0.3% 1.00x (?)
ArrayAppendSequence 1132 1135 +0.3% 1.00x (?)
ArrayAppendStrings 15271 15175 -0.6% 1.01x
ArrayAppendToFromGeneric 794 799 +0.6% 0.99x (?)
ArrayAppendToGeneric 797 799 +0.3% 1.00x (?)
ArrayInClass 86 86 +0.0% 1.00x
ArrayLiteral 0 0 +0.0% 1.00x
ArrayOfGenericPOD2 150 151 +0.7% 0.99x
ArrayOfGenericRef 4366 4364 -0.0% 1.00x (?)
ArrayOfPOD 183 183 +0.0% 1.00x
ArrayOfRef 4358 4385 +0.6% 0.99x
ArrayPlusEqualArrayOfInt 784 798 +1.8% 0.98x (?)
ArrayPlusEqualFiveElementCollection 5468 5493 +0.5% 1.00x
ArrayPlusEqualSingleElementCollection 1023 1019 -0.4% 1.00x (?)
ArrayPlusEqualThreeElements 1661 1661 +0.0% 1.00x
ArraySubscript 1540 1513 -1.8% 1.02x (?)
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
BitCount 202 211 +4.5% 0.96x
ByteSwap 98 98 +0.0% 1.00x
CSVParsing 760211 748085 -1.6% 1.02x
CSVParsingAlt 726827 726762 -0.0% 1.00x (?)
CStringLongAscii 4781 4775 -0.1% 1.00x
CaptureProp 3882 3908 +0.7% 0.99x
CharIndexing_ascii_unicodeScalars 14742 14265 -3.2% 1.03x
CharIndexing_ascii_unicodeScalars_Backwards 14494 14490 -0.0% 1.00x (?)
CharIndexing_chinese_unicodeScalars 11166 10812 -3.2% 1.03x
CharIndexing_chinese_unicodeScalars_Backwards 10953 10976 +0.2% 1.00x (?)
CharIndexing_japanese_unicodeScalars 17661 17067 -3.4% 1.03x
CharIndexing_japanese_unicodeScalars_Backwards 17310 17353 +0.2% 1.00x
CharIndexing_korean_unicodeScalars 14299 13849 -3.1% 1.03x
CharIndexing_korean_unicodeScalars_Backwards 14021 14058 +0.3% 1.00x
CharIndexing_punctuatedJapanese_unicodeScalars 2679 2607 -2.7% 1.03x
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 2629 2636 +0.3% 1.00x
CharIndexing_punctuated_unicodeScalars 3349 3251 -2.9% 1.03x
CharIndexing_punctuated_unicodeScalars_Backwards 3286 3296 +0.3% 1.00x
CharIndexing_russian_unicodeScalars 12278 11891 -3.2% 1.03x
CharIndexing_russian_unicodeScalars_Backwards 12055 12080 +0.2% 1.00x
CharIndexing_tweet_unicodeScalars 29079 28088 -3.4% 1.04x
CharIndexing_tweet_unicodeScalars_Backwards 28528 28277 -0.9% 1.01x
CharIndexing_utf16_unicodeScalars 20159 20045 -0.6% 1.01x
CharIndexing_utf16_unicodeScalars_Backwards 20936 21050 +0.5% 0.99x
CharIteration_ascii_unicodeScalars 21514 21029 -2.3% 1.02x
CharIteration_ascii_unicodeScalars_Backwards 12684 12698 +0.1% 1.00x (?)
CharIteration_chinese_unicodeScalars 16282 15927 -2.2% 1.02x
CharIteration_chinese_unicodeScalars_Backwards 9624 9641 +0.2% 1.00x (?)
CharIteration_japanese_unicodeScalars 25786 25197 -2.3% 1.02x
CharIteration_japanese_unicodeScalars_Backwards 15192 15193 +0.0% 1.00x (?)
CharIteration_korean_unicodeScalars 20878 20399 -2.3% 1.02x
CharIteration_korean_unicodeScalars_Backwards 12305 12333 +0.2% 1.00x
CharIteration_punctuatedJapanese_unicodeScalars 3831 3789 -1.1% 1.01x
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 2332 2347 +0.6% 0.99x
CharIteration_punctuated_unicodeScalars 4818 4732 -1.8% 1.02x
CharIteration_punctuated_unicodeScalars_Backwards 2908 2928 +0.7% 0.99x
CharIteration_russian_unicodeScalars 17913 17519 -2.2% 1.02x
CharIteration_russian_unicodeScalars_Backwards 10581 10604 +0.2% 1.00x
CharIteration_tweet_unicodeScalars 42667 41481 -2.8% 1.03x
CharIteration_tweet_unicodeScalars_Backwards 25028 25067 +0.2% 1.00x (?)
CharIteration_utf16_unicodeScalars 27556 27551 -0.0% 1.00x
CharIteration_utf16_unicodeScalars_Backwards 15777 16331 +3.5% 0.97x
CharacterLiteralsSmall 411 414 +0.7% 0.99x
CharacterPropertiesFetch 4604 4631 +0.6% 0.99x (?)
CharacterPropertiesPrecomputed 982 1000 +1.8% 0.98x (?)
CharacterPropertiesStashed 1564 1565 +0.1% 1.00x (?)
CharacterPropertiesStashedMemo 1526 1563 +2.4% 0.98x
Chars 971 972 +0.1% 1.00x
ClassArrayGetter 15 15 +0.0% 1.00x
Dictionary2 1618 1640 +1.4% 0.99x
Dictionary2OfObjects 2960 2974 +0.5% 1.00x (?)
Dictionary3OfObjects 672 687 +2.2% 0.98x
Dictionary4 146 148 +1.4% 0.99x
Dictionary4OfObjects 201 203 +1.0% 0.99x
DictionaryGroup 133 133 +0.0% 1.00x
DictionaryGroupOfObjects 1925 1943 +0.9% 0.99x
DictionaryLiteral 1604 1610 +0.4% 1.00x (?)
DictionaryRemove 2736 2648 -3.2% 1.03x (?)
DictionaryRemoveOfObjects 23762 23824 +0.3% 1.00x (?)
DictionarySubscriptDefaultMutation 143 142 -0.7% 1.01x
DictionarySubscriptDefaultMutationArray 489 493 +0.8% 0.99x
DictionarySubscriptDefaultMutationArrayOfObjects 3812 3854 +1.1% 0.99x
DictionarySubscriptDefaultMutationOfObjects 1398 1404 +0.4% 1.00x (?)
DictionarySwap 471 486 +3.2% 0.97x
DictionarySwapOfObjects 7432 7431 -0.0% 1.00x (?)
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollection 102 102 +0.0% 1.00x
DropFirstAnyCollectionLazy 65011 64926 -0.1% 1.00x (?)
DropFirstAnySeqCRangeIter 18143 17958 -1.0% 1.01x
DropFirstAnySeqCRangeIterLazy 18250 18080 -0.9% 1.01x
DropFirstAnySeqCntRange 94 95 +1.1% 0.99x
DropFirstAnySeqCntRangeLazy 94 95 +1.1% 0.99x
DropFirstAnySequence 4680 4470 -4.5% 1.05x
DropFirstAnySequenceLazy 4635 4496 -3.0% 1.03x
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 2699 2698 -0.0% 1.00x (?)
DropFirstSequenceLazy 2786 2794 +0.3% 1.00x
DropLastAnyCollection 37 37 +0.0% 1.00x
DropLastAnyCollectionLazy 22076 21701 -1.7% 1.02x (?)
DropLastAnySeqCRangeIter 3813 3786 -0.7% 1.01x (?)
DropLastAnySeqCRangeIterLazy 3815 3822 +0.2% 1.00x
DropLastAnySeqCntRange 30 29 -3.3% 1.03x
DropLastAnySeqCntRangeLazy 29 30 +3.4% 0.97x
DropLastAnySequence 5236 5119 -2.2% 1.02x
DropLastAnySequenceLazy 5345 5219 -2.4% 1.02x
DropLastCountableRangeLazy 11 11 +0.0% 1.00x
DropLastSequence 691 682 -1.3% 1.01x (?)
DropLastSequenceLazy 696 682 -2.0% 1.02x
DropWhileAnyCollection 125 125 +0.0% 1.00x
DropWhileAnyCollectionLazy 166 166 +0.0% 1.00x
DropWhileAnySeqCRangeIter 15261 14620 -4.2% 1.04x
DropWhileAnySeqCRangeIterLazy 166 167 +0.6% 0.99x
DropWhileAnySeqCntRange 117 118 +0.9% 0.99x
DropWhileAnySeqCntRangeLazy 166 168 +1.2% 0.99x
DropWhileAnySequence 4966 4800 -3.3% 1.03x
DropWhileAnySequenceLazy 1856 1856 +0.0% 1.00x
DropWhileArrayLazy 129 129 +0.0% 1.00x
DropWhileCountableRange 36 35 -2.8% 1.03x
DropWhileCountableRangeLazy 111 111 +0.0% 1.00x
DropWhileSequence 1344 1344 +0.0% 1.00x
DropWhileSequenceLazy 88 88 +0.0% 1.00x
EqualSubstringSubstringGenericEquatable 51 51 +0.0% 1.00x
ExclusivityGlobal 5 5 +0.0% 1.00x
ExclusivityIndependent 2 2 +0.0% 1.00x
FilterEvenUsingReduce 1323 1296 -2.0% 1.02x (?)
FilterEvenUsingReduceInto 149 148 -0.7% 1.01x (?)
FrequenciesUsingReduce 6710 6855 +2.2% 0.98x (?)
FrequenciesUsingReduceInto 3138 3153 +0.5% 1.00x (?)
Histogram 322 321 -0.3% 1.00x
Integrate 218 217 -0.5% 1.00x (?)
IterateData 1350 1357 +0.5% 0.99x
LazilyFilteredArrays 67196 65384 -2.7% 1.03x (?)
LazilyFilteredRange 3823 4008 +4.8% 0.95x
LinkedList 7541 7523 -0.2% 1.00x
LuhnAlgoEager 580 583 +0.5% 0.99x (?)
LuhnAlgoLazy 584 587 +0.5% 0.99x
MapReduce 399 400 +0.3% 1.00x (?)
MapReduceAnyCollection 401 401 +0.0% 1.00x
MapReduceAnyCollectionShort 2250 2267 +0.8% 0.99x
MapReduceClass 3025 3043 +0.6% 0.99x
MapReduceClassShort 4588 4585 -0.1% 1.00x (?)
MapReduceLazyCollection 13 13 +0.0% 1.00x
MapReduceLazySequence 86 86 +0.0% 1.00x
MapReduceSequence 455 442 -2.9% 1.03x (?)
MapReduceShort 2058 2016 -2.0% 1.02x
MapReduceString 84 80 -4.8% 1.05x
Memset 220 220 +0.0% 1.00x
MonteCarloE 10733 10278 -4.2% 1.04x
MonteCarloPi 42802 42940 +0.3% 1.00x (?)
NSDictionaryCastToSwift 5396 5382 -0.3% 1.00x (?)
NibbleSort 3957 4121 +4.1% 0.96x
ObjectiveCBridgeFromNSArrayAnyObject 20377 20800 +2.1% 0.98x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 38459 38199 -0.7% 1.01x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 128006 132695 +3.7% 0.96x (?)
ObjectiveCBridgeFromNSSetAnyObject 60770 60851 +0.1% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 4524 4522 -0.0% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 68776 69253 +0.7% 0.99x (?)
ObjectiveCBridgeFromNSString 1368 1324 -3.2% 1.03x (?)
ObjectiveCBridgeFromNSStringForced 2460 2524 +2.6% 0.97x (?)
ObjectiveCBridgeStubDateMutation 257 257 +0.0% 1.00x
ObjectiveCBridgeStubFromNSDate 4077 4114 +0.9% 0.99x
ObjectiveCBridgeStubFromNSString 860 828 -3.7% 1.04x (?)
ObjectiveCBridgeStubFromNSStringRef 161 155 -3.7% 1.04x (?)
ObjectiveCBridgeStubNSDataAppend 2530 2536 +0.2% 1.00x (?)
ObjectiveCBridgeStubNSDateMutationRef 13452 13409 -0.3% 1.00x (?)
ObjectiveCBridgeStubToNSDate 15225 15309 +0.6% 0.99x (?)
ObjectiveCBridgeStubToNSDateRef 3448 3414 -1.0% 1.01x (?)
ObjectiveCBridgeStubToNSStringRef 115 113 -1.7% 1.02x
ObserverClosure 2178 2153 -1.1% 1.01x
ObserverForwarderStruct 997 1000 +0.3% 1.00x (?)
ObserverPartiallyAppliedMethod 3722 3708 -0.4% 1.00x (?)
ObserverUnappliedMethod 2371 2388 +0.7% 0.99x
PartialApplyDynamicType 0 0 +0.0% 1.00x
PointerArithmetics 34363 34382 +0.1% 1.00x (?)
PolymorphicCalls 25 25 +0.0% 1.00x
PopFrontArray 1974 1947 -1.4% 1.01x
PopFrontArrayGeneric 1976 1960 -0.8% 1.01x (?)
PopFrontUnsafePointer 9364 9434 +0.7% 0.99x (?)
PrefixAnyCollection 102 102 +0.0% 1.00x
PrefixAnyCollectionLazy 65089 66986 +2.9% 0.97x
PrefixAnySeqCRangeIter 14275 14030 -1.7% 1.02x
PrefixAnySeqCRangeIterLazy 14254 14028 -1.6% 1.02x
PrefixAnySeqCntRange 94 94 +0.0% 1.00x
PrefixAnySeqCntRangeLazy 94 94 +0.0% 1.00x
PrefixAnySequence 3961 3819 -3.6% 1.04x
PrefixAnySequenceLazy 3966 3820 -3.7% 1.04x
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 1326 1325 -0.1% 1.00x (?)
PrefixSequenceLazy 1414 1413 -0.1% 1.00x (?)
PrefixWhileAnyCollection 172 171 -0.6% 1.01x
PrefixWhileAnyCollectionLazy 108 108 +0.0% 1.00x
PrefixWhileAnySeqCRangeIter 9403 9376 -0.3% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 90 90 +0.0% 1.00x
PrefixWhileAnySeqCntRange 166 164 -1.2% 1.01x
PrefixWhileAnySeqCntRangeLazy 108 108 +0.0% 1.00x
PrefixWhileAnySequence 10676 10531 -1.4% 1.01x
PrefixWhileAnySequenceLazy 1393 1393 +0.0% 1.00x
PrefixWhileArray 88 88 +0.0% 1.00x
PrefixWhileArrayLazy 70 70 +0.0% 1.00x
PrefixWhileCountableRangeLazy 35 35 +0.0% 1.00x
PrefixWhileSequence 380 379 -0.3% 1.00x (?)
PrefixWhileSequenceLazy 52 52 +0.0% 1.00x
Prims 762 750 -1.6% 1.02x (?)
PrimsSplit 761 754 -0.9% 1.01x (?)
QueueConcrete 1312 1314 +0.2% 1.00x
QueueGeneric 1160 1154 -0.5% 1.01x (?)
RC4 171 165 -3.5% 1.04x
RGBHistogram 2269 2200 -3.0% 1.03x
RGBHistogramOfObjects 23568 23712 +0.6% 0.99x
RangeAssignment 353 355 +0.6% 0.99x
RangeIterationSigned64 200 200 +0.0% 1.00x
RangeIterationUnsigned 200 200 +0.0% 1.00x
RecursiveOwnedParameter 2348 2349 +0.0% 1.00x (?)
RemoveWhereFilterInts 45 45 +0.0% 1.00x
RemoveWhereFilterStrings 434 433 -0.2% 1.00x
RemoveWhereMoveInts 17 17 +0.0% 1.00x
RemoveWhereMoveStrings 520 520 +0.0% 1.00x
RemoveWhereQuadraticInts 1288 1288 +0.0% 1.00x
RemoveWhereQuadraticStrings 2759 2755 -0.1% 1.00x (?)
RemoveWhereSwapInts 19 19 +0.0% 1.00x
RemoveWhereSwapStrings 849 850 +0.1% 1.00x (?)
ReversedArray 58 57 -1.7% 1.02x
ReversedDictionary 134 133 -0.7% 1.01x (?)
SequenceAlgosAnySequence 10187 10053 -1.3% 1.01x
SequenceAlgosArray 1574 1576 +0.1% 1.00x (?)
SequenceAlgosContiguousArray 1584 1586 +0.1% 1.00x (?)
SequenceAlgosList 1356 1346 -0.7% 1.01x
SequenceAlgosRange 4295 4293 -0.0% 1.00x (?)
SequenceAlgosUnfoldSequence 1079 1079 +0.0% 1.00x
SetExclusiveOr 3380 3415 +1.0% 0.99x
SetExclusiveOr_OfObjects 8770 8783 +0.1% 1.00x (?)
SetIntersect 317 319 +0.6% 0.99x (?)
SetIntersect_OfObjects 1773 1773 +0.0% 1.00x
SetUnion 3090 3109 +0.6% 0.99x
SetUnion_OfObjects 7280 7133 -2.0% 1.02x
StaticArray 5 5 +0.0% 1.00x
StringComparison_ascii 991 1023 +3.2% 0.97x
StringComparison_zalgo 114242 114566 +0.3% 1.00x
StringFromLongWholeSubstring 21 20 -4.8% 1.05x
StringHasPrefixUnicode 27892 27610 -1.0% 1.01x (?)
StringHasSuffixUnicode 85188 84891 -0.3% 1.00x
StringRemoveDupes 1195 1231 +3.0% 0.97x (?)
StringWalk 1430 1420 -0.7% 1.01x
SubstringFromLongStringGeneric 69 69 +0.0% 1.00x
SuffixAnyCollection 43 43 +0.0% 1.00x
SuffixAnyCollectionLazy 21797 21629 -0.8% 1.01x (?)
SuffixAnySeqCRangeIter 4015 4013 -0.0% 1.00x (?)
SuffixAnySeqCRangeIterLazy 4012 3997 -0.4% 1.00x (?)
SuffixAnySeqCntRange 35 36 +2.9% 0.97x
SuffixAnySeqCntRangeLazy 35 36 +2.9% 0.97x
SuffixAnySequence 5205 5126 -1.5% 1.02x
SuffixAnySequenceLazy 5302 5224 -1.5% 1.01x
SuffixSequence 3743 3770 +0.7% 0.99x
SuffixSequenceLazy 3746 3770 +0.6% 0.99x
SumUsingReduce 96 97 +1.0% 0.99x
SuperChars 42468 42830 +0.9% 0.99x (?)
TwoSum 1028 991 -3.6% 1.04x
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode 327 320 -2.1% 1.02x
Walsh 419 416 -0.7% 1.01x
WordCountHistogramASCII 7222 7469 +3.4% 0.97x
WordCountUniqueASCII 1807 1869 +3.4% 0.97x
WordCountUniqueUTF16 17541 18176 +3.6% 0.97x (?)
WordSplitASCII 21089 21712 +3.0% 0.97x
WordSplitUTF16 22911 22919 +0.0% 1.00x (?)
XorLoop 393 394 +0.3% 1.00x (?)

Unoptimized (Onone)

Regression (62)
TEST OLD NEW DELTA SPEEDUP
StringHasSuffixAscii 3118 59143 +1796.8% 0.05x
StringHasPrefixAscii 3020 48014 +1489.9% 0.06x
StrToInt 57417 234269 +308.0% 0.25x
Dictionary 2616 9580 +266.2% 0.27x
StringEnumRawValueInitialization 17911 48463 +170.6% 0.37x
SortSortedStrings 1044 2754 +163.8% 0.38x
OpenClose 552 1304 +136.2% 0.42x
RangeReplaceableCollectionPlusDefault 8091 18958 +134.3% 0.43x
StringWithCString 37578 87679 +133.3% 0.43x
DictionaryOfObjects 6202 14403 +132.2% 0.43x
Calculator 1433 3316 +131.4% 0.43x
SortStrings 2037 4676 +129.6% 0.44x
NSStringConversion 329 610 +85.4% 0.54x
DictOfArraysToArrayOfDicts 3275 5390 +64.6% 0.61x
StringWordBuilder 2503 4025 +60.8% 0.62x
StringWordBuilderReservingCapacity 2183 3348 +53.4% 0.65x
ObjectiveCBridgeStubToNSString 1586 2425 +52.9% 0.65x
Phonebook 19817 27617 +39.4% 0.72x
ObjectiveCBridgeStubToArrayOfNSString 29305 40197 +37.2% 0.73x
ErrorHandling 7260 9670 +33.2% 0.75x
StringBuilder 6878 8899 +29.4% 0.77x
LuhnAlgoEager 4737 6085 +28.5% 0.78x
StringMatch 33523 41991 +25.3% 0.80x
StringUTF16Builder 7689 9590 +24.7% 0.80x
DictionaryBridge 2156 2688 +24.7% 0.80x
LuhnAlgoLazy 5039 6248 +24.0% 0.81x
CStringLongAscii 4596 5595 +21.7% 0.82x
CaptureProp 246678 299078 +21.2% 0.82x
SubstringEqualString 1892 2275 +20.2% 0.83x
StringAdder 4679 5593 +19.5% 0.84x
StringEdits 361926 423654 +17.1% 0.85x
Combos 2095 2411 +15.1% 0.87x
SortLettersInPlace 2658 3012 +13.3% 0.88x
SuperChars 124345 140598 +13.1% 0.88x
CStringLongNonAscii 2182 2462 +12.8% 0.89x
CStringShortAscii 7584 8551 +12.8% 0.89x
ObjectiveCBridgeStubFromArrayOfNSString 26181 29490 +12.6% 0.89x (?)
MapReduceShortString 239 268 +12.1% 0.89x
Chars 39444 44054 +11.7% 0.90x
ClassArrayGetter 982 1088 +10.8% 0.90x
RomanNumbers 1199839 1325877 +10.5% 0.90x
SortStringsUnicode 2756 3032 +10.0% 0.91x
RemoveWhereQuadraticString 2311 2526 +9.3% 0.91x
ObjectiveCBridgeFromNSArrayAnyObjectToString 42042 45877 +9.1% 0.92x
StrComplexWalk 6663 7269 +9.1% 0.92x
EqualStringSubstring 91 99 +8.8% 0.92x
RemoveWhereFilterString 1458 1581 +8.4% 0.92x
COWTree 11652 12634 +8.4% 0.92x
ObjectAllocation 1342 1455 +8.4% 0.92x
LazilyFilteredArrays 1444315 1559052 +7.9% 0.93x
StringComparison_abnormal 1334 1438 +7.8% 0.93x (?)
EqualSubstringString 92 99 +7.6% 0.93x
StringBuilderLong 2727 2932 +7.5% 0.93x
StringEqualPointerComparison 3378 3626 +7.3% 0.93x
WordSplitUTF16 27066 28877 +6.7% 0.94x
SortLargeExistentials 15691 16733 +6.6% 0.94x
HashTest 21441 22847 +6.6% 0.94x
SubstringEquatable 5934 6319 +6.5% 0.94x
QueueGeneric 18866 20049 +6.3% 0.94x
SuffixAnyCollectionLazy 31895 33701 +5.7% 0.95x (?)
ExclusivityIndependent 73 77 +5.5% 0.95x (?)
CharIteration_punctuated_unicodeScalars 34732 36630 +5.5% 0.95x
Improvement (36)
TEST OLD NEW DELTA SPEEDUP
ObjectiveCBridgeToNSString 1347 527 -60.9% 2.56x
StringFromLongWholeSubstring 22 12 -45.5% 1.83x
ObjectiveCBridgeToNSArray 29360 16194 -44.8% 1.81x
SevenBoom 1649 1124 -31.8% 1.47x (?)
ObjectiveCBridgeToNSSet 42580 30686 -27.9% 1.39x
SubstringFromLongString 24 18 -25.0% 1.33x
ObjectiveCBridgeStubURLAppendPathRef 343860 267348 -22.3% 1.29x
ObjectiveCBridgeStubURLAppendPath 344571 275918 -19.9% 1.25x
ObjectiveCBridgeToNSDictionary 49624 40940 -17.5% 1.21x
ObjectiveCBridgeStubToNSDate 19792 16595 -16.2% 1.19x (?)
SetIsSubsetOf 1588 1344 -15.4% 1.18x
AngryPhonebook 5107 4375 -14.3% 1.17x
CharIteration_korean_unicodeScalars_Backwards 338079 291300 -13.8% 1.16x
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 59238 51258 -13.5% 1.16x
ObjectiveCBridgeStubFromNSString 995 863 -13.3% 1.15x
CharIteration_tweet_unicodeScalars_Backwards 670371 583197 -13.0% 1.15x (?)
CharIteration_punctuated_unicodeScalars_Backwards 74442 65221 -12.4% 1.14x (?)
DropWhileArrayLazy 15617 13688 -12.4% 1.14x
ArrayOfPOD 847 755 -10.9% 1.12x
NSDictionaryCastToSwift 7224 6463 -10.5% 1.12x (?)
StackPromo 101795 91770 -9.8% 1.11x (?)
ArrayPlusEqualSingleElementCollection 256103 231963 -9.4% 1.10x
NSError 708 644 -9.0% 1.10x (?)
PopFrontArrayGeneric 6249 5777 -7.6% 1.08x
RecursiveOwnedParameter 8487 7862 -7.4% 1.08x (?)
CharIndexing_korean_unicodeScalars_Backwards 452983 419662 -7.4% 1.08x
CharIndexing_tweet_unicodeScalars_Backwards 901424 843692 -6.4% 1.07x
CharIndexing_chinese_unicodeScalars 307273 288040 -6.3% 1.07x (?)
CharIndexing_tweet_unicodeScalars 805976 758582 -5.9% 1.06x (?)
CharIteration_utf16_unicodeScalars_Backwards 288659 272119 -5.7% 1.06x
DictionarySubscriptDefaultMutationOfObjects 5959 5635 -5.4% 1.06x
CharIndexing_punctuatedJapanese_unicodeScalars 73290 69378 -5.3% 1.06x (?)
Dictionary4OfObjects 1926 1831 -4.9% 1.05x (?)
SumUsingReduce 173302 164781 -4.9% 1.05x
ArrayPlusEqualThreeElements 9809 9332 -4.9% 1.05x
ObjectiveCBridgeFromNSSetAnyObjectForced 7422 7066 -4.8% 1.05x (?)
No Changes (280)
TEST OLD NEW DELTA SPEEDUP
AnyHashableWithAClass 87145 87881 +0.8% 0.99x
Array2D 630618 633959 +0.5% 0.99x
ArrayAppend 4670 4670 +0.0% 1.00x
ArrayAppendArrayOfInt 862 858 -0.5% 1.00x
ArrayAppendAscii 39773 40250 +1.2% 0.99x
ArrayAppendFromGeneric 865 866 +0.1% 1.00x
ArrayAppendGenericStructs 1498 1500 +0.1% 1.00x
ArrayAppendLatin1 63035 65173 +3.4% 0.97x
ArrayAppendLazyMap 167961 168676 +0.4% 1.00x (?)
ArrayAppendOptionals 1497 1500 +0.2% 1.00x (?)
ArrayAppendRepeatCol 169602 167799 -1.1% 1.01x
ArrayAppendReserved 4394 4410 +0.4% 1.00x
ArrayAppendSequence 142854 142507 -0.2% 1.00x
ArrayAppendStrings 15442 15373 -0.4% 1.00x
ArrayAppendToFromGeneric 852 866 +1.6% 0.98x (?)
ArrayAppendToGeneric 870 868 -0.2% 1.00x (?)
ArrayAppendUTF16 63937 66109 +3.4% 0.97x
ArrayInClass 6192 6228 +0.6% 0.99x
ArrayLiteral 1847 1794 -2.9% 1.03x
ArrayOfGenericPOD2 1129 1129 +0.0% 1.00x
ArrayOfGenericRef 10095 10286 +1.9% 0.98x
ArrayOfRef 9322 9345 +0.2% 1.00x (?)
ArrayPlusEqualArrayOfInt 862 859 -0.3% 1.00x (?)
ArrayPlusEqualFiveElementCollection 233455 236500 +1.3% 0.99x
ArraySubscript 115767 115758 -0.0% 1.00x (?)
ArrayValueProp 3709 3642 -1.8% 1.02x
ArrayValueProp2 16448 16856 +2.5% 0.98x (?)
ArrayValueProp3 4160 4103 -1.4% 1.01x
ArrayValueProp4 4072 4129 +1.4% 0.99x (?)
BinaryFloatingPointConversionFromBinaryInteger 6152 5965 -3.0% 1.03x (?)
BitCount 7657 7654 -0.0% 1.00x (?)
ByteSwap 9223 9231 +0.1% 1.00x (?)
CSVParsing 2432907 2497790 +2.7% 0.97x
CSVParsingAlt 1330559 1309926 -1.6% 1.02x (?)
CSVParsingAltIndices 2348286 2248700 -4.2% 1.04x
CharIndexing_ascii_unicodeScalars 396094 386173 -2.5% 1.03x (?)
CharIndexing_ascii_unicodeScalars_Backwards 442517 435048 -1.7% 1.02x (?)
CharIndexing_chinese_unicodeScalars_Backwards 329246 326154 -0.9% 1.01x
CharIndexing_japanese_unicodeScalars 476128 457167 -4.0% 1.04x (?)
CharIndexing_japanese_unicodeScalars_Backwards 519911 526419 +1.3% 0.99x
CharIndexing_korean_unicodeScalars 388800 373591 -3.9% 1.04x (?)
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 75451 75198 -0.3% 1.00x (?)
CharIndexing_punctuated_unicodeScalars 88789 84736 -4.6% 1.05x
CharIndexing_punctuated_unicodeScalars_Backwards 95921 97879 +2.0% 0.98x (?)
CharIndexing_russian_unicodeScalars 331626 319743 -3.6% 1.04x (?)
CharIndexing_russian_unicodeScalars_Backwards 359818 358587 -0.3% 1.00x (?)
CharIndexing_utf16_unicodeScalars 329534 317584 -3.6% 1.04x (?)
CharIndexing_utf16_unicodeScalars_Backwards 356190 348853 -2.1% 1.02x
CharIteration_ascii_unicodeScalars 154409 161922 +4.9% 0.95x
CharIteration_ascii_unicodeScalars_Backwards 339025 327744 -3.3% 1.03x
CharIteration_chinese_unicodeScalars 116840 117634 +0.7% 0.99x (?)
CharIteration_chinese_unicodeScalars_Backwards 255088 249841 -2.1% 1.02x (?)
CharIteration_japanese_unicodeScalars 185006 186020 +0.5% 0.99x (?)
CharIteration_japanese_unicodeScalars_Backwards 409222 390400 -4.6% 1.05x (?)
CharIteration_korean_unicodeScalars 149741 157099 +4.9% 0.95x (?)
CharIteration_punctuatedJapanese_unicodeScalars 27797 28370 +2.1% 0.98x
CharIteration_russian_unicodeScalars 128654 134935 +4.9% 0.95x
CharIteration_russian_unicodeScalars_Backwards 281205 278151 -1.1% 1.01x (?)
CharIteration_tweet_unicodeScalars 305221 319455 +4.7% 0.96x
CharIteration_utf16_unicodeScalars 130273 132437 +1.7% 0.98x
CharacterLiteralsLarge 5961 5769 -3.2% 1.03x (?)
CharacterLiteralsSmall 670 694 +3.6% 0.97x
CharacterPropertiesFetch 5506 5621 +2.1% 0.98x (?)
CharacterPropertiesPrecomputed 4432 4329 -2.3% 1.02x (?)
CharacterPropertiesStashed 2325 2361 +1.5% 0.98x (?)
CharacterPropertiesStashedMemo 5000 5209 +4.2% 0.96x (?)
Dictionary2 2997 3089 +3.1% 0.97x
Dictionary2OfObjects 5641 5754 +2.0% 0.98x (?)
Dictionary3 1328 1329 +0.1% 1.00x (?)
Dictionary3OfObjects 2272 2267 -0.2% 1.00x (?)
Dictionary4 1185 1181 -0.3% 1.00x (?)
DictionaryGroup 4182 4166 -0.4% 1.00x (?)
DictionaryGroupOfObjects 7360 7352 -0.1% 1.00x (?)
DictionaryLiteral 8680 8515 -1.9% 1.02x (?)
DictionaryRemove 18408 18364 -0.2% 1.00x (?)
DictionaryRemoveOfObjects 50610 50894 +0.6% 0.99x (?)
DictionarySubscriptDefaultMutation 2072 2053 -0.9% 1.01x (?)
DictionarySubscriptDefaultMutationArray 2292 2312 +0.9% 0.99x (?)
DictionarySubscriptDefaultMutationArrayOfObjects 9258 9062 -2.1% 1.02x (?)
DictionarySwap 5205 5313 +2.1% 0.98x
DictionarySwapOfObjects 22760 23295 +2.4% 0.98x
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollection 13519 13366 -1.1% 1.01x
DropFirstAnyCollectionLazy 97245 100847 +3.7% 0.96x (?)
DropFirstAnySeqCRangeIter 20343 20147 -1.0% 1.01x
DropFirstAnySeqCRangeIterLazy 20411 20217 -1.0% 1.01x
DropFirstAnySeqCntRange 13560 13323 -1.7% 1.02x
DropFirstAnySeqCntRangeLazy 13720 13558 -1.2% 1.01x
DropFirstAnySequence 10891 10895 +0.0% 1.00x (?)
DropFirstAnySequenceLazy 10901 10888 -0.1% 1.00x (?)
DropFirstArray 3771 3841 +1.9% 0.98x (?)
DropFirstArrayLazy 25786 24978 -3.1% 1.03x
DropFirstCountableRange 325 325 +0.0% 1.00x
DropFirstCountableRangeLazy 26182 25305 -3.3% 1.03x (?)
DropFirstSequence 10677 10465 -2.0% 1.02x
DropFirstSequenceLazy 10465 10463 -0.0% 1.00x (?)
DropLastAnyCollection 4553 4478 -1.6% 1.02x
DropLastAnyCollectionLazy 33027 32953 -0.2% 1.00x (?)
DropLastAnySeqCRangeIter 37564 37946 +1.0% 0.99x (?)
DropLastAnySeqCRangeIterLazy 37660 37863 +0.5% 0.99x (?)
DropLastAnySeqCntRange 4513 4453 -1.3% 1.01x
DropLastAnySeqCntRangeLazy 4571 4498 -1.6% 1.02x
DropLastAnySequence 28924 29067 +0.5% 1.00x
DropLastAnySequenceLazy 29092 29155 +0.2% 1.00x (?)
DropLastCountableRange 112 112 +0.0% 1.00x
DropLastCountableRangeLazy 8766 8744 -0.3% 1.00x
DropLastSequence 28829 28935 +0.4% 1.00x
DropLastSequenceLazy 29571 28966 -2.0% 1.02x
DropWhileAnyCollection 17183 16970 -1.2% 1.01x
DropWhileAnyCollectionLazy 18887 18848 -0.2% 1.00x (?)
DropWhileAnySeqCRangeIter 21881 21631 -1.1% 1.01x
DropWhileAnySeqCRangeIterLazy 18940 18664 -1.5% 1.01x
DropWhileAnySeqCntRange 17211 16927 -1.7% 1.02x
DropWhileAnySeqCntRangeLazy 18865 18862 -0.0% 1.00x (?)
DropWhileAnySequence 12382 12117 -2.1% 1.02x
DropWhileAnySequenceLazy 10309 10115 -1.9% 1.02x
DropWhileCountableRange 3931 3898 -0.8% 1.01x
DropWhileCountableRangeLazy 18491 18247 -1.3% 1.01x
DropWhileSequence 11757 11805 +0.4% 1.00x
DropWhileSequenceLazy 9755 9716 -0.4% 1.00x (?)
EqualSubstringSubstring 92 96 +4.3% 0.96x
EqualSubstringSubstringGenericEquatable 98 102 +4.1% 0.96x
ExclusivityGlobal 180 186 +3.3% 0.97x
FilterEvenUsingReduce 3628 3643 +0.4% 1.00x (?)
FilterEvenUsingReduceInto 1913 1955 +2.2% 0.98x
FrequenciesUsingReduce 10434 10240 -1.9% 1.02x (?)
FrequenciesUsingReduceInto 5242 5447 +3.9% 0.96x (?)
Hanoi 19677 20230 +2.8% 0.97x
Histogram 6459 6485 +0.4% 1.00x (?)
Integrate 887 854 -3.7% 1.04x
IterateData 6040 5998 -0.7% 1.01x
Join 1106 1161 +5.0% 0.95x
LazilyFilteredArrayContains 791205 771540 -2.5% 1.03x
LazilyFilteredRange 471962 460650 -2.4% 1.02x
LessSubstringSubstring 92 96 +4.3% 0.96x
LessSubstringSubstringGenericComparable 96 99 +3.1% 0.97x
LinkedList 32049 32261 +0.7% 0.99x
MapReduce 25842 25647 -0.8% 1.01x
MapReduceAnyCollection 25842 25788 -0.2% 1.00x (?)
MapReduceAnyCollectionShort 37585 38576 +2.6% 0.97x (?)
MapReduceClass 30944 30402 -1.8% 1.02x
MapReduceClassShort 42057 42605 +1.3% 0.99x (?)
MapReduceLazyCollection 22711 22369 -1.5% 1.02x
MapReduceLazyCollectionShort 33260 33544 +0.9% 0.99x (?)
MapReduceLazySequence 17560 17797 +1.3% 0.99x
MapReduceSequence 29586 29614 +0.1% 1.00x (?)
MapReduceShort 37660 39426 +4.7% 0.96x
MapReduceString 1809 1808 -0.1% 1.00x (?)
Memset 44749 44737 -0.0% 1.00x
MonteCarloE 1222185 1227650 +0.4% 1.00x (?)
MonteCarloPi 5599247 5578009 -0.4% 1.00x
NibbleSort 408934 407531 -0.3% 1.00x
NopDeinit 169886 170925 +0.6% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObject 23899 24114 +0.9% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 9109 9046 -0.7% 1.01x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 36368 36733 +1.0% 0.99x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 127402 133701 +4.9% 0.95x
ObjectiveCBridgeFromNSSetAnyObject 65821 65645 -0.3% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 73981 73764 -0.3% 1.00x (?)
ObjectiveCBridgeFromNSString 3189 3231 +1.3% 0.99x (?)
ObjectiveCBridgeFromNSStringForced 2748 2756 +0.3% 1.00x (?)
ObjectiveCBridgeStubDataAppend 4545 4344 -4.4% 1.05x
ObjectiveCBridgeStubDateMutation 630 630 +0.0% 1.00x
ObjectiveCBridgeStubFromNSDate 4769 4936 +3.5% 0.97x
ObjectiveCBridgeStubFromNSStringRef 196 203 +3.6% 0.97x
ObjectiveCBridgeStubNSDataAppend 2900 2973 +2.5% 0.98x (?)
ObjectiveCBridgeStubNSDateMutationRef 15358 15571 +1.4% 0.99x (?)
ObjectiveCBridgeStubToNSDateRef 3500 3473 -0.8% 1.01x (?)
ObjectiveCBridgeStubToNSStringRef 154 154 +0.0% 1.00x
ObserverClosure 6345 6302 -0.7% 1.01x (?)
ObserverForwarderStruct 4408 4428 +0.5% 1.00x
ObserverPartiallyAppliedMethod 7791 7840 +0.6% 0.99x
ObserverUnappliedMethod 7984 8000 +0.2% 1.00x (?)
PartialApplyDynamicType 40718 41089 +0.9% 0.99x (?)
PointerArithmetics 117398 123244 +5.0% 0.95x
PolymorphicCalls 6304 6449 +2.3% 0.98x (?)
PopFrontArray 4640 4634 -0.1% 1.00x (?)
PopFrontUnsafePointer 11281 11467 +1.6% 0.98x
PrefixAnyCollection 13624 13382 -1.8% 1.02x
PrefixAnyCollectionLazy 99802 100771 +1.0% 0.99x (?)
PrefixAnySeqCRangeIter 16431 16293 -0.8% 1.01x
PrefixAnySeqCRangeIterLazy 16496 16182 -1.9% 1.02x (?)
PrefixAnySeqCntRange 13627 13342 -2.1% 1.02x (?)
PrefixAnySeqCntRangeLazy 13698 13436 -1.9% 1.02x
PrefixAnySequence 9159 9072 -0.9% 1.01x
PrefixAnySequenceLazy 9172 9032 -1.5% 1.02x
PrefixArray 3763 3872 +2.9% 0.97x (?)
PrefixArrayLazy 25780 24929 -3.3% 1.03x
PrefixCountableRange 325 325 +0.0% 1.00x
PrefixCountableRangeLazy 26208 25295 -3.5% 1.04x
PrefixSequence 8786 8756 -0.3% 1.00x
PrefixSequenceLazy 8842 8774 -0.8% 1.01x (?)
PrefixWhileAnyCollection 24342 24167 -0.7% 1.01x
PrefixWhileAnyCollectionLazy 15772 15677 -0.6% 1.01x (?)
PrefixWhileAnySeqCRangeIter 32587 32692 +0.3% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 15792 15644 -0.9% 1.01x
PrefixWhileAnySeqCntRange 24321 24099 -0.9% 1.01x (?)
PrefixWhileAnySeqCntRangeLazy 15778 15761 -0.1% 1.00x (?)
PrefixWhileAnySequence 26498 26965 +1.8% 0.98x
PrefixWhileAnySequenceLazy 9410 9208 -2.1% 1.02x
PrefixWhileArray 10691 10629 -0.6% 1.01x
PrefixWhileArrayLazy 12483 11922 -4.5% 1.05x
PrefixWhileCountableRange 11070 10945 -1.1% 1.01x
PrefixWhileCountableRangeLazy 15560 15253 -2.0% 1.02x (?)
PrefixWhileSequence 25867 25926 +0.2% 1.00x (?)
PrefixWhileSequenceLazy 9046 8917 -1.4% 1.01x
Prims 9648 9773 +1.3% 0.99x
PrimsSplit 9661 9916 +2.6% 0.97x
QueueConcrete 14860 15108 +1.7% 0.98x (?)
RC4 16677 16520 -0.9% 1.01x (?)
RGBHistogram 25865 25641 -0.9% 1.01x (?)
RGBHistogramOfObjects 99607 95720 -3.9% 1.04x
RangeAssignment 2225 2285 +2.7% 0.97x
RangeIterationSigned 16779 16527 -1.5% 1.02x
RangeIterationSigned64 39009 38871 -0.4% 1.00x
RangeIterationUnsigned 34542 35013 +1.4% 0.99x
RemoveWhereFilterInts 2064 2042 -1.1% 1.01x
RemoveWhereFilterStrings 2862 2858 -0.1% 1.00x (?)
RemoveWhereMoveInts 3339 3340 +0.0% 1.00x (?)
RemoveWhereMoveStrings 4033 4049 +0.4% 1.00x
RemoveWhereQuadraticInts 7648 7624 -0.3% 1.00x (?)
RemoveWhereQuadraticStrings 9311 9289 -0.2% 1.00x
RemoveWhereSwapInts 5988 6043 +0.9% 0.99x
RemoveWhereSwapStrings 6681 6771 +1.3% 0.99x
ReversedArray 13277 13429 +1.1% 0.99x
ReversedBidirectional 42482 41492 -2.3% 1.02x
ReversedDictionary 23086 23078 -0.0% 1.00x (?)
SequenceAlgosAnySequence 10910 11056 +1.3% 0.99x
SequenceAlgosArray 778194 776501 -0.2% 1.00x
SequenceAlgosContiguousArray 323819 324211 +0.1% 1.00x (?)
SequenceAlgosList 8201 8101 -1.2% 1.01x
SequenceAlgosRange 1063190 1073508 +1.0% 0.99x
SequenceAlgosUnfoldSequence 5591 5621 +0.5% 0.99x (?)
SetExclusiveOr 17395 17093 -1.7% 1.02x (?)
SetExclusiveOr_OfObjects 42275 41649 -1.5% 1.02x
SetIntersect 8154 8251 +1.2% 0.99x
SetIntersect_OfObjects 12292 12000 -2.4% 1.02x
SetIsSubsetOf_OfObjects 1568 1565 -0.2% 1.00x (?)
SetUnion 11975 11814 -1.3% 1.01x
SetUnion_OfObjects 29624 29282 -1.2% 1.01x
Sim2DArray 43598 43661 +0.1% 1.00x
StaticArray 2655 2644 -0.4% 1.00x (?)
StringComparison_ascii 9583 9638 +0.6% 0.99x
StringComparison_emoji 2081 2138 +2.7% 0.97x
StringComparison_fastPrenormal 5235 5452 +4.1% 0.96x
StringComparison_latin1 4079 4234 +3.8% 0.96x
StringComparison_longSharedPrefix 2460 2572 +4.6% 0.96x
StringComparison_nonBMPSlowestPrenormal 3805 3942 +3.6% 0.97x
StringComparison_slowerPrenormal 4296 4434 +3.2% 0.97x
StringComparison_zalgo 116491 116701 +0.2% 1.00x (?)
StringFromLongWholeSubstringGeneric 203 205 +1.0% 0.99x
StringHasPrefixUnicode 29528 28790 -2.5% 1.03x (?)
StringHasSuffixUnicode 86527 86112 -0.5% 1.00x (?)
StringInterpolation 13897 13978 +0.6% 0.99x (?)
StringRemoveDupes 1362 1391 +2.1% 0.98x
StringWalk 12758 12958 +1.6% 0.98x
SubstringComparable 2061 2109 +2.3% 0.98x
SubstringFromLongStringGeneric 103 102 -1.0% 1.01x
SuffixAnyCollection 4550 4469 -1.8% 1.02x
SuffixAnySeqCRangeIter 33625 33975 +1.0% 0.99x
SuffixAnySeqCRangeIterLazy 33772 33826 +0.2% 1.00x (?)
SuffixAnySeqCntRange 4527 4465 -1.4% 1.01x
SuffixAnySeqCntRangeLazy 4565 4471 -2.1% 1.02x
SuffixAnySequence 25145 25346 +0.8% 0.99x
SuffixAnySequenceLazy 25206 25343 +0.5% 0.99x (?)
SuffixCountableRange 111 111 +0.0% 1.00x
SuffixCountableRangeLazy 8762 8741 -0.2% 1.00x (?)
SuffixSequence 25131 26285 +4.6% 0.96x
SuffixSequenceLazy 25760 25132 -2.4% 1.02x
SumUsingReduceInto 158358 158122 -0.1% 1.00x (?)
TwoSum 3893 3886 -0.2% 1.00x (?)
TypeFlood 162 165 +1.9% 0.98x
UTF8Decode 30394 30624 +0.8% 0.99x
Walsh 12013 12007 -0.0% 1.00x (?)
WordCountHistogramASCII 46522 47733 +2.6% 0.97x
WordCountHistogramUTF16 69533 72577 +4.4% 0.96x (?)
WordCountUniqueASCII 8139 7953 -2.3% 1.02x
WordCountUniqueUTF16 26588 26875 +1.1% 0.99x (?)
WordSplitASCII 26060 27187 +4.3% 0.96x
XorLoop 23800 23367 -1.8% 1.02x
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
Copy link
Member Author

Woo, there's the regressions I was expecting!

@milseman
Copy link
Member Author

@swift-ci please smoke benchmark

@milseman
Copy link
Member Author

StringEnumRawValueInitialization is still slower, but it highlights the discrepancy between static strings (which can now be small) and dynamic ones (which haven't been hooked up yet). I want to reduce these regressions before they're lost in the noise of dynamic small string.

@swift-ci
Copy link
Contributor

Build comment file:

Optimized (O)

Regression (84)
TEST OLD NEW DELTA SPEEDUP
StringHasSuffixAscii 1460 57788 +3858.1% 0.03x
StringHasPrefixAscii 1318 49621 +3664.9% 0.03x
OpenClose 126 558 +342.9% 0.23x
SortSortedStrings 999 2851 +185.4% 0.35x
Phonebook 3863 10546 +173.0% 0.37x
Calculator 651 1762 +170.7% 0.37x
SortStrings 1791 4574 +155.4% 0.39x
RemoveWhereQuadraticString 202 486 +140.6% 0.42x
StringFromLongWholeSubstringGeneric 10 21 +110.0% 0.48x
SubstringEqualString 529 1093 +106.6% 0.48x
CSVParsingAltIndices 355880 726107 +104.0% 0.49x
StringEnumRawValueInitialization 954 1931 +102.4% 0.49x
NSStringConversion 283 562 +98.6% 0.50x (?)
StringWordBuilderReservingCapacity 1269 2409 +89.8% 0.53x
Dictionary 509 937 +84.1% 0.54x
StringWordBuilder 1715 2774 +61.7% 0.62x
ObjectiveCBridgeStubToNSString 1517 2379 +56.8% 0.64x
StringEdits 118738 179923 +51.5% 0.66x
StrToInt 2178 3258 +49.6% 0.67x
StringMatch 8316 12386 +48.9% 0.67x
MapReduceShortString 21 31 +47.6% 0.68x
ErrorHandling 2284 3341 +46.3% 0.68x
Sim2DArray 417 599 +43.6% 0.70x
RomanNumbers 113074 157528 +39.3% 0.72x
ObjectiveCBridgeStubToArrayOfNSString 28881 39542 +36.9% 0.73x
EqualStringSubstring 49 66 +34.7% 0.74x
EqualSubstringString 49 66 +34.7% 0.74x
Dictionary3 234 312 +33.3% 0.75x
StringBuilder 1394 1835 +31.6% 0.76x
RemoveWhereFilterString 304 390 +28.3% 0.78x
SortLettersInPlace 1129 1402 +24.2% 0.81x
SortLargeExistentials 6809 8298 +21.9% 0.82x
StringComparison_latin1 589 715 +21.4% 0.82x
DictionaryOfObjects 2188 2633 +20.3% 0.83x
Join 376 452 +20.2% 0.83x
StaticArray 5 6 +20.0% 0.83x
StringComparison_fastPrenormal 747 887 +18.7% 0.84x
WordCountUniqueASCII 1758 2082 +18.4% 0.84x
StringUTF16Builder 2361 2786 +18.0% 0.85x
RangeIterationSigned 171 200 +17.0% 0.86x
MapReduceLazyCollectionShort 34 39 +14.7% 0.87x
HashTest 1782 2044 +14.7% 0.87x
StrComplexWalk 1562 1783 +14.1% 0.88x
StringComparison_abnormal 734 825 +12.4% 0.89x
Dictionary3OfObjects 671 752 +12.1% 0.89x
StringAdder 4188 4677 +11.7% 0.90x
SortStringsUnicode 2566 2856 +11.3% 0.90x
SubstringEquatable 1336 1485 +11.2% 0.90x
ArrayAppendUTF16 36623 40662 +11.0% 0.90x
StringRemoveDupes 1194 1316 +10.2% 0.91x (?)
WordCountHistogramUTF16 22788 25089 +10.1% 0.91x (?)
SubstringFromLongString 10 11 +10.0% 0.91x
StringComparison_slowerPrenormal 1665 1819 +9.2% 0.92x
SuffixCountableRangeLazy 11 12 +9.1% 0.92x
DropLastCountableRangeLazy 11 12 +9.1% 0.92x
StringBuilderLong 1105 1203 +8.9% 0.92x (?)
NopDeinit 21592 23493 +8.8% 0.92x
StringComparison_emoji 796 864 +8.5% 0.92x
StringComparison_nonBMPSlowestPrenormal 1555 1685 +8.4% 0.92x
CharIndexing_korean_unicodeScalars 14296 15460 +8.1% 0.92x
RangeReplaceableCollectionPlusDefault 983 1063 +8.1% 0.92x
CharIndexing_ascii_unicodeScalars 14744 15943 +8.1% 0.92x
CharIndexing_japanese_unicodeScalars 17649 19075 +8.1% 0.93x
CharIndexing_chinese_unicodeScalars 11167 12061 +8.0% 0.93x
COWTree 5360 5785 +7.9% 0.93x
CharIndexing_russian_unicodeScalars 12301 13276 +7.9% 0.93x
ObjectiveCBridgeFromNSSetAnyObjectToString 71301 76674 +7.5% 0.93x
StringComparison_longSharedPrefix 901 967 +7.3% 0.93x
CharIndexing_punctuated_unicodeScalars 3351 3593 +7.2% 0.93x
CharIndexing_tweet_unicodeScalars 29069 31133 +7.1% 0.93x
CharIndexing_punctuatedJapanese_unicodeScalars 2681 2869 +7.0% 0.93x
CharIteration_korean_unicodeScalars_Backwards 12303 13124 +6.7% 0.94x
ArrayAppendLatin1 37764 40284 +6.7% 0.94x
CharIteration_ascii_unicodeScalars_Backwards 12689 13533 +6.7% 0.94x
CharIteration_tweet_unicodeScalars_Backwards 25062 26724 +6.6% 0.94x
CharIteration_chinese_unicodeScalars_Backwards 9618 10254 +6.6% 0.94x
CharIteration_russian_unicodeScalars_Backwards 10581 11278 +6.6% 0.94x
CharIteration_japanese_unicodeScalars_Backwards 15209 16202 +6.5% 0.94x
FrequenciesUsingReduceInto 3166 3371 +6.5% 0.94x
CharIteration_punctuated_unicodeScalars_Backwards 2906 3090 +6.3% 0.94x
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 2332 2478 +6.3% 0.94x
WordSplitASCII 21477 22763 +6.0% 0.94x (?)
Combos 453 480 +6.0% 0.94x
NibbleSort 3955 4173 +5.5% 0.95x
Improvement (25)
TEST OLD NEW DELTA SPEEDUP
ObjectiveCBridgeToNSString 1298 502 -61.3% 2.59x
ObjectiveCBridgeToNSSet 41539 17596 -57.6% 2.36x
ObjectiveCBridgeToNSDictionary 51222 26154 -48.9% 1.96x
ObjectiveCBridgeToNSArray 29289 15440 -47.3% 1.90x
NSError 304 174 -42.8% 1.75x
SevenBoom 1530 889 -41.9% 1.72x
DictionaryBridge 2043 1298 -36.5% 1.57x
PrefixWhileCountableRange 53 35 -34.0% 1.51x
StringInterpolation 10717 8085 -24.6% 1.33x
AngryPhonebook 3648 2904 -20.4% 1.26x
ObjectiveCBridgeStubURLAppendPath 330092 263001 -20.3% 1.26x
ObjectiveCBridgeStubURLAppendPathRef 333839 268706 -19.5% 1.24x
ReversedBidirectional 17123 15418 -10.0% 1.11x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 35883 32674 -8.9% 1.10x (?)
DropLastSequenceLazy 688 638 -7.3% 1.08x
DropLastSequence 685 638 -6.9% 1.07x
StringWalk 1581 1474 -6.8% 1.07x
CharacterLiteralsLarge 6185 5772 -6.7% 1.07x
IterateData 1354 1264 -6.6% 1.07x
DropFirstAnySequence 4667 4360 -6.6% 1.07x
PopFrontUnsafePointer 9572 8990 -6.1% 1.06x
DropFirstAnySequenceLazy 4673 4393 -6.0% 1.06x
CharIteration_tweet_unicodeScalars 43309 40774 -5.9% 1.06x
CharIteration_ascii_unicodeScalars 21900 20659 -5.7% 1.06x
PrefixAnySequence 4042 3838 -5.0% 1.05x
No Changes (269)
TEST OLD NEW DELTA SPEEDUP
AnyHashableWithAClass 71525 71008 -0.7% 1.01x
Array2D 2555 2558 +0.1% 1.00x (?)
ArrayAppend 1025 1011 -1.4% 1.01x
ArrayAppendArrayOfInt 805 797 -1.0% 1.01x
ArrayAppendAscii 13231 13844 +4.6% 0.96x
ArrayAppendFromGeneric 802 798 -0.5% 1.01x
ArrayAppendGenericStructs 1431 1427 -0.3% 1.00x
ArrayAppendLazyMap 1340 1341 +0.1% 1.00x (?)
ArrayAppendOptionals 1430 1428 -0.1% 1.00x (?)
ArrayAppendRepeatCol 1330 1331 +0.1% 1.00x (?)
ArrayAppendReserved 753 754 +0.1% 1.00x (?)
ArrayAppendSequence 1138 1132 -0.5% 1.01x
ArrayAppendStrings 15278 15241 -0.2% 1.00x (?)
ArrayAppendToFromGeneric 799 799 +0.0% 1.00x
ArrayAppendToGeneric 808 800 -1.0% 1.01x
ArrayInClass 85 86 +1.2% 0.99x
ArrayLiteral 0 0 +0.0% 1.00x
ArrayOfGenericPOD2 150 150 +0.0% 1.00x
ArrayOfGenericRef 4354 4379 +0.6% 0.99x
ArrayOfPOD 183 184 +0.5% 0.99x (?)
ArrayOfRef 4353 4375 +0.5% 0.99x
ArrayPlusEqualArrayOfInt 799 802 +0.4% 1.00x (?)
ArrayPlusEqualFiveElementCollection 5478 5434 -0.8% 1.01x (?)
ArrayPlusEqualSingleElementCollection 1020 1023 +0.3% 1.00x (?)
ArrayPlusEqualThreeElements 1700 1659 -2.4% 1.02x
ArraySubscript 1536 1519 -1.1% 1.01x (?)
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
BinaryFloatingPointConversionFromBinaryInteger 39 38 -2.6% 1.03x
BitCount 211 211 +0.0% 1.00x
ByteSwap 100 101 +1.0% 0.99x
CSVParsing 764564 748790 -2.1% 1.02x
CSVParsingAlt 719880 731827 +1.7% 0.98x
CStringLongAscii 4779 4791 +0.3% 1.00x
CStringLongNonAscii 2167 2253 +4.0% 0.96x
CStringShortAscii 4711 4837 +2.7% 0.97x
CaptureProp 3913 3906 -0.2% 1.00x (?)
CharIndexing_ascii_unicodeScalars_Backwards 14482 14321 -1.1% 1.01x
CharIndexing_chinese_unicodeScalars_Backwards 10962 10853 -1.0% 1.01x
CharIndexing_japanese_unicodeScalars_Backwards 17307 17143 -0.9% 1.01x
CharIndexing_korean_unicodeScalars_Backwards 14033 13885 -1.1% 1.01x
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 2632 2613 -0.7% 1.01x
CharIndexing_punctuated_unicodeScalars_Backwards 3293 3264 -0.9% 1.01x
CharIndexing_russian_unicodeScalars_Backwards 12054 11937 -1.0% 1.01x
CharIndexing_tweet_unicodeScalars_Backwards 28527 28257 -0.9% 1.01x
CharIndexing_utf16_unicodeScalars 20219 20580 +1.8% 0.98x
CharIndexing_utf16_unicodeScalars_Backwards 21085 20883 -1.0% 1.01x
CharIteration_chinese_unicodeScalars 16398 15658 -4.5% 1.05x
CharIteration_japanese_unicodeScalars 25970 24790 -4.5% 1.05x
CharIteration_korean_unicodeScalars 20911 20069 -4.0% 1.04x
CharIteration_punctuatedJapanese_unicodeScalars 3887 3708 -4.6% 1.05x
CharIteration_punctuated_unicodeScalars 4847 4647 -4.1% 1.04x
CharIteration_russian_unicodeScalars 18029 17242 -4.4% 1.05x
CharIteration_utf16_unicodeScalars 27561 27196 -1.3% 1.01x
CharIteration_utf16_unicodeScalars_Backwards 15804 16366 +3.6% 0.97x
CharacterLiteralsSmall 411 409 -0.5% 1.00x
CharacterPropertiesFetch 4654 4593 -1.3% 1.01x
CharacterPropertiesPrecomputed 980 985 +0.5% 0.99x (?)
CharacterPropertiesStashed 1564 1538 -1.7% 1.02x
CharacterPropertiesStashedMemo 1557 1524 -2.1% 1.02x
Chars 967 965 -0.2% 1.00x
ClassArrayGetter 15 15 +0.0% 1.00x
DictOfArraysToArrayOfDicts 797 823 +3.3% 0.97x
Dictionary2 1616 1689 +4.5% 0.96x
Dictionary2OfObjects 2974 3057 +2.8% 0.97x
Dictionary4 147 148 +0.7% 0.99x
Dictionary4OfObjects 200 202 +1.0% 0.99x
DictionaryGroup 133 132 -0.8% 1.01x
DictionaryGroupOfObjects 1934 1927 -0.4% 1.00x (?)
DictionaryLiteral 1644 1607 -2.3% 1.02x
DictionaryRemove 2734 2775 +1.5% 0.99x
DictionaryRemoveOfObjects 23736 23758 +0.1% 1.00x (?)
DictionarySubscriptDefaultMutation 142 143 +0.7% 0.99x
DictionarySubscriptDefaultMutationArray 492 490 -0.4% 1.00x (?)
DictionarySubscriptDefaultMutationArrayOfObjects 3828 3811 -0.4% 1.00x (?)
DictionarySubscriptDefaultMutationOfObjects 1401 1387 -1.0% 1.01x
DictionarySwap 477 468 -1.9% 1.02x
DictionarySwapOfObjects 7673 7339 -4.4% 1.05x
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollection 102 102 +0.0% 1.00x
DropFirstAnyCollectionLazy 65448 64658 -1.2% 1.01x (?)
DropFirstAnySeqCRangeIter 18385 18137 -1.3% 1.01x
DropFirstAnySeqCRangeIterLazy 18372 18139 -1.3% 1.01x
DropFirstAnySeqCntRange 94 94 +0.0% 1.00x
DropFirstAnySeqCntRangeLazy 94 93 -1.1% 1.01x
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 2699 2698 -0.0% 1.00x (?)
DropFirstSequenceLazy 2793 2793 +0.0% 1.00x
DropLastAnyCollection 37 36 -2.7% 1.03x (?)
DropLastAnyCollectionLazy 21696 22725 +4.7% 0.95x (?)
DropLastAnySeqCRangeIter 3832 3789 -1.1% 1.01x (?)
DropLastAnySeqCRangeIterLazy 3824 3793 -0.8% 1.01x
DropLastAnySeqCntRange 29 30 +3.4% 0.97x
DropLastAnySeqCntRangeLazy 30 30 +0.0% 1.00x
DropLastAnySequence 5183 5134 -0.9% 1.01x
DropLastAnySequenceLazy 5292 5232 -1.1% 1.01x
DropLastCountableRange 12 12 +0.0% 1.00x
DropWhileAnyCollection 125 126 +0.8% 0.99x
DropWhileAnyCollectionLazy 166 166 +0.0% 1.00x
DropWhileAnySeqCRangeIter 15049 14753 -2.0% 1.02x (?)
DropWhileAnySeqCRangeIterLazy 166 166 +0.0% 1.00x
DropWhileAnySeqCntRange 117 117 +0.0% 1.00x
DropWhileAnySeqCntRangeLazy 166 166 +0.0% 1.00x
DropWhileAnySequence 4963 4733 -4.6% 1.05x
DropWhileAnySequenceLazy 1856 1856 +0.0% 1.00x
DropWhileArrayLazy 129 129 +0.0% 1.00x
DropWhileCountableRange 36 35 -2.8% 1.03x
DropWhileCountableRangeLazy 111 111 +0.0% 1.00x
DropWhileSequence 1343 1343 +0.0% 1.00x
DropWhileSequenceLazy 88 88 +0.0% 1.00x
EqualSubstringSubstring 48 50 +4.2% 0.96x
EqualSubstringSubstringGenericEquatable 48 50 +4.2% 0.96x (?)
ExclusivityGlobal 5 5 +0.0% 1.00x
ExclusivityIndependent 2 2 +0.0% 1.00x
FilterEvenUsingReduce 1317 1310 -0.5% 1.01x (?)
FilterEvenUsingReduceInto 149 147 -1.3% 1.01x
FrequenciesUsingReduce 6809 6909 +1.5% 0.99x (?)
Hanoi 3640 3784 +4.0% 0.96x
Histogram 323 324 +0.3% 1.00x
Integrate 217 217 +0.0% 1.00x
LazilyFilteredArrayContains 36686 36683 -0.0% 1.00x (?)
LazilyFilteredArrays 67041 66565 -0.7% 1.01x
LazilyFilteredRange 3819 3899 +2.1% 0.98x
LessSubstringSubstring 49 50 +2.0% 0.98x
LessSubstringSubstringGenericComparable 48 50 +4.2% 0.96x
LinkedList 7561 7592 +0.4% 1.00x (?)
LuhnAlgoEager 589 586 -0.5% 1.01x (?)
LuhnAlgoLazy 589 584 -0.8% 1.01x
MapReduce 399 398 -0.3% 1.00x (?)
MapReduceAnyCollection 402 405 +0.7% 0.99x
MapReduceAnyCollectionShort 2264 2274 +0.4% 1.00x
MapReduceClass 3041 3054 +0.4% 1.00x
MapReduceClassShort 4583 4594 +0.2% 1.00x (?)
MapReduceLazyCollection 13 13 +0.0% 1.00x
MapReduceLazySequence 86 86 +0.0% 1.00x
MapReduceSequence 453 456 +0.7% 0.99x (?)
MapReduceShort 2020 2026 +0.3% 1.00x (?)
MapReduceString 81 79 -2.5% 1.03x
Memset 215 225 +4.7% 0.96x
MonteCarloE 10396 10346 -0.5% 1.00x
MonteCarloPi 42913 42918 +0.0% 1.00x (?)
NSDictionaryCastToSwift 5461 5443 -0.3% 1.00x (?)
ObjectAllocation 184 184 +0.0% 1.00x
ObjectiveCBridgeFromNSArrayAnyObject 19249 20152 +4.7% 0.96x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 3988 4082 +2.4% 0.98x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 37968 38518 +1.4% 0.99x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 124663 123928 -0.6% 1.01x (?)
ObjectiveCBridgeFromNSSetAnyObject 63326 60616 -4.3% 1.04x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 4638 4593 -1.0% 1.01x (?)
ObjectiveCBridgeFromNSString 1308 1303 -0.4% 1.00x (?)
ObjectiveCBridgeFromNSStringForced 2445 2437 -0.3% 1.00x (?)
ObjectiveCBridgeStubDataAppend 3943 3890 -1.3% 1.01x (?)
ObjectiveCBridgeStubDateMutation 257 257 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 26195 27153 +3.7% 0.96x (?)
ObjectiveCBridgeStubFromNSDate 4075 3902 -4.2% 1.04x (?)
ObjectiveCBridgeStubFromNSString 841 855 +1.7% 0.98x
ObjectiveCBridgeStubFromNSStringRef 161 162 +0.6% 0.99x
ObjectiveCBridgeStubNSDataAppend 2624 2597 -1.0% 1.01x (?)
ObjectiveCBridgeStubNSDateMutationRef 13147 13246 +0.8% 0.99x (?)
ObjectiveCBridgeStubToNSDate 15604 15980 +2.4% 0.98x
ObjectiveCBridgeStubToNSDateRef 3437 3463 +0.8% 0.99x (?)
ObjectiveCBridgeStubToNSStringRef 115 113 -1.7% 1.02x
ObserverClosure 2177 2174 -0.1% 1.00x (?)
ObserverForwarderStruct 1003 1010 +0.7% 0.99x
ObserverPartiallyAppliedMethod 3754 3759 +0.1% 1.00x (?)
ObserverUnappliedMethod 2369 2375 +0.3% 1.00x (?)
PartialApplyDynamicType 0 0 +0.0% 1.00x
PointerArithmetics 34382 34370 -0.0% 1.00x (?)
PolymorphicCalls 25 25 +0.0% 1.00x
PopFrontArray 1938 1971 +1.7% 0.98x (?)
PopFrontArrayGeneric 1960 1970 +0.5% 0.99x (?)
PrefixAnyCollection 102 102 +0.0% 1.00x
PrefixAnyCollectionLazy 65636 65185 -0.7% 1.01x (?)
PrefixAnySeqCRangeIter 14340 14233 -0.7% 1.01x (?)
PrefixAnySeqCRangeIterLazy 14324 14221 -0.7% 1.01x
PrefixAnySeqCntRange 94 94 +0.0% 1.00x
PrefixAnySeqCntRangeLazy 94 94 +0.0% 1.00x
PrefixAnySequenceLazy 4026 3842 -4.6% 1.05x
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 1327 1326 -0.1% 1.00x (?)
PrefixSequenceLazy 1413 1414 +0.1% 1.00x
PrefixWhileAnyCollection 172 172 +0.0% 1.00x
PrefixWhileAnyCollectionLazy 108 108 +0.0% 1.00x
PrefixWhileAnySeqCRangeIter 9546 9335 -2.2% 1.02x
PrefixWhileAnySeqCRangeIterLazy 90 90 +0.0% 1.00x
PrefixWhileAnySeqCntRange 164 164 +0.0% 1.00x
PrefixWhileAnySeqCntRangeLazy 108 108 +0.0% 1.00x
PrefixWhileAnySequence 10678 10513 -1.5% 1.02x
PrefixWhileAnySequenceLazy 1393 1393 +0.0% 1.00x
PrefixWhileArray 88 88 +0.0% 1.00x
PrefixWhileArrayLazy 70 70 +0.0% 1.00x
PrefixWhileCountableRangeLazy 35 35 +0.0% 1.00x
PrefixWhileSequence 379 380 +0.3% 1.00x (?)
PrefixWhileSequenceLazy 52 52 +0.0% 1.00x
Prims 754 754 +0.0% 1.00x
PrimsSplit 756 754 -0.3% 1.00x (?)
QueueConcrete 1310 1311 +0.1% 1.00x (?)
QueueGeneric 1160 1163 +0.3% 1.00x (?)
RC4 171 165 -3.5% 1.04x
RGBHistogram 2235 2282 +2.1% 0.98x
RGBHistogramOfObjects 23558 23560 +0.0% 1.00x (?)
RangeAssignment 353 353 +0.0% 1.00x
RangeIterationSigned64 200 200 +0.0% 1.00x
RangeIterationUnsigned 200 200 +0.0% 1.00x
RecursiveOwnedParameter 2345 2322 -1.0% 1.01x
RemoveWhereFilterInts 46 45 -2.2% 1.02x
RemoveWhereFilterStrings 433 433 +0.0% 1.00x
RemoveWhereMoveInts 17 17 +0.0% 1.00x
RemoveWhereMoveStrings 519 520 +0.2% 1.00x (?)
RemoveWhereQuadraticInts 1291 1289 -0.2% 1.00x (?)
RemoveWhereQuadraticStrings 2757 2756 -0.0% 1.00x (?)
RemoveWhereSwapInts 19 19 +0.0% 1.00x
RemoveWhereSwapStrings 850 852 +0.2% 1.00x
ReversedArray 58 57 -1.7% 1.02x
ReversedDictionary 134 133 -0.7% 1.01x (?)
SequenceAlgosAnySequence 10145 10281 +1.3% 0.99x
SequenceAlgosArray 1576 1580 +0.3% 1.00x (?)
SequenceAlgosContiguousArray 1579 1585 +0.4% 1.00x (?)
SequenceAlgosList 1356 1355 -0.1% 1.00x (?)
SequenceAlgosRange 4296 4296 +0.0% 1.00x
SequenceAlgosUnfoldSequence 1079 1080 +0.1% 1.00x (?)
SetExclusiveOr 3354 3370 +0.5% 1.00x (?)
SetExclusiveOr_OfObjects 8782 8809 +0.3% 1.00x (?)
SetIntersect 318 320 +0.6% 0.99x (?)
SetIntersect_OfObjects 1764 1763 -0.1% 1.00x (?)
SetIsSubsetOf 299 299 +0.0% 1.00x
SetIsSubsetOf_OfObjects 363 363 +0.0% 1.00x
SetUnion 3010 3098 +2.9% 0.97x
SetUnion_OfObjects 7280 7228 -0.7% 1.01x
StackPromo 22637 22476 -0.7% 1.01x (?)
StringComparison_ascii 1023 1040 +1.7% 0.98x
StringComparison_zalgo 113751 115116 +1.2% 0.99x
StringEqualPointerComparison 286 286 +0.0% 1.00x
StringFromLongWholeSubstring 21 22 +4.8% 0.95x
StringHasPrefixUnicode 27877 27836 -0.1% 1.00x (?)
StringHasSuffixUnicode 85081 85051 -0.0% 1.00x (?)
StringWithCString 43221 43071 -0.3% 1.00x (?)
SubstringComparable 41 43 +4.9% 0.95x (?)
SubstringFromLongStringGeneric 69 69 +0.0% 1.00x
SuffixAnyCollection 43 43 +0.0% 1.00x
SuffixAnyCollectionLazy 21886 21552 -1.5% 1.02x
SuffixAnySeqCRangeIter 4029 3978 -1.3% 1.01x
SuffixAnySeqCRangeIterLazy 4028 3974 -1.3% 1.01x
SuffixAnySeqCntRange 35 35 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 35 35 +0.0% 1.00x
SuffixAnySequence 5168 5126 -0.8% 1.01x
SuffixAnySequenceLazy 5307 5205 -1.9% 1.02x
SuffixCountableRange 11 11 +0.0% 1.00x
SuffixSequence 3718 3753 +0.9% 0.99x
SuffixSequenceLazy 3713 3746 +0.9% 0.99x
SumUsingReduce 96 97 +1.0% 0.99x
SumUsingReduceInto 96 101 +5.2% 0.95x
SuperChars 41895 42333 +1.0% 0.99x (?)
TwoSum 995 993 -0.2% 1.00x (?)
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode 327 315 -3.7% 1.04x
Walsh 412 421 +2.2% 0.98x
WordCountHistogramASCII 7427 7668 +3.2% 0.97x
WordCountUniqueUTF16 17440 17745 +1.7% 0.98x (?)
WordSplitUTF16 22802 23901 +4.8% 0.95x
XorLoop 395 395 +0.0% 1.00x

Unoptimized (Onone)

Regression (64)
TEST OLD NEW DELTA SPEEDUP
StringHasSuffixAscii 3190 58653 +1738.7% 0.05x
StringHasPrefixAscii 3077 48138 +1464.4% 0.06x
SortSortedStrings 1082 2996 +176.9% 0.36x
StringEnumRawValueInitialization 18156 48802 +168.8% 0.37x
SortStrings 2095 4957 +136.6% 0.42x
OpenClose 557 1258 +125.9% 0.44x
Calculator 1506 3349 +122.4% 0.45x
NSStringConversion 329 602 +83.0% 0.55x
RangeReplaceableCollectionPlusDefault 7983 12521 +56.8% 0.64x
ObjectiveCBridgeStubToNSString 1579 2416 +53.0% 0.65x
StrToInt 57384 87533 +52.5% 0.66x
Phonebook 20023 27834 +39.0% 0.72x
ObjectiveCBridgeStubToArrayOfNSString 29712 40749 +37.1% 0.73x
LuhnAlgoEager 4739 6027 +27.2% 0.79x
ErrorHandling 6991 8806 +26.0% 0.79x
LuhnAlgoLazy 4898 6117 +24.9% 0.80x
CStringLongAscii 4598 5599 +21.8% 0.82x
StringWithCString 37573 45250 +20.4% 0.83x
ArrayAppendRepeatCol 169484 204035 +20.4% 0.83x
CharIteration_japanese_unicodeScalars_Backwards 347826 415210 +19.4% 0.84x
SubstringEqualString 1893 2257 +19.2% 0.84x
DropWhileCountableRange 3976 4619 +16.2% 0.86x
Dictionary 2611 3019 +15.6% 0.86x
StringMatch 33168 38292 +15.4% 0.87x
StringEdits 354117 408083 +15.2% 0.87x
StringUTF16Builder 7708 8859 +14.9% 0.87x
CharIndexing_russian_unicodeScalars_Backwards 316912 362806 +14.5% 0.87x (?)
StringWordBuilderReservingCapacity 2160 2438 +12.9% 0.89x
DropLastAnyCollectionLazy 32443 36576 +12.7% 0.89x
DropFirstAnyCollectionLazy 95277 107219 +12.5% 0.89x
StringWordBuilder 2497 2805 +12.3% 0.89x
SortLettersInPlace 2662 2972 +11.6% 0.90x
CharIteration_chinese_unicodeScalars_Backwards 221101 245220 +10.9% 0.90x
CharIndexing_chinese_unicodeScalars_Backwards 296082 328146 +10.8% 0.90x
DictionaryOfObjects 6149 6791 +10.4% 0.91x (?)
ClassArrayGetter 988 1086 +9.9% 0.91x
SortStringsUnicode 2857 3130 +9.6% 0.91x
ObjectiveCBridgeStubFromArrayOfNSString 25419 27796 +9.4% 0.91x (?)
DropFirstArray 3837 4193 +9.3% 0.92x
StrComplexWalk 6659 7272 +9.2% 0.92x
SuffixAnyCollectionLazy 34198 37309 +9.1% 0.92x
PrefixAnyCollectionLazy 96131 104644 +8.9% 0.92x
StringAdder 4710 5126 +8.8% 0.92x
CharIndexing_korean_unicodeScalars 352795 382635 +8.5% 0.92x (?)
PrefixArray 3844 4157 +8.1% 0.92x
CharIteration_utf16_unicodeScalars_Backwards 250478 270800 +8.1% 0.92x
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 35310 38047 +7.8% 0.93x (?)
SortLargeExistentials 15657 16862 +7.7% 0.93x
WordCountUniqueUTF16 26835 28887 +7.6% 0.93x (?)
WordCountHistogramUTF16 68826 74082 +7.6% 0.93x
ObjectiveCBridgeStubFromNSString 887 954 +7.6% 0.93x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 74412 79980 +7.5% 0.93x (?)
StringRemoveDupes 1361 1452 +6.7% 0.94x
Combos 2089 2227 +6.6% 0.94x
StringComparison_abnormal 1320 1406 +6.5% 0.94x
CStringLongNonAscii 2183 2324 +6.5% 0.94x
SubstringEquatable 5945 6323 +6.4% 0.94x
WordSplitUTF16 26517 28193 +6.3% 0.94x
DictionaryLiteral 8579 9090 +6.0% 0.94x (?)
PopFrontUnsafePointer 10800 11418 +5.7% 0.95x
StringBuilderLong 2733 2886 +5.6% 0.95x
Dictionary3 1329 1403 +5.6% 0.95x
SuperChars 123443 130151 +5.4% 0.95x
NSDictionaryCastToSwift 6821 7181 +5.3% 0.95x (?)
Improvement (24)
TEST OLD NEW DELTA SPEEDUP
ObjectiveCBridgeToNSString 1347 544 -59.6% 2.48x
ObjectiveCBridgeToNSSet 41156 17235 -58.1% 2.39x
ObjectiveCBridgeToNSDictionary 51202 25695 -49.8% 1.99x
ObjectiveCBridgeToNSArray 29281 15708 -46.4% 1.86x
StringFromLongWholeSubstring 22 12 -45.5% 1.83x
SevenBoom 1688 1137 -32.6% 1.48x
DictionaryBridge 2127 1483 -30.3% 1.43x
SubstringFromLongString 24 18 -25.0% 1.33x
ObjectiveCBridgeStubURLAppendPath 331714 272114 -18.0% 1.22x
ObjectiveCBridgeStubURLAppendPathRef 331094 278424 -15.9% 1.19x
SetIsSubsetOf 1600 1357 -15.2% 1.18x
CharIndexing_japanese_unicodeScalars 485502 428370 -11.8% 1.13x
CharIndexing_russian_unicodeScalars 331501 295719 -10.8% 1.12x
CharIndexing_ascii_unicodeScalars_Backwards 437526 392922 -10.2% 1.11x
CharIndexing_punctuated_unicodeScalars_Backwards 92444 84112 -9.0% 1.10x
StringInterpolation 13592 12463 -8.3% 1.09x (?)
NSError 710 652 -8.2% 1.09x
ArrayPlusEqualFiveElementCollection 252845 232205 -8.2% 1.09x (?)
PolymorphicCalls 6544 6090 -6.9% 1.07x
MapReduce 27348 25525 -6.7% 1.07x
RecursiveOwnedParameter 8357 7807 -6.6% 1.07x
SequenceAlgosContiguousArray 338365 319152 -5.7% 1.06x
ObjectiveCBridgeFromNSSetAnyObjectForced 7526 7142 -5.1% 1.05x (?)
ObjectiveCBridgeFromNSString 3291 3131 -4.9% 1.05x
No Changes (290)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 5117 4885 -4.5% 1.05x (?)
AnyHashableWithAClass 87945 87569 -0.4% 1.00x
Array2D 631474 633665 +0.3% 1.00x
ArrayAppend 4675 4785 +2.4% 0.98x
ArrayAppendArrayOfInt 854 861 +0.8% 0.99x (?)
ArrayAppendAscii 40095 39765 -0.8% 1.01x
ArrayAppendFromGeneric 866 867 +0.1% 1.00x (?)
ArrayAppendGenericStructs 1500 1499 -0.1% 1.00x (?)
ArrayAppendLatin1 63560 64464 +1.4% 0.99x
ArrayAppendLazyMap 166989 166847 -0.1% 1.00x (?)
ArrayAppendOptionals 1501 1501 +0.0% 1.00x
ArrayAppendReserved 4392 4394 +0.0% 1.00x
ArrayAppendSequence 142418 142851 +0.3% 1.00x (?)
ArrayAppendStrings 15356 15405 +0.3% 1.00x (?)
ArrayAppendToFromGeneric 868 861 -0.8% 1.01x (?)
ArrayAppendToGeneric 872 867 -0.6% 1.01x (?)
ArrayAppendUTF16 64466 64983 +0.8% 0.99x
ArrayInClass 6198 6209 +0.2% 1.00x
ArrayLiteral 1832 1793 -2.1% 1.02x
ArrayOfGenericPOD2 1186 1187 +0.1% 1.00x
ArrayOfGenericRef 10072 10161 +0.9% 0.99x (?)
ArrayOfPOD 853 846 -0.8% 1.01x
ArrayOfRef 9326 9339 +0.1% 1.00x (?)
ArrayPlusEqualArrayOfInt 860 857 -0.3% 1.00x (?)
ArrayPlusEqualSingleElementCollection 228279 232983 +2.1% 0.98x (?)
ArrayPlusEqualThreeElements 9832 9922 +0.9% 0.99x (?)
ArraySubscript 116291 115319 -0.8% 1.01x
ArrayValueProp 3721 3634 -2.3% 1.02x (?)
ArrayValueProp2 16095 16011 -0.5% 1.01x (?)
ArrayValueProp3 4131 4142 +0.3% 1.00x (?)
ArrayValueProp4 4088 4104 +0.4% 1.00x (?)
BinaryFloatingPointConversionFromBinaryInteger 6050 6067 +0.3% 1.00x (?)
BitCount 7655 7714 +0.8% 0.99x
ByteSwap 9218 9145 -0.8% 1.01x
COWTree 11642 12056 +3.6% 0.97x
CSVParsing 2426568 2393139 -1.4% 1.01x (?)
CSVParsingAlt 1319455 1294382 -1.9% 1.02x (?)
CSVParsingAltIndices 2346551 2267516 -3.4% 1.03x
CStringShortAscii 7966 8202 +3.0% 0.97x (?)
CaptureProp 256721 246379 -4.0% 1.04x (?)
CharIndexing_ascii_unicodeScalars 360935 355780 -1.4% 1.01x (?)
CharIndexing_chinese_unicodeScalars 274350 269888 -1.6% 1.02x (?)
CharIndexing_japanese_unicodeScalars_Backwards 464207 462834 -0.3% 1.00x (?)
CharIndexing_korean_unicodeScalars_Backwards 371955 378572 +1.8% 0.98x (?)
CharIndexing_punctuatedJapanese_unicodeScalars 63148 62515 -1.0% 1.01x
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 68809 66891 -2.8% 1.03x (?)
CharIndexing_punctuated_unicodeScalars 79736 78756 -1.2% 1.01x (?)
CharIndexing_tweet_unicodeScalars 724577 705241 -2.7% 1.03x (?)
CharIndexing_tweet_unicodeScalars_Backwards 754032 760889 +0.9% 0.99x (?)
CharIndexing_utf16_unicodeScalars 312437 302024 -3.3% 1.03x (?)
CharIndexing_utf16_unicodeScalars_Backwards 335038 326468 -2.6% 1.03x (?)
CharIteration_ascii_unicodeScalars 154976 154659 -0.2% 1.00x (?)
CharIteration_ascii_unicodeScalars_Backwards 290284 294946 +1.6% 0.98x
CharIteration_chinese_unicodeScalars 117261 120431 +2.7% 0.97x
CharIteration_japanese_unicodeScalars 185374 192630 +3.9% 0.96x
CharIteration_korean_unicodeScalars 150087 149265 -0.5% 1.01x (?)
CharIteration_korean_unicodeScalars_Backwards 281452 283390 +0.7% 0.99x (?)
CharIteration_punctuatedJapanese_unicodeScalars 27756 27602 -0.6% 1.01x (?)
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 51248 52017 +1.5% 0.99x (?)
CharIteration_punctuated_unicodeScalars 34824 34730 -0.3% 1.00x (?)
CharIteration_punctuated_unicodeScalars_Backwards 64447 64797 +0.5% 0.99x (?)
CharIteration_russian_unicodeScalars 128942 129193 +0.2% 1.00x (?)
CharIteration_russian_unicodeScalars_Backwards 241068 250675 +4.0% 0.96x (?)
CharIteration_tweet_unicodeScalars 306062 303819 -0.7% 1.01x
CharIteration_tweet_unicodeScalars_Backwards 574702 593227 +3.2% 0.97x (?)
CharIteration_utf16_unicodeScalars 135072 129862 -3.9% 1.04x
CharacterLiteralsLarge 5965 5737 -3.8% 1.04x
CharacterLiteralsSmall 672 664 -1.2% 1.01x
CharacterPropertiesFetch 5437 5592 +2.9% 0.97x
CharacterPropertiesPrecomputed 4399 4376 -0.5% 1.01x (?)
CharacterPropertiesStashed 2304 2335 +1.3% 0.99x (?)
CharacterPropertiesStashedMemo 5186 5186 +0.0% 1.00x
Chars 39657 39626 -0.1% 1.00x (?)
DictOfArraysToArrayOfDicts 3417 3442 +0.7% 0.99x (?)
Dictionary2 2892 2975 +2.9% 0.97x (?)
Dictionary2OfObjects 5599 5664 +1.2% 0.99x
Dictionary3OfObjects 2265 2334 +3.0% 0.97x (?)
Dictionary4 1198 1195 -0.3% 1.00x (?)
Dictionary4OfObjects 1845 1828 -0.9% 1.01x (?)
DictionaryGroup 4173 4142 -0.7% 1.01x (?)
DictionaryGroupOfObjects 7339 7668 +4.5% 0.96x
DictionaryRemove 18322 18341 +0.1% 1.00x (?)
DictionaryRemoveOfObjects 50431 50470 +0.1% 1.00x (?)
DictionarySubscriptDefaultMutation 2040 2052 +0.6% 0.99x (?)
DictionarySubscriptDefaultMutationArray 2294 2315 +0.9% 0.99x (?)
DictionarySubscriptDefaultMutationArrayOfObjects 9351 9043 -3.3% 1.03x
DictionarySubscriptDefaultMutationOfObjects 5755 5718 -0.6% 1.01x (?)
DictionarySwap 5431 5237 -3.6% 1.04x
DictionarySwapOfObjects 22272 22967 +3.1% 0.97x (?)
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollection 13613 13391 -1.6% 1.02x
DropFirstAnySeqCRangeIter 20311 20429 +0.6% 0.99x
DropFirstAnySeqCRangeIterLazy 20366 20489 +0.6% 0.99x (?)
DropFirstAnySeqCntRange 13672 13377 -2.2% 1.02x
DropFirstAnySeqCntRangeLazy 13608 13411 -1.4% 1.01x
DropFirstAnySequence 10787 10970 +1.7% 0.98x
DropFirstAnySequenceLazy 10765 10986 +2.1% 0.98x
DropFirstArrayLazy 25543 25047 -1.9% 1.02x
DropFirstCountableRange 325 325 +0.0% 1.00x
DropFirstCountableRangeLazy 26541 25779 -2.9% 1.03x (?)
DropFirstSequence 10482 10769 +2.7% 0.97x
DropFirstSequenceLazy 10554 10597 +0.4% 1.00x (?)
DropLastAnyCollection 4554 4488 -1.4% 1.01x
DropLastAnySeqCRangeIter 37369 37744 +1.0% 0.99x
DropLastAnySeqCRangeIterLazy 37594 37428 -0.4% 1.00x (?)
DropLastAnySeqCntRange 4565 4491 -1.6% 1.02x (?)
DropLastAnySeqCntRangeLazy 4560 4505 -1.2% 1.01x (?)
DropLastAnySequence 28724 28736 +0.0% 1.00x (?)
DropLastAnySequenceLazy 28958 28875 -0.3% 1.00x (?)
DropLastCountableRange 112 112 +0.0% 1.00x
DropLastCountableRangeLazy 8859 8521 -3.8% 1.04x (?)
DropLastSequence 28901 28584 -1.1% 1.01x (?)
DropLastSequenceLazy 29660 28669 -3.3% 1.03x
DropWhileAnyCollection 17201 17682 +2.8% 0.97x
DropWhileAnyCollectionLazy 18764 18872 +0.6% 0.99x (?)
DropWhileAnySeqCRangeIter 21674 21886 +1.0% 0.99x
DropWhileAnySeqCRangeIterLazy 18815 18946 +0.7% 0.99x
DropWhileAnySeqCntRange 17141 17657 +3.0% 0.97x
DropWhileAnySeqCntRangeLazy 18730 18841 +0.6% 0.99x
DropWhileAnySequence 12120 12326 +1.7% 0.98x
DropWhileAnySequenceLazy 10108 10293 +1.8% 0.98x
DropWhileArrayLazy 14146 13766 -2.7% 1.03x
DropWhileCountableRangeLazy 18362 18407 +0.2% 1.00x
DropWhileSequence 11821 11840 +0.2% 1.00x (?)
DropWhileSequenceLazy 9713 9741 +0.3% 1.00x (?)
EqualStringSubstring 91 93 +2.2% 0.98x
EqualSubstringString 92 94 +2.2% 0.98x
EqualSubstringSubstring 92 95 +3.3% 0.97x
EqualSubstringSubstringGenericEquatable 98 102 +4.1% 0.96x
ExclusivityGlobal 180 186 +3.3% 0.97x
ExclusivityIndependent 70 71 +1.4% 0.99x (?)
FilterEvenUsingReduce 3631 3626 -0.1% 1.00x (?)
FilterEvenUsingReduceInto 1911 1933 +1.2% 0.99x
FrequenciesUsingReduce 10633 10574 -0.6% 1.01x (?)
FrequenciesUsingReduceInto 5464 5492 +0.5% 0.99x (?)
Hanoi 20028 20353 +1.6% 0.98x
HashTest 21557 22361 +3.7% 0.96x (?)
Histogram 6531 6499 -0.5% 1.00x (?)
Integrate 859 823 -4.2% 1.04x
IterateData 6057 5818 -3.9% 1.04x (?)
Join 1111 1118 +0.6% 0.99x
LazilyFilteredArrayContains 772803 768636 -0.5% 1.01x
LazilyFilteredArrays 1446498 1452008 +0.4% 1.00x (?)
LazilyFilteredRange 468821 470113 +0.3% 1.00x (?)
LessSubstringSubstring 92 95 +3.3% 0.97x
LessSubstringSubstringGenericComparable 96 100 +4.2% 0.96x
LinkedList 31972 32139 +0.5% 0.99x
MapReduceAnyCollection 25573 25507 -0.3% 1.00x
MapReduceAnyCollectionShort 37721 36626 -2.9% 1.03x (?)
MapReduceClass 30129 29973 -0.5% 1.01x
MapReduceClassShort 41611 41024 -1.4% 1.01x (?)
MapReduceLazyCollection 22559 22252 -1.4% 1.01x
MapReduceLazyCollectionShort 32088 32600 +1.6% 0.98x (?)
MapReduceLazySequence 17514 17608 +0.5% 0.99x
MapReduceSequence 29433 29295 -0.5% 1.00x
MapReduceShort 38158 36657 -3.9% 1.04x
MapReduceShortString 239 247 +3.3% 0.97x
MapReduceString 1816 1778 -2.1% 1.02x
Memset 44753 44758 +0.0% 1.00x (?)
MonteCarloE 1247512 1230177 -1.4% 1.01x
MonteCarloPi 5622642 5571233 -0.9% 1.01x
NibbleSort 411397 406840 -1.1% 1.01x (?)
NopDeinit 165209 165016 -0.1% 1.00x (?)
ObjectAllocation 1337 1340 +0.2% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObject 23311 23254 -0.2% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 9016 9081 +0.7% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 39583 40383 +2.0% 0.98x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 128271 127673 -0.5% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObject 70060 67749 -3.3% 1.03x
ObjectiveCBridgeFromNSStringForced 2746 2780 +1.2% 0.99x (?)
ObjectiveCBridgeStubDataAppend 4489 4327 -3.6% 1.04x
ObjectiveCBridgeStubDateMutation 630 601 -4.6% 1.05x
ObjectiveCBridgeStubFromNSDate 4765 4907 +3.0% 0.97x
ObjectiveCBridgeStubFromNSStringRef 197 196 -0.5% 1.01x (?)
ObjectiveCBridgeStubNSDataAppend 2962 2964 +0.1% 1.00x (?)
ObjectiveCBridgeStubNSDateMutationRef 15693 15498 -1.2% 1.01x (?)
ObjectiveCBridgeStubToNSDate 15510 15999 +3.2% 0.97x (?)
ObjectiveCBridgeStubToNSDateRef 3479 3484 +0.1% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 153 159 +3.9% 0.96x (?)
ObserverClosure 6374 6373 -0.0% 1.00x (?)
ObserverForwarderStruct 4395 4388 -0.2% 1.00x (?)
ObserverPartiallyAppliedMethod 7849 7831 -0.2% 1.00x (?)
ObserverUnappliedMethod 7908 7976 +0.9% 0.99x
PartialApplyDynamicType 41342 42530 +2.9% 0.97x
PointerArithmetics 117479 114621 -2.4% 1.02x
PopFrontArray 4648 4519 -2.8% 1.03x (?)
PopFrontArrayGeneric 5826 5825 -0.0% 1.00x (?)
PrefixAnyCollection 13454 13398 -0.4% 1.00x (?)
PrefixAnySeqCRangeIter 16479 16233 -1.5% 1.02x
PrefixAnySeqCRangeIterLazy 16442 16299 -0.9% 1.01x
PrefixAnySeqCntRange 13445 13403 -0.3% 1.00x
PrefixAnySeqCntRangeLazy 13561 13428 -1.0% 1.01x
PrefixAnySequence 8915 9258 +3.8% 0.96x
PrefixAnySequenceLazy 8955 9268 +3.5% 0.97x
PrefixArrayLazy 25520 25148 -1.5% 1.01x
PrefixCountableRange 325 324 -0.3% 1.00x (?)
PrefixCountableRangeLazy 26493 25799 -2.6% 1.03x (?)
PrefixSequence 8737 8823 +1.0% 0.99x
PrefixSequenceLazy 8787 8937 +1.7% 0.98x
PrefixWhileAnyCollection 24379 24094 -1.2% 1.01x
PrefixWhileAnyCollectionLazy 15662 15753 +0.6% 0.99x
PrefixWhileAnySeqCRangeIter 34025 32944 -3.2% 1.03x
PrefixWhileAnySeqCRangeIterLazy 15625 15771 +0.9% 0.99x
PrefixWhileAnySeqCntRange 24335 24069 -1.1% 1.01x
PrefixWhileAnySeqCntRangeLazy 15579 15721 +0.9% 0.99x
PrefixWhileAnySequence 26483 26010 -1.8% 1.02x
PrefixWhileAnySequenceLazy 9119 9252 +1.5% 0.99x
PrefixWhileArray 10880 11298 +3.8% 0.96x
PrefixWhileArrayLazy 11944 12211 +2.2% 0.98x
PrefixWhileCountableRange 11188 10949 -2.1% 1.02x
PrefixWhileCountableRangeLazy 15377 15260 -0.8% 1.01x (?)
PrefixWhileSequence 25735 25724 -0.0% 1.00x (?)
PrefixWhileSequenceLazy 8942 9035 +1.0% 0.99x
Prims 9609 9744 +1.4% 0.99x
PrimsSplit 9600 9674 +0.8% 0.99x (?)
QueueConcrete 14999 14919 -0.5% 1.01x
QueueGeneric 18936 18934 -0.0% 1.00x (?)
RC4 16675 16636 -0.2% 1.00x (?)
RGBHistogram 25925 26072 +0.6% 0.99x (?)
RGBHistogramOfObjects 98880 95272 -3.6% 1.04x (?)
RangeAssignment 2231 2214 -0.8% 1.01x (?)
RangeIterationSigned 16603 16601 -0.0% 1.00x (?)
RangeIterationSigned64 39162 39081 -0.2% 1.00x (?)
RangeIterationUnsigned 34437 34534 +0.3% 1.00x (?)
RemoveWhereFilterInts 2035 2069 +1.7% 0.98x
RemoveWhereFilterString 1475 1449 -1.8% 1.02x
RemoveWhereFilterStrings 2849 2865 +0.6% 0.99x
RemoveWhereMoveInts 3335 3348 +0.4% 1.00x
RemoveWhereMoveStrings 4034 4028 -0.1% 1.00x (?)
RemoveWhereQuadraticInts 7669 7658 -0.1% 1.00x (?)
RemoveWhereQuadraticString 2295 2283 -0.5% 1.01x
RemoveWhereQuadraticStrings 9341 9292 -0.5% 1.01x (?)
RemoveWhereSwapInts 5981 6008 +0.5% 1.00x
RemoveWhereSwapStrings 6689 6702 +0.2% 1.00x (?)
ReversedArray 13165 13123 -0.3% 1.00x (?)
ReversedBidirectional 42367 43285 +2.2% 0.98x (?)
ReversedDictionary 22882 23167 +1.2% 0.99x
RomanNumbers 1217330 1204440 -1.1% 1.01x (?)
SequenceAlgosAnySequence 10919 10837 -0.8% 1.01x
SequenceAlgosArray 772652 774348 +0.2% 1.00x
SequenceAlgosList 8181 8204 +0.3% 1.00x
SequenceAlgosRange 1066041 1057872 -0.8% 1.01x
SequenceAlgosUnfoldSequence 5683 5530 -2.7% 1.03x
SetExclusiveOr 17371 17343 -0.2% 1.00x (?)
SetExclusiveOr_OfObjects 42164 41641 -1.2% 1.01x
SetIntersect 8379 8175 -2.4% 1.02x
SetIntersect_OfObjects 12148 12067 -0.7% 1.01x (?)
SetIsSubsetOf_OfObjects 1560 1577 +1.1% 0.99x (?)
SetUnion 12089 11825 -2.2% 1.02x
SetUnion_OfObjects 29469 29212 -0.9% 1.01x
Sim2DArray 43565 43632 +0.2% 1.00x
StackPromo 96050 99338 +3.4% 0.97x (?)
StaticArray 2645 2617 -1.1% 1.01x
StringBuilder 7202 7372 +2.4% 0.98x (?)
StringComparison_ascii 9516 9657 +1.5% 0.99x
StringComparison_emoji 2065 2115 +2.4% 0.98x
StringComparison_fastPrenormal 5201 5340 +2.7% 0.97x
StringComparison_latin1 4047 4165 +2.9% 0.97x
StringComparison_longSharedPrefix 2466 2513 +1.9% 0.98x
StringComparison_nonBMPSlowestPrenormal 3812 3909 +2.5% 0.98x
StringComparison_slowerPrenormal 4282 4427 +3.4% 0.97x
StringComparison_zalgo 116118 116422 +0.3% 1.00x (?)
StringEqualPointerComparison 3608 3532 -2.1% 1.02x
StringFromLongWholeSubstringGeneric 200 200 +0.0% 1.00x
StringHasPrefixUnicode 29298 28908 -1.3% 1.01x
StringHasSuffixUnicode 86338 86414 +0.1% 1.00x (?)
StringWalk 12778 12569 -1.6% 1.02x
SubstringComparable 2065 2052 -0.6% 1.01x (?)
SubstringFromLongStringGeneric 106 102 -3.8% 1.04x
SuffixAnyCollection 4512 4505 -0.2% 1.00x (?)
SuffixAnySeqCRangeIter 33442 33412 -0.1% 1.00x (?)
SuffixAnySeqCRangeIterLazy 34530 33383 -3.3% 1.03x (?)
SuffixAnySeqCntRange 4483 4493 +0.2% 1.00x (?)
SuffixAnySeqCntRangeLazy 4554 4480 -1.6% 1.02x
SuffixAnySequence 25034 25147 +0.5% 1.00x
SuffixAnySequenceLazy 25105 24975 -0.5% 1.01x (?)
SuffixCountableRange 111 113 +1.8% 0.98x
SuffixCountableRangeLazy 8866 8528 -3.8% 1.04x (?)
SuffixSequence 24984 24919 -0.3% 1.00x (?)
SuffixSequenceLazy 24933 24872 -0.2% 1.00x
SumUsingReduce 165814 163069 -1.7% 1.02x
SumUsingReduceInto 157992 160494 +1.6% 0.98x
TwoSum 3976 3912 -1.6% 1.02x (?)
TypeFlood 147 150 +2.0% 0.98x (?)
UTF8Decode 29824 30124 +1.0% 0.99x
Walsh 12004 12094 +0.7% 0.99x
WordCountHistogramASCII 47385 47616 +0.5% 1.00x
WordCountUniqueASCII 8026 8305 +3.5% 0.97x
WordSplitASCII 25107 26015 +3.6% 0.97x
XorLoop 23774 23319 -1.9% 1.02x
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
Copy link
Member Author

(There's some kind of bug that I haven't hunted down yet, so that could also influence benchmark behavior).

@swift-ci please smoke benchmark

@swift-ci
Copy link
Contributor

Build comment file:

Optimized (O)

Regression (75)
TEST OLD NEW DELTA SPEEDUP
StringHasSuffixAscii 1460 57802 +3859.0% 0.03x
StringHasPrefixAscii 1317 47770 +3527.2% 0.03x
OpenClose 126 318 +152.4% 0.40x
RemoveWhereQuadraticString 202 483 +139.1% 0.42x
StringFromLongWholeSubstringGeneric 10 21 +110.0% 0.48x
CSVParsingAltIndices 358022 724585 +102.4% 0.49x
NSStringConversion 283 559 +97.5% 0.51x
StringWordBuilderReservingCapacity 1268 2273 +79.3% 0.56x
Calculator 660 1161 +75.9% 0.57x
SubstringEqualString 528 849 +60.8% 0.62x
ObjectiveCBridgeStubToNSString 1521 2375 +56.1% 0.64x
StringWordBuilder 1712 2620 +53.0% 0.65x
StringMatch 8308 12474 +50.1% 0.67x
StrToInt 2174 3228 +48.5% 0.67x
MapReduceShortString 21 31 +47.6% 0.68x
EqualStringSubstring 48 67 +39.6% 0.72x
EqualSubstringString 48 67 +39.6% 0.72x
ObjectiveCBridgeStubToArrayOfNSString 28881 40308 +39.6% 0.72x
RomanNumbers 112920 156830 +38.9% 0.72x
ErrorHandling 2341 3178 +35.8% 0.74x
StringEdits 122417 165883 +35.5% 0.74x
SortStrings 1789 2352 +31.5% 0.76x
StringBuilder 1387 1820 +31.2% 0.76x
Phonebook 3860 5043 +30.6% 0.77x
RemoveWhereFilterString 304 393 +29.3% 0.77x
StringEnumRawValueInitialization 955 1234 +29.2% 0.77x
Dictionary3 235 302 +28.5% 0.78x
Dictionary 510 638 +25.1% 0.80x
SortSortedStrings 998 1241 +24.3% 0.80x
WordCountUniqueUTF16 16464 19980 +21.4% 0.82x (?)
Join 377 455 +20.7% 0.83x
StaticArray 5 6 +20.0% 0.83x
ArrayAppendUTF16 36488 43030 +17.9% 0.85x
StringUTF16Builder 2358 2770 +17.5% 0.85x
RangeIterationSigned 171 200 +17.0% 0.86x
WordCountUniqueASCII 1761 2057 +16.8% 0.86x
StringComparison_fastPrenormal 747 868 +16.2% 0.86x
SequenceAlgosAnySequence 10133 11636 +14.8% 0.87x
StringComparison_latin1 588 673 +14.5% 0.87x
HashTest 1764 2018 +14.4% 0.87x
StrComplexWalk 1563 1787 +14.3% 0.87x
ArrayAppendLatin1 37792 42728 +13.1% 0.88x
ObjectiveCBridgeFromNSSetAnyObjectToString 68208 77025 +12.9% 0.89x
StringBuilderLong 1102 1240 +12.5% 0.89x (?)
SortStringsUnicode 2583 2903 +12.4% 0.89x
MapReduceLazyCollectionShort 34 38 +11.8% 0.89x
Dictionary3OfObjects 672 747 +11.2% 0.90x
StringAdder 4182 4643 +11.0% 0.90x
DropFirstAnySeqCRangeIter 18372 20310 +10.5% 0.90x
DropWhileAnySeqCRangeIter 15034 16571 +10.2% 0.91x
DropFirstAnySeqCRangeIterLazy 18368 20232 +10.1% 0.91x
StringEqualPointerComparison 286 315 +10.1% 0.91x
SubstringFromLongString 10 11 +10.0% 0.91x
StringRemoveDupes 1189 1305 +9.8% 0.91x
SuffixCountableRange 11 12 +9.1% 0.92x
DropLastCountableRangeLazy 11 12 +9.1% 0.92x
NopDeinit 21575 23480 +8.8% 0.92x
PrefixAnySeqCRangeIterLazy 14427 15670 +8.6% 0.92x
PrefixAnySeqCRangeIter 14426 15654 +8.5% 0.92x
RangeReplaceableCollectionPlusDefault 983 1061 +7.9% 0.93x
SubstringEquatable 1334 1438 +7.8% 0.93x
FrequenciesUsingReduceInto 3128 3370 +7.7% 0.93x
ArrayAppendAscii 13263 14241 +7.4% 0.93x
SortLargeExistentials 6848 7345 +7.3% 0.93x
SumUsingReduceInto 96 102 +6.2% 0.94x
EqualSubstringSubstring 48 51 +6.2% 0.94x
LessSubstringSubstring 48 51 +6.2% 0.94x
EqualSubstringSubstringGenericEquatable 48 51 +6.2% 0.94x
LessSubstringSubstringGenericComparable 48 51 +6.2% 0.94x
DictionaryOfObjects 2193 2329 +6.2% 0.94x
SuffixAnyCollectionLazy 21618 22933 +6.1% 0.94x (?)
DictionarySubscriptDefaultMutation 142 150 +5.6% 0.95x
StringComparison_abnormal 735 776 +5.6% 0.95x
SortLettersInPlace 1134 1197 +5.6% 0.95x (?)
Combos 452 476 +5.3% 0.95x
Improvement (18)
TEST OLD NEW DELTA SPEEDUP
ObjectiveCBridgeToNSString 1296 491 -62.1% 2.64x
ObjectiveCBridgeToNSSet 40788 17254 -57.7% 2.36x
ObjectiveCBridgeToNSDictionary 50944 25809 -49.3% 1.97x
ObjectiveCBridgeToNSArray 29217 15690 -46.3% 1.86x
NSError 303 171 -43.6% 1.77x
SevenBoom 1504 871 -42.1% 1.73x
DictionaryBridge 2013 1310 -34.9% 1.54x
PrefixWhileCountableRange 53 35 -34.0% 1.51x
StringInterpolation 10679 7866 -26.3% 1.36x
AngryPhonebook 3633 2905 -20.0% 1.25x (?)
ObjectiveCBridgeStubURLAppendPath 326202 264894 -18.8% 1.23x
ObjectiveCBridgeStubURLAppendPathRef 326822 268237 -17.9% 1.22x
ReversedBidirectional 17155 15480 -9.8% 1.11x
StringWalk 1581 1428 -9.7% 1.11x
DropLastSequence 687 629 -8.4% 1.09x
DropLastSequenceLazy 687 630 -8.3% 1.09x
BinaryFloatingPointConversionFromBinaryInteger 39 37 -5.1% 1.05x
CharacterLiteralsLarge 6037 5732 -5.1% 1.05x
No Changes (285)
TEST OLD NEW DELTA SPEEDUP
AnyHashableWithAClass 71257 71111 -0.2% 1.00x
Array2D 2552 2553 +0.0% 1.00x (?)
ArrayAppend 1021 1023 +0.2% 1.00x (?)
ArrayAppendArrayOfInt 797 797 +0.0% 1.00x
ArrayAppendFromGeneric 800 798 -0.2% 1.00x (?)
ArrayAppendGenericStructs 1429 1431 +0.1% 1.00x (?)
ArrayAppendLazyMap 1343 1342 -0.1% 1.00x (?)
ArrayAppendOptionals 1431 1432 +0.1% 1.00x (?)
ArrayAppendRepeatCol 1339 1339 +0.0% 1.00x
ArrayAppendReserved 754 756 +0.3% 1.00x
ArrayAppendSequence 1136 1132 -0.4% 1.00x (?)
ArrayAppendStrings 15204 15222 +0.1% 1.00x (?)
ArrayAppendToFromGeneric 798 798 +0.0% 1.00x
ArrayAppendToGeneric 804 802 -0.2% 1.00x (?)
ArrayInClass 86 86 +0.0% 1.00x
ArrayLiteral 0 0 +0.0% 1.00x
ArrayOfGenericPOD2 151 150 -0.7% 1.01x
ArrayOfGenericRef 4350 4430 +1.8% 0.98x
ArrayOfPOD 183 183 +0.0% 1.00x
ArrayOfRef 4355 4364 +0.2% 1.00x (?)
ArrayPlusEqualArrayOfInt 802 798 -0.5% 1.01x
ArrayPlusEqualFiveElementCollection 5525 5463 -1.1% 1.01x
ArrayPlusEqualSingleElementCollection 1025 1025 +0.0% 1.00x
ArrayPlusEqualThreeElements 1669 1648 -1.3% 1.01x (?)
ArraySubscript 1525 1547 +1.4% 0.99x
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
BitCount 211 202 -4.3% 1.04x
ByteSwap 101 104 +3.0% 0.97x
COWTree 5325 5550 +4.2% 0.96x
CSVParsing 764407 751015 -1.8% 1.02x (?)
CSVParsingAlt 723878 725019 +0.2% 1.00x (?)
CStringLongAscii 4770 4782 +0.3% 1.00x (?)
CStringLongNonAscii 2163 2132 -1.4% 1.01x
CStringShortAscii 4721 4838 +2.5% 0.98x
CaptureProp 3910 3885 -0.6% 1.01x
CharIndexing_ascii_unicodeScalars 14750 14274 -3.2% 1.03x
CharIndexing_ascii_unicodeScalars_Backwards 14470 14498 +0.2% 1.00x
CharIndexing_chinese_unicodeScalars 11167 10815 -3.2% 1.03x
CharIndexing_chinese_unicodeScalars_Backwards 10961 10980 +0.2% 1.00x
CharIndexing_japanese_unicodeScalars 17651 17067 -3.3% 1.03x
CharIndexing_japanese_unicodeScalars_Backwards 17313 17337 +0.1% 1.00x
CharIndexing_korean_unicodeScalars 14302 13827 -3.3% 1.03x
CharIndexing_korean_unicodeScalars_Backwards 14032 14059 +0.2% 1.00x
CharIndexing_punctuatedJapanese_unicodeScalars 2682 2606 -2.8% 1.03x
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 2632 2640 +0.3% 1.00x
CharIndexing_punctuated_unicodeScalars 3352 3251 -3.0% 1.03x
CharIndexing_punctuated_unicodeScalars_Backwards 3291 3298 +0.2% 1.00x (?)
CharIndexing_russian_unicodeScalars 12294 11898 -3.2% 1.03x
CharIndexing_russian_unicodeScalars_Backwards 12059 12087 +0.2% 1.00x
CharIndexing_tweet_unicodeScalars 29102 28116 -3.4% 1.04x
CharIndexing_tweet_unicodeScalars_Backwards 28516 28637 +0.4% 1.00x
CharIndexing_utf16_unicodeScalars 20247 20093 -0.8% 1.01x
CharIndexing_utf16_unicodeScalars_Backwards 21079 21196 +0.6% 0.99x
CharIteration_ascii_unicodeScalars 21856 21490 -1.7% 1.02x
CharIteration_ascii_unicodeScalars_Backwards 12693 12712 +0.1% 1.00x
CharIteration_chinese_unicodeScalars 16457 16249 -1.3% 1.01x
CharIteration_chinese_unicodeScalars_Backwards 9619 9632 +0.1% 1.00x (?)
CharIteration_japanese_unicodeScalars 25922 25722 -0.8% 1.01x
CharIteration_japanese_unicodeScalars_Backwards 15216 15206 -0.1% 1.00x (?)
CharIteration_korean_unicodeScalars 21177 20832 -1.6% 1.02x
CharIteration_korean_unicodeScalars_Backwards 12306 12321 +0.1% 1.00x
CharIteration_punctuatedJapanese_unicodeScalars 3887 3834 -1.4% 1.01x
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 2330 2346 +0.7% 0.99x
CharIteration_punctuated_unicodeScalars 4845 4801 -0.9% 1.01x
CharIteration_punctuated_unicodeScalars_Backwards 2904 2919 +0.5% 0.99x
CharIteration_russian_unicodeScalars 18022 17882 -0.8% 1.01x
CharIteration_russian_unicodeScalars_Backwards 10594 10594 +0.0% 1.00x
CharIteration_tweet_unicodeScalars 43659 42401 -2.9% 1.03x
CharIteration_tweet_unicodeScalars_Backwards 25040 25069 +0.1% 1.00x (?)
CharIteration_utf16_unicodeScalars 27554 27557 +0.0% 1.00x (?)
CharIteration_utf16_unicodeScalars_Backwards 15798 16251 +2.9% 0.97x
CharacterLiteralsSmall 411 407 -1.0% 1.01x
CharacterPropertiesFetch 4605 4570 -0.8% 1.01x (?)
CharacterPropertiesPrecomputed 980 1001 +2.1% 0.98x
CharacterPropertiesStashed 1561 1564 +0.2% 1.00x (?)
CharacterPropertiesStashedMemo 1539 1528 -0.7% 1.01x
Chars 969 973 +0.4% 1.00x
ClassArrayGetter 15 15 +0.0% 1.00x
DictOfArraysToArrayOfDicts 814 810 -0.5% 1.00x (?)
Dictionary2 1622 1677 +3.4% 0.97x
Dictionary2OfObjects 2963 3102 +4.7% 0.96x
Dictionary4 147 149 +1.4% 0.99x
Dictionary4OfObjects 200 204 +2.0% 0.98x
DictionaryGroup 133 133 +0.0% 1.00x
DictionaryGroupOfObjects 1951 1925 -1.3% 1.01x
DictionaryLiteral 1613 1602 -0.7% 1.01x (?)
DictionaryRemove 2744 2829 +3.1% 0.97x
DictionaryRemoveOfObjects 23801 23871 +0.3% 1.00x (?)
DictionarySubscriptDefaultMutationArray 490 489 -0.2% 1.00x (?)
DictionarySubscriptDefaultMutationArrayOfObjects 3830 3825 -0.1% 1.00x (?)
DictionarySubscriptDefaultMutationOfObjects 1400 1387 -0.9% 1.01x (?)
DictionarySwap 472 479 +1.5% 0.99x
DictionarySwapOfObjects 7392 7416 +0.3% 1.00x (?)
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollection 102 102 +0.0% 1.00x
DropFirstAnyCollectionLazy 65229 65143 -0.1% 1.00x (?)
DropFirstAnySeqCntRange 94 94 +0.0% 1.00x
DropFirstAnySeqCntRangeLazy 94 94 +0.0% 1.00x
DropFirstAnySequence 4554 4343 -4.6% 1.05x
DropFirstAnySequenceLazy 4522 4357 -3.6% 1.04x
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 2699 2700 +0.0% 1.00x
DropFirstSequenceLazy 2792 2795 +0.1% 1.00x (?)
DropLastAnyCollection 37 37 +0.0% 1.00x
DropLastAnyCollectionLazy 21731 21935 +0.9% 0.99x (?)
DropLastAnySeqCRangeIter 3885 3787 -2.5% 1.03x
DropLastAnySeqCRangeIterLazy 3893 3796 -2.5% 1.03x
DropLastAnySeqCntRange 30 30 +0.0% 1.00x
DropLastAnySeqCntRangeLazy 29 30 +3.4% 0.97x
DropLastAnySequence 5143 5126 -0.3% 1.00x
DropLastAnySequenceLazy 5247 5239 -0.2% 1.00x
DropLastCountableRange 12 12 +0.0% 1.00x
DropWhileAnyCollection 125 125 +0.0% 1.00x
DropWhileAnyCollectionLazy 166 166 +0.0% 1.00x
DropWhileAnySeqCRangeIterLazy 166 166 +0.0% 1.00x
DropWhileAnySeqCntRange 118 117 -0.8% 1.01x
DropWhileAnySeqCntRangeLazy 167 166 -0.6% 1.01x
DropWhileAnySequence 4869 4760 -2.2% 1.02x
DropWhileAnySequenceLazy 1857 1857 +0.0% 1.00x
DropWhileArrayLazy 129 129 +0.0% 1.00x
DropWhileCountableRange 36 35 -2.8% 1.03x
DropWhileCountableRangeLazy 111 111 +0.0% 1.00x
DropWhileSequence 1344 1343 -0.1% 1.00x (?)
DropWhileSequenceLazy 88 88 +0.0% 1.00x
ExclusivityGlobal 5 5 +0.0% 1.00x
ExclusivityIndependent 2 2 +0.0% 1.00x
FilterEvenUsingReduce 1326 1323 -0.2% 1.00x (?)
FilterEvenUsingReduceInto 149 148 -0.7% 1.01x (?)
FrequenciesUsingReduce 6657 6975 +4.8% 0.95x
Hanoi 3648 3649 +0.0% 1.00x (?)
Histogram 322 331 +2.8% 0.97x
Integrate 217 218 +0.5% 1.00x
IterateData 1352 1305 -3.5% 1.04x
LazilyFilteredArrayContains 36695 36673 -0.1% 1.00x (?)
LazilyFilteredArrays 67074 65182 -2.8% 1.03x (?)
LazilyFilteredRange 3826 3994 +4.4% 0.96x
LinkedList 7784 7525 -3.3% 1.03x
LuhnAlgoEager 592 591 -0.2% 1.00x (?)
LuhnAlgoLazy 584 587 +0.5% 0.99x (?)
MapReduce 400 400 +0.0% 1.00x
MapReduceAnyCollection 401 403 +0.5% 1.00x
MapReduceAnyCollectionShort 2274 2262 -0.5% 1.01x (?)
MapReduceClass 3033 3029 -0.1% 1.00x (?)
MapReduceClassShort 4598 4621 +0.5% 1.00x (?)
MapReduceLazyCollection 13 13 +0.0% 1.00x
MapReduceLazySequence 86 86 +0.0% 1.00x
MapReduceSequence 460 446 -3.0% 1.03x
MapReduceShort 2025 2019 -0.3% 1.00x
MapReduceString 81 79 -2.5% 1.03x
Memset 216 216 +0.0% 1.00x
MonteCarloE 10405 10403 -0.0% 1.00x (?)
MonteCarloPi 42916 42941 +0.1% 1.00x (?)
NSDictionaryCastToSwift 5454 5423 -0.6% 1.01x (?)
NibbleSort 3956 4120 +4.1% 0.96x
ObjectAllocation 186 184 -1.1% 1.01x
ObjectiveCBridgeFromNSArrayAnyObject 19912 20625 +3.6% 0.97x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 4045 4116 +1.8% 0.98x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 37738 38649 +2.4% 0.98x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 33606 33432 -0.5% 1.01x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 125853 123001 -2.3% 1.02x
ObjectiveCBridgeFromNSSetAnyObject 60725 59890 -1.4% 1.01x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 4301 4235 -1.5% 1.02x (?)
ObjectiveCBridgeFromNSString 1308 1332 +1.8% 0.98x
ObjectiveCBridgeFromNSStringForced 2432 2401 -1.3% 1.01x (?)
ObjectiveCBridgeStubDataAppend 3911 3895 -0.4% 1.00x (?)
ObjectiveCBridgeStubDateMutation 257 257 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 29597 28228 -4.6% 1.05x (?)
ObjectiveCBridgeStubFromNSDate 4076 4041 -0.9% 1.01x
ObjectiveCBridgeStubFromNSString 839 839 +0.0% 1.00x
ObjectiveCBridgeStubFromNSStringRef 161 164 +1.9% 0.98x
ObjectiveCBridgeStubNSDataAppend 2619 2543 -2.9% 1.03x (?)
ObjectiveCBridgeStubNSDateMutationRef 13516 13193 -2.4% 1.02x (?)
ObjectiveCBridgeStubToNSDate 16272 15905 -2.3% 1.02x (?)
ObjectiveCBridgeStubToNSDateRef 3434 3397 -1.1% 1.01x (?)
ObjectiveCBridgeStubToNSStringRef 116 113 -2.6% 1.03x
ObserverClosure 2181 2172 -0.4% 1.00x
ObserverForwarderStruct 999 1002 +0.3% 1.00x (?)
ObserverPartiallyAppliedMethod 3763 3734 -0.8% 1.01x (?)
ObserverUnappliedMethod 2366 2365 -0.0% 1.00x (?)
PartialApplyDynamicType 0 0 +0.0% 1.00x
PointerArithmetics 34375 34357 -0.1% 1.00x (?)
PolymorphicCalls 25 25 +0.0% 1.00x
PopFrontArray 1936 1858 -4.0% 1.04x (?)
PopFrontArrayGeneric 1989 1956 -1.7% 1.02x (?)
PopFrontUnsafePointer 9391 9374 -0.2% 1.00x (?)
PrefixAnyCollection 101 102 +1.0% 0.99x
PrefixAnyCollectionLazy 64908 67531 +4.0% 0.96x
PrefixAnySeqCntRange 94 94 +0.0% 1.00x
PrefixAnySeqCntRangeLazy 94 94 +0.0% 1.00x
PrefixAnySequence 3937 3823 -2.9% 1.03x
PrefixAnySequenceLazy 3974 3857 -2.9% 1.03x
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 1327 1326 -0.1% 1.00x
PrefixSequenceLazy 1413 1413 +0.0% 1.00x
PrefixWhileAnyCollection 172 172 +0.0% 1.00x
PrefixWhileAnyCollectionLazy 108 108 +0.0% 1.00x
PrefixWhileAnySeqCRangeIter 9488 9335 -1.6% 1.02x
PrefixWhileAnySeqCRangeIterLazy 90 90 +0.0% 1.00x
PrefixWhileAnySeqCntRange 164 164 +0.0% 1.00x
PrefixWhileAnySeqCntRangeLazy 107 108 +0.9% 0.99x
PrefixWhileAnySequence 10661 10476 -1.7% 1.02x
PrefixWhileAnySequenceLazy 1393 1394 +0.1% 1.00x
PrefixWhileArray 88 88 +0.0% 1.00x
PrefixWhileArrayLazy 70 70 +0.0% 1.00x
PrefixWhileCountableRangeLazy 35 35 +0.0% 1.00x
PrefixWhileSequence 380 382 +0.5% 0.99x
PrefixWhileSequenceLazy 52 52 +0.0% 1.00x
Prims 752 746 -0.8% 1.01x
PrimsSplit 756 748 -1.1% 1.01x (?)
QueueConcrete 1308 1312 +0.3% 1.00x (?)
QueueGeneric 1158 1162 +0.3% 1.00x
RC4 171 165 -3.5% 1.04x
RGBHistogram 2240 2335 +4.2% 0.96x
RGBHistogramOfObjects 23627 23588 -0.2% 1.00x (?)
RangeAssignment 352 353 +0.3% 1.00x (?)
RangeIterationSigned64 200 200 +0.0% 1.00x
RangeIterationUnsigned 200 200 +0.0% 1.00x
RecursiveOwnedParameter 2347 2323 -1.0% 1.01x
RemoveWhereFilterInts 46 45 -2.2% 1.02x
RemoveWhereFilterStrings 432 433 +0.2% 1.00x
RemoveWhereMoveInts 17 17 +0.0% 1.00x
RemoveWhereMoveStrings 520 520 +0.0% 1.00x
RemoveWhereQuadraticInts 1287 1284 -0.2% 1.00x
RemoveWhereQuadraticStrings 2761 2761 +0.0% 1.00x
RemoveWhereSwapInts 19 19 +0.0% 1.00x
RemoveWhereSwapStrings 849 852 +0.4% 1.00x
ReversedArray 58 58 +0.0% 1.00x
ReversedDictionary 135 133 -1.5% 1.02x (?)
SequenceAlgosArray 1581 1579 -0.1% 1.00x (?)
SequenceAlgosContiguousArray 1579 1579 +0.0% 1.00x
SequenceAlgosList 1357 1348 -0.7% 1.01x
SequenceAlgosRange 4298 4296 -0.0% 1.00x (?)
SequenceAlgosUnfoldSequence 1080 1080 +0.0% 1.00x
SetExclusiveOr 3363 3468 +3.1% 0.97x
SetExclusiveOr_OfObjects 8803 8901 +1.1% 0.99x
SetIntersect 318 320 +0.6% 0.99x
SetIntersect_OfObjects 1759 1764 +0.3% 1.00x (?)
SetIsSubsetOf 299 298 -0.3% 1.00x
SetIsSubsetOf_OfObjects 363 364 +0.3% 1.00x
SetUnion 3119 3132 +0.4% 1.00x (?)
SetUnion_OfObjects 7235 7292 +0.8% 0.99x (?)
Sim2DArray 416 418 +0.5% 1.00x (?)
StackPromo 22076 21957 -0.5% 1.01x
StringComparison_ascii 1023 1014 -0.9% 1.01x
StringComparison_emoji 810 840 +3.7% 0.96x
StringComparison_longSharedPrefix 900 946 +5.1% 0.95x
StringComparison_nonBMPSlowestPrenormal 1559 1637 +5.0% 0.95x
StringComparison_slowerPrenormal 1675 1758 +5.0% 0.95x
StringComparison_zalgo 114161 114158 -0.0% 1.00x (?)
StringFromLongWholeSubstring 21 20 -4.8% 1.05x
StringHasPrefixUnicode 27836 27892 +0.2% 1.00x (?)
StringHasSuffixUnicode 85093 84663 -0.5% 1.01x (?)
StringWithCString 43218 42619 -1.4% 1.01x
SubstringComparable 41 40 -2.4% 1.02x (?)
SubstringFromLongStringGeneric 69 69 +0.0% 1.00x
SuffixAnyCollection 43 43 +0.0% 1.00x
SuffixAnySeqCRangeIter 4093 4000 -2.3% 1.02x
SuffixAnySeqCRangeIterLazy 4095 3998 -2.4% 1.02x
SuffixAnySeqCntRange 35 35 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 35 35 +0.0% 1.00x
SuffixAnySequence 5137 5094 -0.8% 1.01x (?)
SuffixAnySequenceLazy 5263 5194 -1.3% 1.01x (?)
SuffixCountableRangeLazy 11 11 +0.0% 1.00x
SuffixSequence 3709 3758 +1.3% 0.99x
SuffixSequenceLazy 3707 3756 +1.3% 0.99x
SumUsingReduce 96 97 +1.0% 0.99x
SuperChars 41392 41603 +0.5% 0.99x (?)
TwoSum 1000 1003 +0.3% 1.00x (?)
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode 327 321 -1.8% 1.02x
Walsh 412 418 +1.5% 0.99x
WordCountHistogramASCII 7445 7608 +2.2% 0.98x
WordCountHistogramUTF16 26535 25394 -4.3% 1.04x (?)
WordSplitASCII 21188 21810 +2.9% 0.97x (?)
WordSplitUTF16 23212 23875 +2.9% 0.97x (?)
XorLoop 394 394 +0.0% 1.00x

Unoptimized (Onone)

Regression (89)
TEST OLD NEW DELTA SPEEDUP
StringHasSuffixAscii 3187 58592 +1738.5% 0.05x
StringHasPrefixAscii 3077 49618 +1512.5% 0.06x
StringEnumRawValueInitialization 18169 34746 +91.2% 0.52x
NSStringConversion 329 590 +79.3% 0.56x
OpenClose 560 1001 +78.7% 0.56x
Calculator 1507 2543 +68.7% 0.59x
StrToInt 57504 94071 +63.6% 0.61x
ObjectiveCBridgeStubToNSString 1576 2415 +53.2% 0.65x
RangeReplaceableCollectionPlusDefault 8158 12313 +50.9% 0.66x
ObjectiveCBridgeStubToArrayOfNSString 29004 39883 +37.5% 0.73x
ErrorHandling 6842 8773 +28.2% 0.78x
LuhnAlgoEager 4728 5968 +26.2% 0.79x
SortStrings 2091 2574 +23.1% 0.81x
CStringLongAscii 4604 5591 +21.4% 0.82x
StringWithCString 37534 45214 +20.5% 0.83x
SortSortedStrings 1081 1301 +20.4% 0.83x
DropWhileCountableRange 3927 4714 +20.0% 0.83x
StringEdits 353029 421588 +19.4% 0.84x
LuhnAlgoLazy 4997 5962 +19.3% 0.84x
ArrayAppendRepeatCol 172816 205504 +18.9% 0.84x (?)
StringMatch 33100 38957 +17.7% 0.85x
PrefixWhileCountableRange 10997 12813 +16.5% 0.86x
SequenceAlgosRange 1070641 1244133 +16.2% 0.86x
SequenceAlgosAnySequence 10985 12671 +15.3% 0.87x
DropWhileAnySeqCntRange 17175 19712 +14.8% 0.87x
CharIteration_tweet_unicodeScalars_Backwards 579494 664439 +14.7% 0.87x (?)
PrefixWhileAnySeqCntRange 24334 27791 +14.2% 0.88x
RangeIterationUnsigned 34650 39449 +13.8% 0.88x
DropFirstAnySeqCntRangeLazy 13583 15386 +13.3% 0.88x
DropWhileAnySeqCRangeIterLazy 18852 21353 +13.3% 0.88x
DropWhileAnyCollection 17179 19439 +13.2% 0.88x
DropWhileCountableRangeLazy 18442 20852 +13.1% 0.88x
PrefixWhileAnyCollection 24369 27517 +12.9% 0.89x
DropWhileAnySeqCntRangeLazy 18779 21203 +12.9% 0.89x
SortStringsUnicode 2863 3223 +12.6% 0.89x
SuffixAnySeqCntRangeLazy 4552 5118 +12.4% 0.89x
PrefixWhileAnySeqCntRangeLazy 15636 17570 +12.4% 0.89x
DropLastAnySeqCntRangeLazy 4539 5097 +12.3% 0.89x
PrefixAnySeqCntRangeLazy 13587 15250 +12.2% 0.89x
DropFirstAnySeqCRangeIter 20334 22794 +12.1% 0.89x
PrefixWhileAnySeqCRangeIterLazy 15634 17504 +12.0% 0.89x
LazilyFilteredRange 470922 525987 +11.7% 0.90x
DropWhileAnyCollectionLazy 18862 21060 +11.7% 0.90x
DropFirstAnyCollection 13637 15194 +11.4% 0.90x
PrefixWhileAnyCollectionLazy 15693 17471 +11.3% 0.90x (?)
SuffixAnySeqCntRange 4538 5050 +11.3% 0.90x
DropLastAnyCollection 4553 5066 +11.3% 0.90x
PrefixWhileCountableRangeLazy 15357 17086 +11.3% 0.90x (?)
SuffixAnyCollection 4568 5077 +11.1% 0.90x
PrefixAnySeqCntRange 13640 15136 +11.0% 0.90x
DropFirstAnySeqCRangeIterLazy 20419 22648 +10.9% 0.90x (?)
DropFirstAnySeqCntRange 13629 15099 +10.8% 0.90x
Phonebook 20037 22097 +10.3% 0.91x
DropWhileAnySeqCRangeIter 21751 23954 +10.1% 0.91x
DropLastAnySeqCntRange 4570 5032 +10.1% 0.91x
PrefixAnySeqCRangeIter 16443 18094 +10.0% 0.91x
CharIteration_utf16_unicodeScalars_Backwards 251407 275863 +9.7% 0.91x (?)
PrefixAnyCollection 13697 15027 +9.7% 0.91x
ObjectiveCBridgeFromNSSetAnyObjectToString 72783 79764 +9.6% 0.91x (?)
PrefixAnySeqCRangeIterLazy 16517 18055 +9.3% 0.91x
SubstringEqualString 1889 2061 +9.1% 0.92x
StrComplexWalk 6665 7269 +9.1% 0.92x
ArrayOfGenericRef 10088 10999 +9.0% 0.92x (?)
StringBuilder 6704 7274 +8.5% 0.92x
Combos 2141 2313 +8.0% 0.93x
StringWordBuilder 2494 2692 +7.9% 0.93x
SortLettersInPlace 2666 2877 +7.9% 0.93x
RangeIterationSigned64 39223 42297 +7.8% 0.93x
PopFrontUnsafePointer 10570 11381 +7.7% 0.93x
EqualSubstringSubstring 92 99 +7.6% 0.93x
StringWordBuilderReservingCapacity 2173 2334 +7.4% 0.93x
StringUTF16Builder 7732 8261 +6.8% 0.94x
PrefixAnySequence 8944 9555 +6.8% 0.94x
StringAdder 4776 5102 +6.8% 0.94x
SuffixAnySeqCRangeIterLazy 33658 35906 +6.7% 0.94x
SuffixAnySeqCRangeIter 33488 35721 +6.7% 0.94x
PrefixAnyCollectionLazy 97286 103286 +6.2% 0.94x
StringRemoveDupes 1371 1455 +6.1% 0.94x
WordCountUniqueUTF16 28540 30250 +6.0% 0.94x (?)
CStringLongNonAscii 2192 2322 +5.9% 0.94x
EqualStringSubstring 91 96 +5.5% 0.95x
EqualSubstringString 92 97 +5.4% 0.95x
WordSplitUTF16 26433 27868 +5.4% 0.95x
SuperChars 124135 130851 +5.4% 0.95x
StringBuilderLong 2739 2887 +5.4% 0.95x (?)
DictionarySwapOfObjects 22415 23625 +5.4% 0.95x (?)
Dictionary 2610 2749 +5.3% 0.95x
ObjectiveCBridgeFromNSSetAnyObjectForced 6773 7132 +5.3% 0.95x (?)
DictionaryGroup 4191 4412 +5.3% 0.95x
Improvement (26)
TEST OLD NEW DELTA SPEEDUP
ObjectiveCBridgeToNSString 1347 531 -60.6% 2.54x
ObjectiveCBridgeToNSSet 42270 17506 -58.6% 2.41x
ObjectiveCBridgeToNSDictionary 51599 27705 -46.3% 1.86x
ObjectiveCBridgeToNSArray 29425 15935 -45.8% 1.85x
StringFromLongWholeSubstring 22 12 -45.5% 1.83x
DictionaryBridge 2121 1420 -33.1% 1.49x
SevenBoom 1647 1107 -32.8% 1.49x
SubstringFromLongString 24 18 -25.0% 1.33x
ObjectiveCBridgeStubURLAppendPathRef 328326 275760 -16.0% 1.19x
SetIsSubsetOf 1593 1345 -15.6% 1.18x
AngryPhonebook 5118 4335 -15.3% 1.18x
ObjectiveCBridgeStubURLAppendPath 335621 285316 -15.0% 1.18x
ObjectiveCBridgeFromNSArrayAnyObjectToString 48048 40907 -14.9% 1.17x
NSError 764 660 -13.6% 1.16x
SumUsingReduce 182441 162011 -11.2% 1.13x
CharIndexing_japanese_unicodeScalars 478764 426695 -10.9% 1.12x
StringInterpolation 13690 12215 -10.8% 1.12x
PrefixWhileArray 11799 10585 -10.3% 1.11x
CharIndexing_ascii_unicodeScalars 400646 363134 -9.4% 1.10x
CharIndexing_chinese_unicodeScalars 295740 269506 -8.9% 1.10x
ObjectiveCBridgeFromNSSetAnyObject 70637 64757 -8.3% 1.09x
CSVParsingAltIndices 2366755 2192586 -7.4% 1.08x
ArrayPlusEqualThreeElements 9828 9255 -5.8% 1.06x (?)
DropWhileArrayLazy 14499 13696 -5.5% 1.06x
CharacterLiteralsLarge 6016 5690 -5.4% 1.06x
RecursiveOwnedParameter 8362 7939 -5.1% 1.05x
No Changes (263)
TEST OLD NEW DELTA SPEEDUP
AnyHashableWithAClass 86832 88086 +1.4% 0.99x
Array2D 631583 631967 +0.1% 1.00x (?)
ArrayAppend 4677 4786 +2.3% 0.98x
ArrayAppendArrayOfInt 861 862 +0.1% 1.00x (?)
ArrayAppendAscii 39994 39659 -0.8% 1.01x
ArrayAppendFromGeneric 861 867 +0.7% 0.99x (?)
ArrayAppendGenericStructs 1503 1498 -0.3% 1.00x (?)
ArrayAppendLatin1 63545 64153 +1.0% 0.99x
ArrayAppendLazyMap 167544 167667 +0.1% 1.00x
ArrayAppendOptionals 1499 1504 +0.3% 1.00x (?)
ArrayAppendReserved 4394 4392 -0.0% 1.00x (?)
ArrayAppendSequence 142398 139681 -1.9% 1.02x
ArrayAppendStrings 15384 15364 -0.1% 1.00x (?)
ArrayAppendToFromGeneric 865 860 -0.6% 1.01x (?)
ArrayAppendToGeneric 868 870 +0.2% 1.00x
ArrayAppendUTF16 64536 64932 +0.6% 0.99x
ArrayInClass 6260 6200 -1.0% 1.01x
ArrayLiteral 1861 1780 -4.4% 1.05x
ArrayOfGenericPOD2 1189 1186 -0.3% 1.00x (?)
ArrayOfPOD 848 847 -0.1% 1.00x
ArrayOfRef 9298 9466 +1.8% 0.98x
ArrayPlusEqualArrayOfInt 862 864 +0.2% 1.00x (?)
ArrayPlusEqualFiveElementCollection 231738 231474 -0.1% 1.00x (?)
ArrayPlusEqualSingleElementCollection 228422 231823 +1.5% 0.99x (?)
ArraySubscript 116279 115111 -1.0% 1.01x
ArrayValueProp 3636 3616 -0.6% 1.01x (?)
ArrayValueProp2 15985 16314 +2.1% 0.98x (?)
ArrayValueProp3 4136 4129 -0.2% 1.00x (?)
ArrayValueProp4 4084 4074 -0.2% 1.00x (?)
BinaryFloatingPointConversionFromBinaryInteger 5930 6228 +5.0% 0.95x
BitCount 7657 7708 +0.7% 0.99x (?)
ByteSwap 9214 9181 -0.4% 1.00x (?)
COWTree 11254 11816 +5.0% 0.95x
CSVParsing 2457053 2383190 -3.0% 1.03x (?)
CSVParsingAlt 1286326 1329040 +3.3% 0.97x (?)
CStringShortAscii 7577 7924 +4.6% 0.96x (?)
CaptureProp 252833 245057 -3.1% 1.03x (?)
CharIndexing_ascii_unicodeScalars_Backwards 382297 400590 +4.8% 0.95x (?)
CharIndexing_chinese_unicodeScalars_Backwards 316004 302544 -4.3% 1.04x (?)
CharIndexing_japanese_unicodeScalars_Backwards 460249 469518 +2.0% 0.98x (?)
CharIndexing_korean_unicodeScalars 350688 345532 -1.5% 1.01x (?)
CharIndexing_korean_unicodeScalars_Backwards 379713 390559 +2.9% 0.97x (?)
CharIndexing_punctuatedJapanese_unicodeScalars 63217 62383 -1.3% 1.01x (?)
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 66145 68648 +3.8% 0.96x (?)
CharIndexing_punctuated_unicodeScalars 79857 79018 -1.1% 1.01x (?)
CharIndexing_punctuated_unicodeScalars_Backwards 86735 87247 +0.6% 0.99x (?)
CharIndexing_russian_unicodeScalars 296468 296017 -0.2% 1.00x (?)
CharIndexing_russian_unicodeScalars_Backwards 319403 331857 +3.9% 0.96x (?)
CharIndexing_tweet_unicodeScalars 707044 705663 -0.2% 1.00x (?)
CharIndexing_tweet_unicodeScalars_Backwards 770589 784646 +1.8% 0.98x (?)
CharIndexing_utf16_unicodeScalars 303532 300403 -1.0% 1.01x (?)
CharIndexing_utf16_unicodeScalars_Backwards 336038 339091 +0.9% 0.99x (?)
CharIteration_ascii_unicodeScalars 158295 154926 -2.1% 1.02x (?)
CharIteration_ascii_unicodeScalars_Backwards 297204 290846 -2.1% 1.02x (?)
CharIteration_chinese_unicodeScalars 117289 116876 -0.4% 1.00x (?)
CharIteration_chinese_unicodeScalars_Backwards 219443 220345 +0.4% 1.00x (?)
CharIteration_japanese_unicodeScalars 185419 185222 -0.1% 1.00x (?)
CharIteration_japanese_unicodeScalars_Backwards 349177 354511 +1.5% 0.98x
CharIteration_korean_unicodeScalars 153503 149631 -2.5% 1.03x (?)
CharIteration_korean_unicodeScalars_Backwards 281765 283677 +0.7% 0.99x (?)
CharIteration_punctuatedJapanese_unicodeScalars 27692 27732 +0.1% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 51038 51859 +1.6% 0.98x (?)
CharIteration_punctuated_unicodeScalars 35569 34755 -2.3% 1.02x (?)
CharIteration_punctuated_unicodeScalars_Backwards 64549 64637 +0.1% 1.00x (?)
CharIteration_russian_unicodeScalars 131645 128678 -2.3% 1.02x (?)
CharIteration_russian_unicodeScalars_Backwards 246156 245106 -0.4% 1.00x (?)
CharIteration_tweet_unicodeScalars 306113 304570 -0.5% 1.01x
CharIteration_utf16_unicodeScalars 130333 130566 +0.2% 1.00x (?)
CharacterLiteralsSmall 670 664 -0.9% 1.01x
CharacterPropertiesFetch 5571 5436 -2.4% 1.02x (?)
CharacterPropertiesPrecomputed 4462 4459 -0.1% 1.00x (?)
CharacterPropertiesStashed 2308 2352 +1.9% 0.98x
CharacterPropertiesStashedMemo 5051 5173 +2.4% 0.98x (?)
Chars 39509 39804 +0.7% 0.99x
ClassArrayGetter 991 997 +0.6% 0.99x
DictOfArraysToArrayOfDicts 3364 3458 +2.8% 0.97x
Dictionary2 2913 2970 +2.0% 0.98x (?)
Dictionary2OfObjects 5554 5595 +0.7% 0.99x (?)
Dictionary3 1342 1393 +3.8% 0.96x
Dictionary3OfObjects 2281 2345 +2.8% 0.97x (?)
Dictionary4 1191 1187 -0.3% 1.00x (?)
Dictionary4OfObjects 1834 1827 -0.4% 1.00x
DictionaryGroupOfObjects 7482 7657 +2.3% 0.98x (?)
DictionaryLiteral 8601 8618 +0.2% 1.00x (?)
DictionaryOfObjects 6101 6349 +4.1% 0.96x (?)
DictionaryRemove 18240 18209 -0.2% 1.00x (?)
DictionaryRemoveOfObjects 50598 50658 +0.1% 1.00x (?)
DictionarySubscriptDefaultMutation 2066 2033 -1.6% 1.02x
DictionarySubscriptDefaultMutationArray 2323 2294 -1.2% 1.01x (?)
DictionarySubscriptDefaultMutationArrayOfObjects 9255 9023 -2.5% 1.03x
DictionarySubscriptDefaultMutationOfObjects 5756 5638 -2.1% 1.02x (?)
DictionarySwap 5240 5200 -0.8% 1.01x
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollectionLazy 95522 99674 +4.3% 0.96x (?)
DropFirstAnySequence 10780 11013 +2.2% 0.98x
DropFirstAnySequenceLazy 10801 11069 +2.5% 0.98x
DropFirstArray 3716 3772 +1.5% 0.99x
DropFirstArrayLazy 25287 24930 -1.4% 1.01x (?)
DropFirstCountableRange 325 326 +0.3% 1.00x
DropFirstCountableRangeLazy 26646 26586 -0.2% 1.00x (?)
DropFirstSequence 10509 10499 -0.1% 1.00x (?)
DropFirstSequenceLazy 10553 10631 +0.7% 0.99x
DropLastAnyCollectionLazy 33245 34565 +4.0% 0.96x (?)
DropLastAnySeqCRangeIter 38544 39558 +2.6% 0.97x (?)
DropLastAnySeqCRangeIterLazy 37603 39537 +5.1% 0.95x
DropLastAnySequence 29095 28849 -0.8% 1.01x
DropLastAnySequenceLazy 28760 28922 +0.6% 0.99x
DropLastCountableRange 112 113 +0.9% 0.99x
DropLastCountableRangeLazy 8880 8853 -0.3% 1.00x (?)
DropLastSequence 28595 28742 +0.5% 0.99x
DropLastSequenceLazy 29189 28856 -1.1% 1.01x
DropWhileAnySequence 12127 12277 +1.2% 0.99x (?)
DropWhileAnySequenceLazy 10083 10236 +1.5% 0.99x
DropWhileSequence 11765 11860 +0.8% 0.99x (?)
DropWhileSequenceLazy 9716 9749 +0.3% 1.00x (?)
EqualSubstringSubstringGenericEquatable 98 101 +3.1% 0.97x
ExclusivityGlobal 180 186 +3.3% 0.97x
ExclusivityIndependent 70 68 -2.9% 1.03x
FilterEvenUsingReduce 3625 3628 +0.1% 1.00x (?)
FilterEvenUsingReduceInto 1909 1918 +0.5% 1.00x (?)
FrequenciesUsingReduce 10256 10589 +3.2% 0.97x
FrequenciesUsingReduceInto 5261 5448 +3.6% 0.97x (?)
Hanoi 20102 20527 +2.1% 0.98x
HashTest 21533 22395 +4.0% 0.96x (?)
Histogram 6493 6590 +1.5% 0.99x
Integrate 833 824 -1.1% 1.01x
IterateData 6052 5887 -2.7% 1.03x
Join 1110 1115 +0.5% 1.00x
LazilyFilteredArrayContains 782881 766039 -2.2% 1.02x
LazilyFilteredArrays 1452692 1478588 +1.8% 0.98x
LessSubstringSubstring 92 95 +3.3% 0.97x
LessSubstringSubstringGenericComparable 96 99 +3.1% 0.97x
LinkedList 32011 32090 +0.2% 1.00x (?)
MapReduce 25777 25503 -1.1% 1.01x
MapReduceAnyCollection 25605 25503 -0.4% 1.00x
MapReduceAnyCollectionShort 37644 36768 -2.3% 1.02x
MapReduceClass 30559 29901 -2.2% 1.02x
MapReduceClassShort 41603 41336 -0.6% 1.01x (?)
MapReduceLazyCollection 22660 22278 -1.7% 1.02x
MapReduceLazyCollectionShort 32512 32435 -0.2% 1.00x (?)
MapReduceLazySequence 17465 17469 +0.0% 1.00x (?)
MapReduceSequence 29375 29162 -0.7% 1.01x
MapReduceShort 38012 37213 -2.1% 1.02x (?)
MapReduceShortString 245 249 +1.6% 0.98x (?)
MapReduceString 1812 1787 -1.4% 1.01x
Memset 44799 44769 -0.1% 1.00x (?)
MonteCarloE 1237789 1237914 +0.0% 1.00x (?)
MonteCarloPi 5622579 5575135 -0.8% 1.01x
NSDictionaryCastToSwift 6554 6649 +1.4% 0.99x (?)
NibbleSort 410517 407078 -0.8% 1.01x (?)
NopDeinit 166664 166063 -0.4% 1.00x (?)
ObjectAllocation 1331 1348 +1.3% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObject 22977 22911 -0.3% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 9138 8955 -2.0% 1.02x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 36605 35222 -3.8% 1.04x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 126308 125512 -0.6% 1.01x (?)
ObjectiveCBridgeFromNSString 3274 3260 -0.4% 1.00x (?)
ObjectiveCBridgeFromNSStringForced 2748 2739 -0.3% 1.00x (?)
ObjectiveCBridgeStubDataAppend 4583 4425 -3.4% 1.04x
ObjectiveCBridgeStubDateMutation 630 601 -4.6% 1.05x
ObjectiveCBridgeStubFromArrayOfNSString 26343 25456 -3.4% 1.03x (?)
ObjectiveCBridgeStubFromNSDate 4768 4907 +2.9% 0.97x (?)
ObjectiveCBridgeStubFromNSString 884 872 -1.4% 1.01x (?)
ObjectiveCBridgeStubFromNSStringRef 196 196 +0.0% 1.00x
ObjectiveCBridgeStubNSDataAppend 2927 3070 +4.9% 0.95x
ObjectiveCBridgeStubNSDateMutationRef 16444 15938 -3.1% 1.03x (?)
ObjectiveCBridgeStubToNSDate 15927 16033 +0.7% 0.99x (?)
ObjectiveCBridgeStubToNSDateRef 3482 3494 +0.3% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 153 159 +3.9% 0.96x
ObserverClosure 6400 6325 -1.2% 1.01x (?)
ObserverForwarderStruct 4361 4370 +0.2% 1.00x (?)
ObserverPartiallyAppliedMethod 7843 7828 -0.2% 1.00x
ObserverUnappliedMethod 7986 8042 +0.7% 0.99x
PartialApplyDynamicType 41199 41238 +0.1% 1.00x
PointerArithmetics 117534 114620 -2.5% 1.03x
PolymorphicCalls 6295 6376 +1.3% 0.99x (?)
PopFrontArray 4631 4613 -0.4% 1.00x (?)
PopFrontArrayGeneric 5738 5757 +0.3% 1.00x
PrefixAnySequenceLazy 8936 9158 +2.5% 0.98x
PrefixArray 3723 3757 +0.9% 0.99x
PrefixArrayLazy 25550 24972 -2.3% 1.02x (?)
PrefixCountableRange 325 326 +0.3% 1.00x (?)
PrefixCountableRangeLazy 26626 26542 -0.3% 1.00x (?)
PrefixSequence 8705 8893 +2.2% 0.98x
PrefixSequenceLazy 8797 8883 +1.0% 0.99x
PrefixWhileAnySeqCRangeIter 32952 34309 +4.1% 0.96x (?)
PrefixWhileAnySequence 25893 26103 +0.8% 0.99x
PrefixWhileAnySequenceLazy 9080 9257 +1.9% 0.98x
PrefixWhileArrayLazy 12450 11893 -4.5% 1.05x
PrefixWhileSequence 25624 25818 +0.8% 0.99x
PrefixWhileSequenceLazy 8971 9134 +1.8% 0.98x
Prims 9636 9807 +1.8% 0.98x (?)
PrimsSplit 9591 9781 +2.0% 0.98x (?)
QueueConcrete 15032 14971 -0.4% 1.00x
QueueGeneric 18924 19015 +0.5% 1.00x
RC4 16672 16643 -0.2% 1.00x (?)
RGBHistogram 25832 25668 -0.6% 1.01x (?)
RGBHistogramOfObjects 100390 97015 -3.4% 1.03x (?)
RangeAssignment 2243 2229 -0.6% 1.01x (?)
RangeIterationSigned 16536 16515 -0.1% 1.00x (?)
RemoveWhereFilterInts 2094 2039 -2.6% 1.03x
RemoveWhereFilterString 1455 1471 +1.1% 0.99x
RemoveWhereFilterStrings 2896 2856 -1.4% 1.01x
RemoveWhereMoveInts 3330 3331 +0.0% 1.00x (?)
RemoveWhereMoveStrings 4041 4032 -0.2% 1.00x
RemoveWhereQuadraticInts 7622 7922 +3.9% 0.96x
RemoveWhereQuadraticString 2298 2277 -0.9% 1.01x
RemoveWhereQuadraticStrings 9300 9618 +3.4% 0.97x
RemoveWhereSwapInts 5996 5987 -0.2% 1.00x
RemoveWhereSwapStrings 6686 6687 +0.0% 1.00x (?)
ReversedArray 13198 13312 +0.9% 0.99x
ReversedBidirectional 42435 41606 -2.0% 1.02x (?)
ReversedDictionary 22928 23083 +0.7% 0.99x
RomanNumbers 1213586 1206065 -0.6% 1.01x (?)
SequenceAlgosArray 772827 772685 -0.0% 1.00x (?)
SequenceAlgosContiguousArray 330041 317619 -3.8% 1.04x
SequenceAlgosList 8163 8033 -1.6% 1.02x
SequenceAlgosUnfoldSequence 5597 5571 -0.5% 1.00x
SetExclusiveOr 17480 17444 -0.2% 1.00x (?)
SetExclusiveOr_OfObjects 42290 41924 -0.9% 1.01x (?)
SetIntersect 8598 8210 -4.5% 1.05x
SetIntersect_OfObjects 12183 12173 -0.1% 1.00x (?)
SetIsSubsetOf_OfObjects 1563 1553 -0.6% 1.01x
SetUnion 11973 11962 -0.1% 1.00x (?)
SetUnion_OfObjects 29469 29339 -0.4% 1.00x (?)
Sim2DArray 43678 43622 -0.1% 1.00x (?)
SortLargeExistentials 15617 16164 +3.5% 0.97x
StackPromo 90961 94892 +4.3% 0.96x (?)
StaticArray 2705 2613 -3.4% 1.04x (?)
StringComparison_abnormal 1356 1344 -0.9% 1.01x (?)
StringComparison_ascii 9517 9609 +1.0% 0.99x
StringComparison_emoji 2083 2114 +1.5% 0.99x
StringComparison_fastPrenormal 5201 5351 +2.9% 0.97x
StringComparison_latin1 4048 4188 +3.5% 0.97x
StringComparison_longSharedPrefix 2466 2534 +2.8% 0.97x
StringComparison_nonBMPSlowestPrenormal 3811 3909 +2.6% 0.97x (?)
StringComparison_slowerPrenormal 4282 4393 +2.6% 0.97x
StringComparison_zalgo 116334 116375 +0.0% 1.00x (?)
StringEqualPointerComparison 3614 3535 -2.2% 1.02x
StringFromLongWholeSubstringGeneric 203 200 -1.5% 1.01x
StringHasPrefixUnicode 29515 29190 -1.1% 1.01x
StringHasSuffixUnicode 86305 86246 -0.1% 1.00x (?)
StringWalk 12770 12703 -0.5% 1.01x (?)
SubstringComparable 2078 2080 +0.1% 1.00x (?)
SubstringEquatable 5986 6259 +4.6% 0.96x
SubstringFromLongStringGeneric 103 101 -1.9% 1.02x
SuffixAnyCollectionLazy 33750 34212 +1.4% 0.99x (?)
SuffixAnySequence 25025 25067 +0.2% 1.00x (?)
SuffixAnySequenceLazy 25182 25080 -0.4% 1.00x
SuffixCountableRange 111 112 +0.9% 0.99x
SuffixCountableRangeLazy 8893 8854 -0.4% 1.00x (?)
SuffixSequence 24952 25510 +2.2% 0.98x
SuffixSequenceLazy 25459 24958 -2.0% 1.02x (?)
SumUsingReduceInto 158203 157932 -0.2% 1.00x (?)
TwoSum 3956 3907 -1.2% 1.01x
TypeFlood 154 150 -2.6% 1.03x (?)
UTF8Decode 30042 29918 -0.4% 1.00x
Walsh 12044 12025 -0.2% 1.00x (?)
WordCountHistogramASCII 47307 47445 +0.3% 1.00x
WordCountHistogramUTF16 72738 73681 +1.3% 0.99x (?)
WordCountUniqueASCII 8030 8215 +2.3% 0.98x
WordSplitASCII 25126 26237 +4.4% 0.96x
XorLoop 23424 23389 -0.1% 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
Copy link
Member Author

milseman commented Feb 25, 2018

@airspeedswift was replacing hasPrefix/hasSuffix anyways. We will in general want to figure out a 2-way visitation strategy here. In the mean time, it's easy to restore perf for those particular benchmarks as they are both small, though that's a little artificial.

@milseman
Copy link
Member Author

@swift-ci please smoke benchmark

@swift-ci
Copy link
Contributor

Build comment file:

Optimized (O)

Regression (64)
TEST OLD NEW DELTA SPEEDUP
StringHasSuffixAscii 1432 57724 +3931.0% 0.02x
StringHasPrefixAscii 1317 47258 +3488.3% 0.03x
OpenClose 126 341 +170.6% 0.37x
RemoveWhereQuadraticString 201 486 +141.8% 0.41x
StringFromLongWholeSubstringGeneric 10 21 +110.0% 0.48x
CSVParsingAltIndices 356071 723289 +103.1% 0.49x
Calculator 635 1215 +91.3% 0.52x
NSStringConversion 292 550 +88.4% 0.53x
StringWordBuilderReservingCapacity 1300 2304 +77.2% 0.56x
SubstringEqualString 536 866 +61.6% 0.62x
StrToInt 2072 3318 +60.1% 0.62x
ObjectiveCBridgeStubToNSString 1518 2378 +56.7% 0.64x
StringMatch 8247 12525 +51.9% 0.66x
StringWordBuilder 1750 2652 +51.5% 0.66x
MapReduceShortString 22 31 +40.9% 0.71x
RomanNumbers 112972 157971 +39.8% 0.72x
ObjectiveCBridgeStubToArrayOfNSString 28625 39888 +39.3% 0.72x
ErrorHandling 2295 3162 +37.8% 0.73x
StringEdits 119816 163359 +36.3% 0.73x
StringBuilder 1355 1845 +36.2% 0.73x
Phonebook 3769 5069 +34.5% 0.74x
StringEnumRawValueInitialization 952 1229 +29.1% 0.77x
Dictionary3 236 304 +28.8% 0.78x
SortStrings 1803 2322 +28.8% 0.78x
StringComparison_latin1 545 699 +28.3% 0.78x
Dictionary 501 638 +27.3% 0.79x
RemoveWhereFilterString 306 382 +24.8% 0.80x
EqualStringSubstring 49 61 +24.5% 0.80x
EqualSubstringString 49 61 +24.5% 0.80x
Join 371 458 +23.5% 0.81x
SortSortedStrings 1011 1246 +23.2% 0.81x
StringComparison_fastPrenormal 712 874 +22.8% 0.81x
StaticArray 5 6 +20.0% 0.83x
StringBuilderLong 1048 1226 +17.0% 0.85x (?)
ArrayAppendUTF16 36405 42585 +17.0% 0.85x
RemoveWhereSwapInts 19 22 +15.8% 0.86x
StringUTF16Builder 2385 2759 +15.7% 0.86x
HashTest 1776 2047 +15.3% 0.87x
WordCountUniqueASCII 1830 2093 +14.4% 0.87x
StrComplexWalk 1560 1783 +14.3% 0.87x
Hanoi 3314 3772 +13.8% 0.88x
SortStringsUnicode 2507 2830 +12.9% 0.89x
StringAdder 4190 4677 +11.6% 0.90x
ArrayAppendAscii 13106 14454 +10.3% 0.91x
Dictionary3OfObjects 678 747 +10.2% 0.91x (?)
SortLargeExistentials 6691 7369 +10.1% 0.91x
SubstringFromLongString 10 11 +10.0% 0.91x
ArrayAppendLatin1 37819 41575 +9.9% 0.91x
ObjectiveCBridgeFromNSSetAnyObjectToString 68412 74688 +9.2% 0.92x (?)
StringRemoveDupes 1194 1303 +9.1% 0.92x (?)
SuffixCountableRangeLazy 11 12 +9.1% 0.92x
DropLastSequenceLazy 634 689 +8.7% 0.92x
WordCountUniqueUTF16 15866 17229 +8.6% 0.92x (?)
DropLastSequence 637 687 +7.8% 0.93x
RangeReplaceableCollectionPlusDefault 985 1058 +7.4% 0.93x
WordCountHistogramUTF16 24727 26514 +7.2% 0.93x
DictionaryOfObjects 2180 2337 +7.2% 0.93x
ObjectiveCBridgeStubFromArrayOfNSString 26378 28264 +7.1% 0.93x (?)
DictionaryRemove 2781 2978 +7.1% 0.93x
FrequenciesUsingReduceInto 3161 3374 +6.7% 0.94x
SortLettersInPlace 1123 1196 +6.5% 0.94x
StringComparison_ascii 981 1039 +5.9% 0.94x
StringComparison_longSharedPrefix 897 947 +5.6% 0.95x
CStringLongNonAscii 2137 2253 +5.4% 0.95x
Improvement (22)
TEST OLD NEW DELTA SPEEDUP
ObjectiveCBridgeToNSSet 42889 16025 -62.6% 2.68x
ObjectiveCBridgeToNSString 1297 503 -61.2% 2.58x
ObjectiveCBridgeToNSDictionary 53143 25942 -51.2% 2.05x
ObjectiveCBridgeToNSArray 29372 14945 -49.1% 1.97x
NSError 304 174 -42.8% 1.75x
SevenBoom 1531 885 -42.2% 1.73x
DictionaryBridge 2029 1228 -39.5% 1.65x
PrefixWhileCountableRange 53 35 -34.0% 1.51x
StringInterpolation 10717 7825 -27.0% 1.37x
ObjectiveCBridgeStubURLAppendPath 342709 257769 -24.8% 1.33x
ObjectiveCBridgeStubURLAppendPathRef 333325 261783 -21.5% 1.27x
AngryPhonebook 3651 2902 -20.5% 1.26x
RangeIterationSigned 200 171 -14.5% 1.17x
ReversedBidirectional 17284 15651 -9.4% 1.10x
StringEqualPointerComparison 315 286 -9.2% 1.10x
SuffixCountableRange 12 11 -8.3% 1.09x
ObjectiveCBridgeStubNSDateMutationRef 13931 12973 -6.9% 1.07x
NopDeinit 23087 21583 -6.5% 1.07x
MapReduceLazyCollectionShort 36 34 -5.6% 1.06x
NibbleSort 4177 3960 -5.2% 1.05x
CharIteration_utf16_unicodeScalars_Backwards 17285 16404 -5.1% 1.05x
ObjectiveCBridgeFromNSArrayAnyObjectForced 4284 4073 -4.9% 1.05x (?)
No Changes (292)
TEST OLD NEW DELTA SPEEDUP
AnyHashableWithAClass 71574 71580 +0.0% 1.00x (?)
Array2D 2564 2562 -0.1% 1.00x
ArrayAppend 1019 1022 +0.3% 1.00x (?)
ArrayAppendArrayOfInt 801 800 -0.1% 1.00x (?)
ArrayAppendFromGeneric 804 802 -0.2% 1.00x (?)
ArrayAppendGenericStructs 1439 1433 -0.4% 1.00x
ArrayAppendLazyMap 1345 1349 +0.3% 1.00x (?)
ArrayAppendOptionals 1431 1432 +0.1% 1.00x
ArrayAppendRepeatCol 1340 1340 +0.0% 1.00x
ArrayAppendReserved 756 757 +0.1% 1.00x (?)
ArrayAppendSequence 1134 1135 +0.1% 1.00x (?)
ArrayAppendStrings 15269 15310 +0.3% 1.00x (?)
ArrayAppendToFromGeneric 800 800 +0.0% 1.00x
ArrayAppendToGeneric 801 799 -0.2% 1.00x (?)
ArrayInClass 85 85 +0.0% 1.00x
ArrayLiteral 0 0 +0.0% 1.00x
ArrayOfGenericPOD2 151 151 +0.0% 1.00x
ArrayOfGenericRef 4381 4371 -0.2% 1.00x (?)
ArrayOfPOD 184 184 +0.0% 1.00x
ArrayOfRef 4388 4373 -0.3% 1.00x
ArrayPlusEqualArrayOfInt 799 800 +0.1% 1.00x
ArrayPlusEqualFiveElementCollection 5535 5496 -0.7% 1.01x
ArrayPlusEqualSingleElementCollection 1021 1024 +0.3% 1.00x (?)
ArrayPlusEqualThreeElements 1677 1659 -1.1% 1.01x (?)
ArraySubscript 1524 1529 +0.3% 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
BinaryFloatingPointConversionFromBinaryInteger 38 38 +0.0% 1.00x
BitCount 202 211 +4.5% 0.96x
ByteSwap 99 98 -1.0% 1.01x (?)
COWTree 5567 5616 +0.9% 0.99x (?)
CSVParsing 759943 745851 -1.9% 1.02x
CSVParsingAlt 719664 734648 +2.1% 0.98x
CStringLongAscii 4776 4781 +0.1% 1.00x (?)
CStringShortAscii 4734 4837 +2.2% 0.98x
CaptureProp 3883 3916 +0.8% 0.99x
CharIndexing_ascii_unicodeScalars 15412 15926 +3.3% 0.97x
CharIndexing_ascii_unicodeScalars_Backwards 14494 14321 -1.2% 1.01x
CharIndexing_chinese_unicodeScalars 11669 12056 +3.3% 0.97x
CharIndexing_chinese_unicodeScalars_Backwards 10978 10849 -1.2% 1.01x
CharIndexing_japanese_unicodeScalars 18492 19094 +3.3% 0.97x
CharIndexing_japanese_unicodeScalars_Backwards 17352 17144 -1.2% 1.01x
CharIndexing_korean_unicodeScalars 14945 15466 +3.5% 0.97x
CharIndexing_korean_unicodeScalars_Backwards 14059 13897 -1.2% 1.01x
CharIndexing_punctuatedJapanese_unicodeScalars 2781 2868 +3.1% 0.97x
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 2634 2612 -0.8% 1.01x
CharIndexing_punctuated_unicodeScalars 3480 3590 +3.2% 0.97x
CharIndexing_punctuated_unicodeScalars_Backwards 3291 3261 -0.9% 1.01x
CharIndexing_russian_unicodeScalars 12839 13280 +3.4% 0.97x
CharIndexing_russian_unicodeScalars_Backwards 12077 11928 -1.2% 1.01x
CharIndexing_tweet_unicodeScalars 30303 31120 +2.7% 0.97x
CharIndexing_tweet_unicodeScalars_Backwards 28267 28220 -0.2% 1.00x
CharIndexing_utf16_unicodeScalars 20400 20692 +1.4% 0.99x
CharIndexing_utf16_unicodeScalars_Backwards 21100 21138 +0.2% 1.00x
CharIteration_ascii_unicodeScalars 20785 20570 -1.0% 1.01x
CharIteration_ascii_unicodeScalars_Backwards 13527 13530 +0.0% 1.00x (?)
CharIteration_chinese_unicodeScalars 15725 15577 -0.9% 1.01x
CharIteration_chinese_unicodeScalars_Backwards 10246 10249 +0.0% 1.00x (?)
CharIteration_japanese_unicodeScalars 24894 24624 -1.1% 1.01x
CharIteration_japanese_unicodeScalars_Backwards 16176 16194 +0.1% 1.00x
CharIteration_korean_unicodeScalars 20173 19946 -1.1% 1.01x
CharIteration_korean_unicodeScalars_Backwards 13116 13129 +0.1% 1.00x
CharIteration_punctuatedJapanese_unicodeScalars 3730 3704 -0.7% 1.01x (?)
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 2468 2474 +0.2% 1.00x
CharIteration_punctuated_unicodeScalars 4683 4630 -1.1% 1.01x
CharIteration_punctuated_unicodeScalars_Backwards 3082 3088 +0.2% 1.00x (?)
CharIteration_russian_unicodeScalars 17347 17127 -1.3% 1.01x
CharIteration_russian_unicodeScalars_Backwards 11266 11279 +0.1% 1.00x
CharIteration_tweet_unicodeScalars 41215 40586 -1.5% 1.02x
CharIteration_tweet_unicodeScalars_Backwards 26716 26695 -0.1% 1.00x (?)
CharIteration_utf16_unicodeScalars 27239 27335 +0.4% 1.00x
CharacterLiteralsLarge 6047 5999 -0.8% 1.01x
CharacterLiteralsSmall 411 414 +0.7% 0.99x
CharacterPropertiesFetch 4704 4599 -2.2% 1.02x (?)
CharacterPropertiesPrecomputed 977 994 +1.7% 0.98x
CharacterPropertiesStashed 1550 1553 +0.2% 1.00x (?)
CharacterPropertiesStashedMemo 1536 1550 +0.9% 0.99x (?)
Chars 971 968 -0.3% 1.00x
ClassArrayGetter 15 15 +0.0% 1.00x
Combos 466 489 +4.9% 0.95x
DictOfArraysToArrayOfDicts 800 803 +0.4% 1.00x (?)
Dictionary2 1618 1691 +4.5% 0.96x
Dictionary2OfObjects 2997 3092 +3.2% 0.97x
Dictionary4 147 148 +0.7% 0.99x
Dictionary4OfObjects 202 203 +0.5% 1.00x
DictionaryGroup 133 134 +0.8% 0.99x (?)
DictionaryGroupOfObjects 1934 1922 -0.6% 1.01x (?)
DictionaryLiteral 1634 1617 -1.0% 1.01x
DictionaryRemoveOfObjects 23716 23763 +0.2% 1.00x (?)
DictionarySubscriptDefaultMutation 142 143 +0.7% 0.99x
DictionarySubscriptDefaultMutationArray 490 490 +0.0% 1.00x
DictionarySubscriptDefaultMutationArrayOfObjects 3831 3843 +0.3% 1.00x (?)
DictionarySubscriptDefaultMutationOfObjects 1389 1384 -0.4% 1.00x (?)
DictionarySwap 476 469 -1.5% 1.01x
DictionarySwapOfObjects 7419 7406 -0.2% 1.00x (?)
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollection 102 102 +0.0% 1.00x
DropFirstAnyCollectionLazy 67628 64683 -4.4% 1.05x (?)
DropFirstAnySeqCRangeIter 18375 18233 -0.8% 1.01x
DropFirstAnySeqCRangeIterLazy 18539 18189 -1.9% 1.02x
DropFirstAnySeqCntRange 94 94 +0.0% 1.00x
DropFirstAnySeqCntRangeLazy 94 94 +0.0% 1.00x
DropFirstAnySequence 4759 4726 -0.7% 1.01x (?)
DropFirstAnySequenceLazy 4759 4718 -0.9% 1.01x
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 2699 2700 +0.0% 1.00x (?)
DropFirstSequenceLazy 2788 2794 +0.2% 1.00x
DropLastAnyCollection 36 37 +2.8% 0.97x
DropLastAnyCollectionLazy 22334 22981 +2.9% 0.97x
DropLastAnySeqCRangeIter 3813 3854 +1.1% 0.99x
DropLastAnySeqCRangeIterLazy 3821 3878 +1.5% 0.99x
DropLastAnySeqCntRange 30 29 -3.3% 1.03x
DropLastAnySeqCntRangeLazy 30 30 +0.0% 1.00x
DropLastAnySequence 5194 5184 -0.2% 1.00x
DropLastAnySequenceLazy 5280 5273 -0.1% 1.00x
DropLastCountableRange 11 11 +0.0% 1.00x
DropLastCountableRangeLazy 11 11 +0.0% 1.00x
DropWhileAnyCollection 125 125 +0.0% 1.00x
DropWhileAnyCollectionLazy 166 167 +0.6% 0.99x
DropWhileAnySeqCRangeIter 15452 15062 -2.5% 1.03x (?)
DropWhileAnySeqCRangeIterLazy 166 166 +0.0% 1.00x
DropWhileAnySeqCntRange 117 118 +0.9% 0.99x
DropWhileAnySeqCntRangeLazy 166 167 +0.6% 0.99x
DropWhileAnySequence 5237 5174 -1.2% 1.01x (?)
DropWhileAnySequenceLazy 1857 1856 -0.1% 1.00x (?)
DropWhileArrayLazy 129 129 +0.0% 1.00x
DropWhileCountableRange 36 35 -2.8% 1.03x
DropWhileCountableRangeLazy 111 111 +0.0% 1.00x
DropWhileSequence 1344 1344 +0.0% 1.00x
DropWhileSequenceLazy 88 88 +0.0% 1.00x
EqualSubstringSubstring 48 50 +4.2% 0.96x
EqualSubstringSubstringGenericEquatable 48 50 +4.2% 0.96x
ExclusivityGlobal 5 5 +0.0% 1.00x
ExclusivityIndependent 2 2 +0.0% 1.00x
FilterEvenUsingReduce 1315 1322 +0.5% 0.99x (?)
FilterEvenUsingReduceInto 148 148 +0.0% 1.00x
FrequenciesUsingReduce 6700 6863 +2.4% 0.98x
Histogram 330 321 -2.7% 1.03x
Integrate 345 341 -1.2% 1.01x
IterateData 1314 1314 +0.0% 1.00x
LazilyFilteredArrayContains 36284 37468 +3.3% 0.97x
LazilyFilteredArrays 65199 65272 +0.1% 1.00x (?)
LazilyFilteredRange 3844 3825 -0.5% 1.00x
LessSubstringSubstring 48 50 +4.2% 0.96x
LessSubstringSubstringGenericComparable 48 50 +4.2% 0.96x
LinkedList 7559 7609 +0.7% 0.99x (?)
LuhnAlgoEager 617 613 -0.6% 1.01x (?)
LuhnAlgoLazy 611 611 +0.0% 1.00x
MapReduce 398 399 +0.3% 1.00x
MapReduceAnyCollection 428 429 +0.2% 1.00x (?)
MapReduceAnyCollectionShort 2243 2255 +0.5% 0.99x
MapReduceClass 3023 3032 +0.3% 1.00x (?)
MapReduceClassShort 4602 4583 -0.4% 1.00x
MapReduceLazyCollection 13 13 +0.0% 1.00x
MapReduceLazySequence 86 86 +0.0% 1.00x
MapReduceSequence 455 446 -2.0% 1.02x
MapReduceShort 2032 2004 -1.4% 1.01x
MapReduceString 83 86 +3.6% 0.97x
Memset 220 216 -1.8% 1.02x (?)
MonteCarloE 10431 10397 -0.3% 1.00x
MonteCarloPi 42911 42901 -0.0% 1.00x (?)
NSDictionaryCastToSwift 5511 5484 -0.5% 1.00x (?)
ObjectAllocation 184 183 -0.5% 1.01x (?)
ObjectiveCBridgeFromNSArrayAnyObject 20783 20980 +0.9% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 38425 37634 -2.1% 1.02x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 35558 34746 -2.3% 1.02x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 125502 120826 -3.7% 1.04x
ObjectiveCBridgeFromNSSetAnyObject 61613 60779 -1.4% 1.01x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 4327 4550 +5.2% 0.95x (?)
ObjectiveCBridgeFromNSString 1298 1250 -3.7% 1.04x
ObjectiveCBridgeFromNSStringForced 2420 2419 -0.0% 1.00x (?)
ObjectiveCBridgeStubDataAppend 3907 4053 +3.7% 0.96x (?)
ObjectiveCBridgeStubDateMutation 257 258 +0.4% 1.00x
ObjectiveCBridgeStubFromNSDate 3997 3962 -0.9% 1.01x
ObjectiveCBridgeStubFromNSString 871 842 -3.3% 1.03x
ObjectiveCBridgeStubFromNSStringRef 159 161 +1.3% 0.99x
ObjectiveCBridgeStubNSDataAppend 2607 2590 -0.7% 1.01x (?)
ObjectiveCBridgeStubToNSDate 15699 16514 +5.2% 0.95x
ObjectiveCBridgeStubToNSDateRef 3468 3406 -1.8% 1.02x
ObjectiveCBridgeStubToNSStringRef 115 116 +0.9% 0.99x (?)
ObserverClosure 2156 2178 +1.0% 0.99x
ObserverForwarderStruct 999 999 +0.0% 1.00x
ObserverPartiallyAppliedMethod 3729 3753 +0.6% 0.99x
ObserverUnappliedMethod 2370 2363 -0.3% 1.00x (?)
PartialApplyDynamicType 0 0 +0.0% 1.00x
PointerArithmetics 34382 34373 -0.0% 1.00x (?)
PolymorphicCalls 25 25 +0.0% 1.00x
PopFrontArray 1968 1967 -0.1% 1.00x (?)
PopFrontArrayGeneric 1969 1965 -0.2% 1.00x (?)
PopFrontUnsafePointer 9534 9431 -1.1% 1.01x (?)
PrefixAnyCollection 102 103 +1.0% 0.99x
PrefixAnyCollectionLazy 67268 67145 -0.2% 1.00x (?)
PrefixAnySeqCRangeIter 14369 14241 -0.9% 1.01x (?)
PrefixAnySeqCRangeIterLazy 14401 14242 -1.1% 1.01x
PrefixAnySeqCntRange 94 94 +0.0% 1.00x
PrefixAnySeqCntRangeLazy 94 93 -1.1% 1.01x (?)
PrefixAnySequence 4191 4192 +0.0% 1.00x (?)
PrefixAnySequenceLazy 4194 4192 -0.0% 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 1325 1325 +0.0% 1.00x
PrefixSequenceLazy 1412 1414 +0.1% 1.00x (?)
PrefixWhileAnyCollection 172 172 +0.0% 1.00x
PrefixWhileAnyCollectionLazy 108 108 +0.0% 1.00x
PrefixWhileAnySeqCRangeIter 9414 9544 +1.4% 0.99x
PrefixWhileAnySeqCRangeIterLazy 90 90 +0.0% 1.00x
PrefixWhileAnySeqCntRange 165 164 -0.6% 1.01x
PrefixWhileAnySeqCntRangeLazy 108 108 +0.0% 1.00x
PrefixWhileAnySequence 10842 10706 -1.3% 1.01x
PrefixWhileAnySequenceLazy 1393 1393 +0.0% 1.00x
PrefixWhileArray 88 88 +0.0% 1.00x
PrefixWhileArrayLazy 70 70 +0.0% 1.00x
PrefixWhileCountableRangeLazy 35 35 +0.0% 1.00x
PrefixWhileSequence 382 379 -0.8% 1.01x
PrefixWhileSequenceLazy 52 52 +0.0% 1.00x
Prims 760 747 -1.7% 1.02x
PrimsSplit 758 758 +0.0% 1.00x
QueueConcrete 1311 1309 -0.2% 1.00x (?)
QueueGeneric 1160 1158 -0.2% 1.00x
RC4 171 168 -1.8% 1.02x
RGBHistogram 2198 2239 +1.9% 0.98x (?)
RGBHistogramOfObjects 23615 23671 +0.2% 1.00x (?)
RangeAssignment 350 351 +0.3% 1.00x (?)
RangeIterationSigned64 200 200 +0.0% 1.00x
RangeIterationUnsigned 200 200 +0.0% 1.00x
RecursiveOwnedParameter 2325 2347 +0.9% 0.99x
RemoveWhereFilterInts 43 43 +0.0% 1.00x
RemoveWhereFilterStrings 432 432 +0.0% 1.00x
RemoveWhereMoveInts 17 17 +0.0% 1.00x
RemoveWhereMoveStrings 520 520 +0.0% 1.00x
RemoveWhereQuadraticInts 1290 1293 +0.2% 1.00x
RemoveWhereQuadraticStrings 2756 2760 +0.1% 1.00x (?)
RemoveWhereSwapStrings 850 852 +0.2% 1.00x
ReversedArray 57 57 +0.0% 1.00x
ReversedDictionary 134 135 +0.7% 0.99x (?)
SequenceAlgosAnySequence 10392 10218 -1.7% 1.02x (?)
SequenceAlgosArray 1579 1579 +0.0% 1.00x
SequenceAlgosContiguousArray 1579 1580 +0.1% 1.00x (?)
SequenceAlgosList 1354 1354 +0.0% 1.00x
SequenceAlgosRange 4295 4296 +0.0% 1.00x (?)
SequenceAlgosUnfoldSequence 1081 1080 -0.1% 1.00x
SetExclusiveOr 3413 3416 +0.1% 1.00x (?)
SetExclusiveOr_OfObjects 8917 8934 +0.2% 1.00x (?)
SetIntersect 321 319 -0.6% 1.01x
SetIntersect_OfObjects 1762 1765 +0.2% 1.00x (?)
SetIsSubsetOf 298 299 +0.3% 1.00x
SetIsSubsetOf_OfObjects 363 363 +0.0% 1.00x
SetUnion 3121 3099 -0.7% 1.01x
SetUnion_OfObjects 7309 7315 +0.1% 1.00x (?)
Sim2DArray 600 604 +0.7% 0.99x
StackPromo 22197 22384 +0.8% 0.99x
StringComparison_abnormal 742 760 +2.4% 0.98x
StringComparison_emoji 808 844 +4.5% 0.96x
StringComparison_nonBMPSlowestPrenormal 1602 1650 +3.0% 0.97x
StringComparison_slowerPrenormal 1690 1752 +3.7% 0.96x
StringComparison_zalgo 113721 114759 +0.9% 0.99x
StringFromLongWholeSubstring 21 20 -4.8% 1.05x
StringHasPrefixUnicode 27875 27826 -0.2% 1.00x (?)
StringHasSuffixUnicode 85229 85213 -0.0% 1.00x (?)
StringWalk 1488 1434 -3.6% 1.04x
StringWithCString 43018 43007 -0.0% 1.00x (?)
SubstringComparable 41 43 +4.9% 0.95x
SubstringEquatable 1372 1415 +3.1% 0.97x
SubstringFromLongStringGeneric 69 69 +0.0% 1.00x
SuffixAnyCollection 43 43 +0.0% 1.00x
SuffixAnyCollectionLazy 22887 22170 -3.1% 1.03x (?)
SuffixAnySeqCRangeIter 4015 4050 +0.9% 0.99x
SuffixAnySeqCRangeIterLazy 4014 4057 +1.1% 0.99x
SuffixAnySeqCntRange 35 35 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 35 36 +2.9% 0.97x
SuffixAnySequence 5171 5163 -0.2% 1.00x (?)
SuffixAnySequenceLazy 5282 5228 -1.0% 1.01x
SuffixSequence 3966 3922 -1.1% 1.01x
SuffixSequenceLazy 3943 3916 -0.7% 1.01x
SumUsingReduce 97 102 +5.2% 0.95x
SumUsingReduceInto 97 97 +0.0% 1.00x
SuperChars 41700 42553 +2.0% 0.98x (?)
TwoSum 999 999 +0.0% 1.00x
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode 317 315 -0.6% 1.01x
Walsh 428 421 -1.6% 1.02x
WordCountHistogramASCII 7389 7758 +5.0% 0.95x
WordSplitASCII 21733 21963 +1.1% 0.99x (?)
WordSplitUTF16 23486 24008 +2.2% 0.98x (?)
XorLoop 394 395 +0.3% 1.00x (?)

Unoptimized (Onone)

Regression (71)
TEST OLD NEW DELTA SPEEDUP
StringHasSuffixAscii 3096 58792 +1799.0% 0.05x
StringHasPrefixAscii 2985 48398 +1521.4% 0.06x
StringEnumRawValueInitialization 17966 34795 +93.7% 0.52x
Calculator 1437 2666 +85.5% 0.54x
OpenClose 535 986 +84.3% 0.54x
NSStringConversion 335 616 +83.9% 0.54x
StrToInt 57267 90142 +57.4% 0.64x
ObjectiveCBridgeStubToNSString 1592 2454 +54.1% 0.65x
RangeReplaceableCollectionPlusDefault 7957 12253 +54.0% 0.65x
ObjectiveCBridgeStubToArrayOfNSString 28951 40707 +40.6% 0.71x
MapReduceLazySequence 17579 24693 +40.5% 0.71x
PrefixSequence 8981 12553 +39.8% 0.72x
LuhnAlgoEager 4710 6103 +29.6% 0.77x
StringEdits 312100 404080 +29.5% 0.77x
SortStrings 2028 2561 +26.3% 0.79x
SortSortedStrings 1034 1297 +25.4% 0.80x
MapReduceLazyCollection 22789 28566 +25.3% 0.80x
LuhnAlgoLazy 4872 6031 +23.8% 0.81x
CStringLongAscii 4598 5606 +21.9% 0.82x
MapReduceLazyCollectionShort 33334 40431 +21.3% 0.82x
StringWithCString 37588 45260 +20.4% 0.83x
CaptureProp 251394 298480 +18.7% 0.84x
Histogram 6641 7853 +18.3% 0.85x
RangeIterationSigned64 39039 45513 +16.6% 0.86x
CharIteration_punctuated_unicodeScalars_Backwards 65276 75599 +15.8% 0.86x
CharIteration_russian_unicodeScalars_Backwards 249541 285010 +14.2% 0.88x
CharIteration_japanese_unicodeScalars_Backwards 355018 404223 +13.9% 0.88x
DictionaryRemoveOfObjects 50972 57562 +12.9% 0.89x (?)
SuffixAnySeqCRangeIter 34479 38838 +12.6% 0.89x
ObjectiveCBridgeFromNSSetAnyObjectToString 72736 81903 +12.6% 0.89x (?)
DropFirstArray 3871 4349 +12.3% 0.89x
ErrorHandling 7473 8393 +12.3% 0.89x
PrefixArray 3900 4347 +11.5% 0.90x
RGBHistogram 25902 28846 +11.4% 0.90x
StackPromo 92824 103017 +11.0% 0.90x
ClassArrayGetter 985 1090 +10.7% 0.90x
StringComparison_abnormal 1323 1461 +10.4% 0.91x
DictionaryGroup 4403 4853 +10.2% 0.91x
SortStringsUnicode 2787 3058 +9.7% 0.91x
SuffixAnySeqCRangeIterLazy 35503 38880 +9.5% 0.91x
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 51683 56444 +9.2% 0.92x
StrComplexWalk 6663 7275 +9.2% 0.92x
Phonebook 20127 21972 +9.2% 0.92x
MapReduceShortString 225 245 +8.9% 0.92x
SequenceAlgosRange 1072887 1166613 +8.7% 0.92x
StringAdder 4713 5110 +8.4% 0.92x
ArrayAppendUTF16 63451 68710 +8.3% 0.92x
FrequenciesUsingReduceInto 5308 5730 +8.0% 0.93x
SequenceAlgosAnySequence 11000 11869 +7.9% 0.93x
DropLastAnySeqCRangeIterLazy 40167 43306 +7.8% 0.93x
SuperChars 123753 133086 +7.5% 0.93x
Dictionary 2643 2841 +7.5% 0.93x
CStringLongNonAscii 2181 2341 +7.3% 0.93x
StringEqualPointerComparison 3322 3563 +7.3% 0.93x
PrefixWhileAnySeqCRangeIter 34994 37479 +7.1% 0.93x
IterateData 5825 6237 +7.1% 0.93x
StringUTF16Builder 7791 8311 +6.7% 0.94x
WordCountHistogramUTF16 68471 72948 +6.5% 0.94x
DropLastAnySeqCRangeIter 40248 42852 +6.5% 0.94x
StringWordBuilder 2519 2681 +6.4% 0.94x
StringBuilderLong 2728 2901 +6.3% 0.94x
LessSubstringSubstringGenericComparable 96 102 +6.2% 0.94x
SubstringEqualString 1918 2037 +6.2% 0.94x
EqualSubstringSubstringGenericEquatable 98 104 +6.1% 0.94x
ObjectiveCBridgeStubNSDateMutationRef 15195 16121 +6.1% 0.94x (?)
Dictionary3 1340 1421 +6.0% 0.94x
StringWordBuilderReservingCapacity 2190 2316 +5.8% 0.95x
StringRemoveDupes 1390 1468 +5.6% 0.95x
EqualSubstringSubstring 92 97 +5.4% 0.95x
ArrayAppendLatin1 63929 67356 +5.4% 0.95x
WordSplitUTF16 27073 28503 +5.3% 0.95x (?)
Improvement (35)
TEST OLD NEW DELTA SPEEDUP
ObjectiveCBridgeToNSSet 42882 16869 -60.7% 2.54x
ObjectiveCBridgeToNSString 1344 529 -60.6% 2.54x
ObjectiveCBridgeToNSDictionary 54086 26772 -50.5% 2.02x
ObjectiveCBridgeToNSArray 29504 15598 -47.1% 1.89x
StringFromLongWholeSubstring 22 12 -45.5% 1.83x
DictionaryBridge 2262 1456 -35.6% 1.55x
SevenBoom 1709 1129 -33.9% 1.51x
SubstringFromLongString 24 18 -25.0% 1.33x
ObjectiveCBridgeStubURLAppendPath 355249 266828 -24.9% 1.33x
ObjectiveCBridgeStubURLAppendPathRef 342151 261760 -23.5% 1.31x
AngryPhonebook 5198 4391 -15.5% 1.18x
ObjectiveCBridgeFromNSArrayAnyObjectForced 9732 8363 -14.1% 1.16x
RemoveWhereSwapStrings 7656 6692 -12.6% 1.14x
NSDictionaryCastToSwift 7658 6719 -12.3% 1.14x
NSError 705 621 -11.9% 1.14x (?)
ReversedBidirectional 47450 42403 -10.6% 1.12x
ArrayOfPOD 848 758 -10.6% 1.12x
CharIteration_chinese_unicodeScalars_Backwards 253491 226614 -10.6% 1.12x (?)
DropWhileArrayLazy 15432 13817 -10.5% 1.12x
RemoveWhereMoveStrings 4497 4035 -10.3% 1.11x
QueueConcrete 16542 14982 -9.4% 1.10x
CSVParsingAltIndices 2438085 2215551 -9.1% 1.10x
ObjectiveCBridgeStubFromArrayOfNSString 31465 28722 -8.7% 1.10x (?)
QueueGeneric 20815 19018 -8.6% 1.09x
CharIndexing_chinese_unicodeScalars_Backwards 320483 295851 -7.7% 1.08x
Join 1213 1122 -7.5% 1.08x
CharIndexing_tweet_unicodeScalars_Backwards 842140 781843 -7.2% 1.08x
RemoveWhereFilterStrings 3095 2878 -7.0% 1.08x
DropLastSequenceLazy 31067 28972 -6.7% 1.07x (?)
ExclusivityGlobal 191 180 -5.8% 1.06x
ArrayLiteral 1904 1795 -5.7% 1.06x
PrefixAnySequence 9869 9313 -5.6% 1.06x (?)
PopFrontArrayGeneric 6065 5746 -5.3% 1.06x
CharIndexing_korean_unicodeScalars 365427 346673 -5.1% 1.05x
WordCountUniqueASCII 8688 8245 -5.1% 1.05x
No Changes (272)
TEST OLD NEW DELTA SPEEDUP
AnyHashableWithAClass 88119 87762 -0.4% 1.00x (?)
Array2D 632505 633087 +0.1% 1.00x (?)
ArrayAppend 4674 4785 +2.4% 0.98x
ArrayAppendArrayOfInt 867 862 -0.6% 1.01x (?)
ArrayAppendAscii 40603 40843 +0.6% 0.99x
ArrayAppendFromGeneric 874 877 +0.3% 1.00x
ArrayAppendGenericStructs 1505 1510 +0.3% 1.00x (?)
ArrayAppendLazyMap 169954 171437 +0.9% 0.99x
ArrayAppendOptionals 1505 1508 +0.2% 1.00x (?)
ArrayAppendRepeatCol 173734 179812 +3.5% 0.97x
ArrayAppendReserved 4410 4394 -0.4% 1.00x
ArrayAppendSequence 149282 145989 -2.2% 1.02x
ArrayAppendStrings 15378 15373 -0.0% 1.00x (?)
ArrayAppendToFromGeneric 876 855 -2.4% 1.02x (?)
ArrayAppendToGeneric 877 877 +0.0% 1.00x
ArrayInClass 6242 6262 +0.3% 1.00x
ArrayOfGenericPOD2 1130 1129 -0.1% 1.00x (?)
ArrayOfGenericRef 10236 10167 -0.7% 1.01x (?)
ArrayOfRef 9354 9351 -0.0% 1.00x (?)
ArrayPlusEqualArrayOfInt 866 870 +0.5% 1.00x (?)
ArrayPlusEqualFiveElementCollection 242415 235417 -2.9% 1.03x (?)
ArrayPlusEqualSingleElementCollection 239885 234277 -2.3% 1.02x (?)
ArrayPlusEqualThreeElements 9363 9237 -1.3% 1.01x (?)
ArraySubscript 114890 114780 -0.1% 1.00x (?)
ArrayValueProp 3674 3647 -0.7% 1.01x (?)
ArrayValueProp2 16399 17080 +4.2% 0.96x (?)
ArrayValueProp3 4149 4158 +0.2% 1.00x (?)
ArrayValueProp4 4122 4108 -0.3% 1.00x (?)
BinaryFloatingPointConversionFromBinaryInteger 6017 6245 +3.8% 0.96x
BitCount 7705 7670 -0.5% 1.00x (?)
ByteSwap 9125 9242 +1.3% 0.99x (?)
COWTree 11594 11938 +3.0% 0.97x
CSVParsing 2498731 2404136 -3.8% 1.04x (?)
CSVParsingAlt 1310183 1301678 -0.6% 1.01x (?)
CStringShortAscii 7582 7970 +5.1% 0.95x (?)
CharIndexing_ascii_unicodeScalars 361549 360259 -0.4% 1.00x (?)
CharIndexing_ascii_unicodeScalars_Backwards 393287 398136 +1.2% 0.99x (?)
CharIndexing_chinese_unicodeScalars 273188 271169 -0.7% 1.01x (?)
CharIndexing_japanese_unicodeScalars 435426 428497 -1.6% 1.02x (?)
CharIndexing_japanese_unicodeScalars_Backwards 471370 471595 +0.0% 1.00x (?)
CharIndexing_korean_unicodeScalars_Backwards 379678 379375 -0.1% 1.00x (?)
CharIndexing_punctuatedJapanese_unicodeScalars 64039 63178 -1.3% 1.01x (?)
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 68306 67909 -0.6% 1.01x (?)
CharIndexing_punctuated_unicodeScalars 81626 81180 -0.5% 1.01x (?)
CharIndexing_punctuated_unicodeScalars_Backwards 86046 86619 +0.7% 0.99x (?)
CharIndexing_russian_unicodeScalars 301341 297832 -1.2% 1.01x (?)
CharIndexing_russian_unicodeScalars_Backwards 324221 333802 +3.0% 0.97x (?)
CharIndexing_tweet_unicodeScalars 719260 706280 -1.8% 1.02x (?)
CharIndexing_utf16_unicodeScalars 315986 307510 -2.7% 1.03x
CharIndexing_utf16_unicodeScalars_Backwards 330248 333593 +1.0% 0.99x (?)
CharIteration_ascii_unicodeScalars 158056 155698 -1.5% 1.02x (?)
CharIteration_ascii_unicodeScalars_Backwards 299385 299645 +0.1% 1.00x (?)
CharIteration_chinese_unicodeScalars 119926 117591 -1.9% 1.02x
CharIteration_japanese_unicodeScalars 189356 186218 -1.7% 1.02x (?)
CharIteration_korean_unicodeScalars 153222 150916 -1.5% 1.02x
CharIteration_korean_unicodeScalars_Backwards 320756 328414 +2.4% 0.98x (?)
CharIteration_punctuatedJapanese_unicodeScalars 28495 27893 -2.1% 1.02x
CharIteration_punctuated_unicodeScalars 35552 35357 -0.5% 1.01x (?)
CharIteration_russian_unicodeScalars 131679 129874 -1.4% 1.01x (?)
CharIteration_tweet_unicodeScalars 312098 306789 -1.7% 1.02x
CharIteration_tweet_unicodeScalars_Backwards 587549 587473 -0.0% 1.00x (?)
CharIteration_utf16_unicodeScalars 130931 131654 +0.6% 0.99x (?)
CharIteration_utf16_unicodeScalars_Backwards 251523 254958 +1.4% 0.99x (?)
CharacterLiteralsLarge 5931 5752 -3.0% 1.03x (?)
CharacterLiteralsSmall 640 671 +4.8% 0.95x
CharacterPropertiesFetch 5558 5626 +1.2% 0.99x (?)
CharacterPropertiesPrecomputed 4526 4389 -3.0% 1.03x
CharacterPropertiesStashed 2307 2329 +1.0% 0.99x (?)
CharacterPropertiesStashedMemo 5116 5242 +2.5% 0.98x (?)
Chars 41048 40186 -2.1% 1.02x
Combos 2188 2237 +2.2% 0.98x (?)
DictOfArraysToArrayOfDicts 3453 3477 +0.7% 0.99x (?)
Dictionary2 3157 3318 +5.1% 0.95x
Dictionary2OfObjects 5936 5783 -2.6% 1.03x (?)
Dictionary3OfObjects 2321 2347 +1.1% 0.99x (?)
Dictionary4 1206 1214 +0.7% 0.99x (?)
Dictionary4OfObjects 1846 1836 -0.5% 1.01x (?)
DictionaryGroupOfObjects 7359 7506 +2.0% 0.98x (?)
DictionaryLiteral 8744 8681 -0.7% 1.01x (?)
DictionaryOfObjects 6295 6543 +3.9% 0.96x
DictionaryRemove 18589 18645 +0.3% 1.00x (?)
DictionarySubscriptDefaultMutation 2104 2101 -0.1% 1.00x (?)
DictionarySubscriptDefaultMutationArray 2381 2355 -1.1% 1.01x (?)
DictionarySubscriptDefaultMutationArrayOfObjects 9144 9405 +2.9% 0.97x
DictionarySubscriptDefaultMutationOfObjects 5663 5855 +3.4% 0.97x (?)
DictionarySwap 5361 5439 +1.5% 0.99x
DictionarySwapOfObjects 22357 22901 +2.4% 0.98x
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollection 13786 13754 -0.2% 1.00x (?)
DropFirstAnyCollectionLazy 101170 96450 -4.7% 1.05x (?)
DropFirstAnySeqCRangeIter 20576 20696 +0.6% 0.99x
DropFirstAnySeqCRangeIterLazy 20555 20635 +0.4% 1.00x (?)
DropFirstAnySeqCntRange 13763 13659 -0.8% 1.01x
DropFirstAnySeqCntRangeLazy 13872 13530 -2.5% 1.03x (?)
DropFirstAnySequence 11316 11149 -1.5% 1.01x (?)
DropFirstAnySequenceLazy 11089 11009 -0.7% 1.01x (?)
DropFirstArrayLazy 29236 29615 +1.3% 0.99x (?)
DropFirstCountableRange 323 325 +0.6% 0.99x
DropFirstCountableRangeLazy 26934 27132 +0.7% 0.99x
DropFirstSequence 11072 10753 -2.9% 1.03x
DropFirstSequenceLazy 10941 10746 -1.8% 1.02x (?)
DropLastAnyCollection 4632 4561 -1.5% 1.02x
DropLastAnyCollectionLazy 33634 33356 -0.8% 1.01x (?)
DropLastAnySeqCntRange 4617 4584 -0.7% 1.01x
DropLastAnySeqCntRangeLazy 4637 4537 -2.2% 1.02x
DropLastAnySequence 29208 29125 -0.3% 1.00x (?)
DropLastAnySequenceLazy 29351 28953 -1.4% 1.01x (?)
DropLastCountableRange 111 112 +0.9% 0.99x (?)
DropLastCountableRangeLazy 8953 9053 +1.1% 0.99x
DropLastSequence 29365 29003 -1.2% 1.01x (?)
DropWhileAnyCollection 17333 17127 -1.2% 1.01x (?)
DropWhileAnyCollectionLazy 19120 18923 -1.0% 1.01x (?)
DropWhileAnySeqCRangeIter 22359 22028 -1.5% 1.02x (?)
DropWhileAnySeqCRangeIterLazy 19111 18910 -1.1% 1.01x
DropWhileAnySeqCntRange 17356 17047 -1.8% 1.02x
DropWhileAnySeqCntRangeLazy 19300 18904 -2.1% 1.02x
DropWhileAnySequence 12699 12823 +1.0% 0.99x
DropWhileAnySequenceLazy 10463 10441 -0.2% 1.00x (?)
DropWhileCountableRange 4055 3923 -3.3% 1.03x
DropWhileCountableRangeLazy 18919 18679 -1.3% 1.01x (?)
DropWhileSequence 12637 12049 -4.7% 1.05x
DropWhileSequenceLazy 9968 9938 -0.3% 1.00x (?)
EqualStringSubstring 90 94 +4.4% 0.96x
EqualSubstringString 91 90 -1.1% 1.01x (?)
ExclusivityIndependent 71 71 +0.0% 1.00x
FilterEvenUsingReduce 3668 3613 -1.5% 1.02x (?)
FilterEvenUsingReduceInto 1938 1958 +1.0% 0.99x
FrequenciesUsingReduce 10530 10570 +0.4% 1.00x (?)
Hanoi 20119 20352 +1.2% 0.99x
HashTest 22084 22314 +1.0% 0.99x (?)
Integrate 831 832 +0.1% 1.00x (?)
LazilyFilteredArrayContains 789916 781346 -1.1% 1.01x
LazilyFilteredArrays 1463686 1466353 +0.2% 1.00x (?)
LazilyFilteredRange 468940 474214 +1.1% 0.99x
LessSubstringSubstring 93 97 +4.3% 0.96x
LinkedList 32120 32310 +0.6% 0.99x (?)
MapReduce 26371 25516 -3.2% 1.03x (?)
MapReduceAnyCollection 26360 25542 -3.1% 1.03x (?)
MapReduceAnyCollectionShort 36050 37028 +2.7% 0.97x (?)
MapReduceClass 30674 30022 -2.1% 1.02x
MapReduceClassShort 41341 42123 +1.9% 0.98x
MapReduceSequence 29387 29492 +0.4% 1.00x (?)
MapReduceShort 37208 37980 +2.1% 0.98x
MapReduceString 1797 1798 +0.1% 1.00x (?)
Memset 44730 44775 +0.1% 1.00x (?)
MonteCarloE 1232332 1225524 -0.6% 1.01x (?)
MonteCarloPi 5559793 5547369 -0.2% 1.00x
NibbleSort 413660 415707 +0.5% 1.00x (?)
NopDeinit 170853 165942 -2.9% 1.03x
ObjectAllocation 1392 1436 +3.2% 0.97x
ObjectiveCBridgeFromNSArrayAnyObject 23430 24033 +2.6% 0.97x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 41193 41628 +1.1% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 36139 34687 -4.0% 1.04x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 129140 127446 -1.3% 1.01x (?)
ObjectiveCBridgeFromNSSetAnyObject 65565 66213 +1.0% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 7635 7463 -2.3% 1.02x (?)
ObjectiveCBridgeFromNSString 3265 3114 -4.6% 1.05x
ObjectiveCBridgeFromNSStringForced 2788 2764 -0.9% 1.01x (?)
ObjectiveCBridgeStubDataAppend 4326 4523 +4.6% 0.96x
ObjectiveCBridgeStubDateMutation 630 601 -4.6% 1.05x
ObjectiveCBridgeStubFromNSDate 4820 4965 +3.0% 0.97x (?)
ObjectiveCBridgeStubFromNSString 900 869 -3.4% 1.04x
ObjectiveCBridgeStubFromNSStringRef 196 196 +0.0% 1.00x
ObjectiveCBridgeStubNSDataAppend 2946 3029 +2.8% 0.97x
ObjectiveCBridgeStubToNSDate 16030 15513 -3.2% 1.03x (?)
ObjectiveCBridgeStubToNSDateRef 3459 3456 -0.1% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 153 159 +3.9% 0.96x
ObserverClosure 6333 6331 -0.0% 1.00x (?)
ObserverForwarderStruct 4548 4596 +1.1% 0.99x
ObserverPartiallyAppliedMethod 7874 7885 +0.1% 1.00x (?)
ObserverUnappliedMethod 7991 8012 +0.3% 1.00x (?)
PartialApplyDynamicType 42444 41483 -2.3% 1.02x (?)
PointerArithmetics 117430 114621 -2.4% 1.02x
PolymorphicCalls 6407 6366 -0.6% 1.01x (?)
PopFrontArray 4562 4634 +1.6% 0.98x (?)
PopFrontUnsafePointer 11292 11394 +0.9% 0.99x
PrefixAnyCollection 13813 13640 -1.3% 1.01x (?)
PrefixAnyCollectionLazy 99183 98628 -0.6% 1.01x (?)
PrefixAnySeqCRangeIter 16632 16494 -0.8% 1.01x
PrefixAnySeqCRangeIterLazy 16573 16635 +0.4% 1.00x (?)
PrefixAnySeqCntRange 13747 13649 -0.7% 1.01x
PrefixAnySeqCntRangeLazy 13833 13568 -1.9% 1.02x
PrefixAnySequenceLazy 9243 9575 +3.6% 0.97x
PrefixArrayLazy 29411 29686 +0.9% 0.99x
PrefixCountableRange 326 325 -0.3% 1.00x
PrefixCountableRangeLazy 26858 27085 +0.8% 0.99x
PrefixSequenceLazy 9014 8952 -0.7% 1.01x (?)
PrefixWhileAnyCollection 24480 24313 -0.7% 1.01x
PrefixWhileAnyCollectionLazy 15887 15954 +0.4% 1.00x
PrefixWhileAnySeqCRangeIterLazy 15893 15890 -0.0% 1.00x (?)
PrefixWhileAnySeqCntRange 24524 24293 -0.9% 1.01x (?)
PrefixWhileAnySeqCntRangeLazy 16071 15938 -0.8% 1.01x (?)
PrefixWhileAnySequence 26771 26049 -2.7% 1.03x
PrefixWhileAnySequenceLazy 9467 9352 -1.2% 1.01x (?)
PrefixWhileArray 10680 11101 +3.9% 0.96x
PrefixWhileArrayLazy 12037 12021 -0.1% 1.00x (?)
PrefixWhileCountableRange 11156 11055 -0.9% 1.01x
PrefixWhileCountableRangeLazy 15720 15469 -1.6% 1.02x (?)
PrefixWhileSequence 26181 25894 -1.1% 1.01x (?)
PrefixWhileSequenceLazy 9179 9218 +0.4% 1.00x
Prims 9667 9829 +1.7% 0.98x (?)
PrimsSplit 9716 10021 +3.1% 0.97x
RC4 17171 16917 -1.5% 1.02x
RGBHistogramOfObjects 96466 98162 +1.8% 0.98x (?)
RangeAssignment 2204 2282 +3.5% 0.97x
RangeIterationSigned 16515 16626 +0.7% 0.99x (?)
RangeIterationUnsigned 34464 34627 +0.5% 1.00x (?)
RecursiveOwnedParameter 7985 8021 +0.5% 1.00x
RemoveWhereFilterInts 2055 2051 -0.2% 1.00x (?)
RemoveWhereFilterString 1474 1476 +0.1% 1.00x (?)
RemoveWhereMoveInts 3362 3340 -0.7% 1.01x
RemoveWhereQuadraticInts 7695 7724 +0.4% 1.00x
RemoveWhereQuadraticString 2309 2291 -0.8% 1.01x
RemoveWhereQuadraticStrings 9503 9320 -1.9% 1.02x
RemoveWhereSwapInts 5992 6002 +0.2% 1.00x
ReversedArray 13300 13279 -0.2% 1.00x
ReversedDictionary 23107 23028 -0.3% 1.00x (?)
RomanNumbers 1236579 1221806 -1.2% 1.01x (?)
SequenceAlgosArray 779117 780824 +0.2% 1.00x
SequenceAlgosContiguousArray 325188 325266 +0.0% 1.00x (?)
SequenceAlgosList 8302 8229 -0.9% 1.01x
SequenceAlgosUnfoldSequence 5645 5630 -0.3% 1.00x (?)
SetExclusiveOr 17548 17650 +0.6% 0.99x (?)
SetExclusiveOr_OfObjects 42308 42677 +0.9% 0.99x (?)
SetIntersect 8568 8486 -1.0% 1.01x
SetIntersect_OfObjects 12318 12564 +2.0% 0.98x (?)
SetIsSubsetOf 1382 1386 +0.3% 1.00x
SetIsSubsetOf_OfObjects 1600 1621 +1.3% 0.99x (?)
SetUnion 11965 12008 +0.4% 1.00x
SetUnion_OfObjects 29364 29525 +0.5% 0.99x (?)
Sim2DArray 43617 43642 +0.1% 1.00x (?)
SortLargeExistentials 15459 16077 +4.0% 0.96x
SortLettersInPlace 2710 2831 +4.5% 0.96x
StaticArray 2670 2636 -1.3% 1.01x
StringBuilder 7216 7290 +1.0% 0.99x (?)
StringComparison_ascii 9660 9779 +1.2% 0.99x
StringComparison_emoji 2087 2132 +2.2% 0.98x
StringComparison_fastPrenormal 5231 5412 +3.5% 0.97x
StringComparison_latin1 4102 4233 +3.2% 0.97x
StringComparison_longSharedPrefix 2497 2543 +1.8% 0.98x
StringComparison_nonBMPSlowestPrenormal 3832 3915 +2.2% 0.98x
StringComparison_slowerPrenormal 4310 4435 +2.9% 0.97x
StringComparison_zalgo 115693 117194 +1.3% 0.99x
StringFromLongWholeSubstringGeneric 200 200 +0.0% 1.00x
StringHasPrefixUnicode 29417 29114 -1.0% 1.01x (?)
StringHasSuffixUnicode 86498 86037 -0.5% 1.01x (?)
StringInterpolation 13083 13020 -0.5% 1.00x (?)
StringMatch 35225 36198 +2.8% 0.97x (?)
StringWalk 13207 12646 -4.2% 1.04x
SubstringComparable 2059 2069 +0.5% 1.00x (?)
SubstringEquatable 6008 6048 +0.7% 0.99x (?)
SubstringFromLongStringGeneric 104 101 -2.9% 1.03x
SuffixAnyCollection 4610 4556 -1.2% 1.01x
SuffixAnyCollectionLazy 32293 33527 +3.8% 0.96x (?)
SuffixAnySeqCntRange 4601 4556 -1.0% 1.01x
SuffixAnySeqCntRangeLazy 4634 4574 -1.3% 1.01x
SuffixAnySequence 25545 25541 -0.0% 1.00x (?)
SuffixAnySequenceLazy 25408 25241 -0.7% 1.01x (?)
SuffixCountableRange 112 112 +0.0% 1.00x
SuffixCountableRangeLazy 8965 9033 +0.8% 0.99x
SuffixSequence 25821 25531 -1.1% 1.01x (?)
SuffixSequenceLazy 25178 25171 -0.0% 1.00x (?)
SumUsingReduce 165048 164579 -0.3% 1.00x (?)
SumUsingReduceInto 159319 159961 +0.4% 1.00x
TwoSum 4047 3991 -1.4% 1.01x (?)
TypeFlood 157 157 +0.0% 1.00x
UTF8Decode 30668 30178 -1.6% 1.02x
Walsh 12002 12143 +1.2% 0.99x (?)
WordCountHistogramASCII 46923 48024 +2.3% 0.98x
WordCountUniqueUTF16 28190 28265 +0.3% 1.00x (?)
WordSplitASCII 26574 26102 -1.8% 1.02x (?)
XorLoop 23749 23400 -1.5% 1.01x
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
Copy link
Member Author

(added a few sources of dynamic small strings, but haven't done append/join/etc)

@swift-ci please smoke benchmark

@swift-ci
Copy link
Contributor

Build comment file:

Optimized (O)

Regression (60)
TEST OLD NEW DELTA SPEEDUP
StringHasSuffixAscii 1432 57718 +3930.6% 0.02x
StringHasPrefixAscii 1318 46907 +3459.0% 0.03x
OpenClose 126 319 +153.2% 0.39x
RemoveWhereQuadraticString 208 485 +133.2% 0.43x
StringFromLongWholeSubstringGeneric 10 21 +110.0% 0.48x
CSVParsingAltIndices 357723 722809 +102.1% 0.49x
NSStringConversion 293 553 +88.7% 0.53x
Calculator 636 1182 +85.8% 0.54x
StringWordBuilderReservingCapacity 1299 2262 +74.1% 0.57x
SubstringEqualString 534 863 +61.6% 0.62x
StrToInt 2073 3264 +57.5% 0.64x
ObjectiveCBridgeStubToNSString 1518 2384 +57.0% 0.64x
StringWordBuilder 1753 2601 +48.4% 0.67x
MapReduceShortString 21 31 +47.6% 0.68x
StringMatch 8262 11971 +44.9% 0.69x
StringEdits 119205 170555 +43.1% 0.70x
StringBuilderLong 1139 1621 +42.3% 0.70x (?)
ObjectiveCBridgeStubToArrayOfNSString 28690 40802 +42.2% 0.70x
ErrorHandling 2305 3278 +42.2% 0.70x
EqualStringSubstring 48 66 +37.5% 0.73x
EqualSubstringString 48 66 +37.5% 0.73x
RomanNumbers 112981 153834 +36.2% 0.73x
Phonebook 3775 5096 +35.0% 0.74x
StringBuilder 1369 1827 +33.5% 0.75x
StringEnumRawValueInitialization 960 1241 +29.3% 0.77x
Dictionary 506 646 +27.7% 0.78x
RemoveWhereFilterString 307 390 +27.0% 0.79x
SortStrings 1800 2250 +25.0% 0.80x
Dictionary3 237 289 +21.9% 0.82x
StringComparison_latin1 544 662 +21.7% 0.82x
SortSortedStrings 1010 1196 +18.4% 0.84x
ArrayAppendUTF16 36447 42763 +17.3% 0.85x
StringUTF16Builder 2377 2774 +16.7% 0.86x
StringComparison_fastPrenormal 712 830 +16.6% 0.86x
RemoveWhereSwapInts 19 22 +15.8% 0.86x
WordCountHistogramUTF16 22467 25978 +15.6% 0.86x
StrComplexWalk 1559 1781 +14.2% 0.88x
HashTest 1767 2014 +14.0% 0.88x
ArrayAppendLatin1 37761 42776 +13.3% 0.88x
StringAdder 4194 4667 +11.3% 0.90x
SortStringsUnicode 2509 2771 +10.4% 0.91x
WordCountUniqueASCII 1828 2018 +10.4% 0.91x
SubstringFromLongString 10 11 +10.0% 0.91x
StringComparison_abnormal 741 812 +9.6% 0.91x
StringRemoveDupes 1197 1308 +9.3% 0.92x
SortLargeExistentials 6693 7288 +8.9% 0.92x
RangeReplaceableCollectionPlusDefault 973 1059 +8.8% 0.92x
LessSubstringSubstring 47 51 +8.5% 0.92x
ArrayAppendAscii 13100 14208 +8.5% 0.92x
DropLastSequence 637 690 +8.3% 0.92x
DropLastSequenceLazy 639 692 +8.3% 0.92x
Dictionary3OfObjects 677 733 +8.3% 0.92x
FrequenciesUsingReduceInto 3125 3381 +8.2% 0.92x
ObjectiveCBridgeFromNSArrayAnyObjectForced 3999 4307 +7.7% 0.93x (?)
MapReduceLazyCollection 13 14 +7.7% 0.93x
DictionaryOfObjects 2184 2336 +7.0% 0.93x
EqualSubstringSubstring 48 51 +6.2% 0.94x
EqualSubstringSubstringGenericEquatable 48 51 +6.2% 0.94x
CStringLongNonAscii 2135 2261 +5.9% 0.94x
SortLettersInPlace 1123 1189 +5.9% 0.94x
Improvement (41)
TEST OLD NEW DELTA SPEEDUP
ObjectiveCBridgeToNSString 1294 490 -62.1% 2.64x
ArrayAppendStrings 15249 6169 -59.5% 2.47x
ObjectiveCBridgeToNSSet 43158 17557 -59.3% 2.46x
Dictionary2 1617 748 -53.7% 2.16x
ObjectiveCBridgeToNSDictionary 52847 25404 -51.9% 2.08x
ObjectiveCBridgeToNSArray 29130 15347 -47.3% 1.90x
NSError 305 172 -43.6% 1.77x
SevenBoom 1521 877 -42.3% 1.73x
DictionaryBridge 2055 1267 -38.3% 1.62x
PrefixWhileCountableRange 53 35 -34.0% 1.51x
Dictionary2OfObjects 2969 2070 -30.3% 1.43x
StringInterpolation 10705 7945 -25.8% 1.35x
ObjectiveCBridgeStubURLAppendPathRef 337236 256286 -24.0% 1.32x
AngryPhonebook 3662 2891 -21.1% 1.27x
SubstringComparable 48 40 -16.7% 1.20x
ObjectiveCBridgeStubURLAppendPath 327925 275769 -15.9% 1.19x
RangeIterationSigned 200 171 -14.5% 1.17x
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 38029 33987 -10.6% 1.12x (?)
ReversedBidirectional 17258 15615 -9.5% 1.11x
CharIteration_utf16_unicodeScalars_Backwards 17789 16306 -8.3% 1.09x
MapReduceLazyCollectionShort 37 34 -8.1% 1.09x
CharIndexing_japanese_unicodeScalars 18453 17080 -7.4% 1.08x
CharIndexing_chinese_unicodeScalars 11668 10803 -7.4% 1.08x
CharIndexing_ascii_unicodeScalars 15405 14267 -7.4% 1.08x
CharIndexing_russian_unicodeScalars 12842 11896 -7.4% 1.08x
CharIndexing_korean_unicodeScalars 14933 13836 -7.3% 1.08x
CharIndexing_tweet_unicodeScalars 30309 28109 -7.3% 1.08x
ObjectiveCBridgeStubFromArrayOfNSString 29349 27244 -7.2% 1.08x
CharIndexing_punctuated_unicodeScalars 3480 3253 -6.5% 1.07x
CharIndexing_punctuatedJapanese_unicodeScalars 2782 2605 -6.4% 1.07x
NopDeinit 23064 21598 -6.4% 1.07x
CharIteration_japanese_unicodeScalars_Backwards 16181 15196 -6.1% 1.06x
CharIteration_ascii_unicodeScalars_Backwards 13520 12708 -6.0% 1.06x
CharIteration_tweet_unicodeScalars_Backwards 26678 25080 -6.0% 1.06x
CharIteration_korean_unicodeScalars_Backwards 13100 12320 -6.0% 1.06x
CharIteration_russian_unicodeScalars_Backwards 11261 10596 -5.9% 1.06x
CharIteration_chinese_unicodeScalars_Backwards 10243 9640 -5.9% 1.06x
CharIteration_punctuated_unicodeScalars_Backwards 3080 2920 -5.2% 1.05x
WordCountUniqueUTF16 18280 17337 -5.2% 1.05x (?)
NibbleSort 4179 3964 -5.1% 1.05x
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 2466 2342 -5.0% 1.05x
No Changes (277)
TEST OLD NEW DELTA SPEEDUP
AnyHashableWithAClass 71518 73407 +2.6% 0.97x
Array2D 2571 2549 -0.9% 1.01x
ArrayAppend 1023 1019 -0.4% 1.00x
ArrayAppendArrayOfInt 803 798 -0.6% 1.01x (?)
ArrayAppendFromGeneric 801 801 +0.0% 1.00x
ArrayAppendGenericStructs 1433 1430 -0.2% 1.00x (?)
ArrayAppendLazyMap 1344 1336 -0.6% 1.01x (?)
ArrayAppendOptionals 1399 1428 +2.1% 0.98x (?)
ArrayAppendRepeatCol 1341 1340 -0.1% 1.00x (?)
ArrayAppendReserved 755 757 +0.3% 1.00x
ArrayAppendSequence 1137 1134 -0.3% 1.00x
ArrayAppendToFromGeneric 798 793 -0.6% 1.01x (?)
ArrayAppendToGeneric 801 799 -0.2% 1.00x (?)
ArrayInClass 86 86 +0.0% 1.00x
ArrayLiteral 0 0 +0.0% 1.00x
ArrayOfGenericPOD2 151 150 -0.7% 1.01x
ArrayOfGenericRef 4380 4386 +0.1% 1.00x (?)
ArrayOfPOD 183 183 +0.0% 1.00x
ArrayOfRef 4388 4379 -0.2% 1.00x
ArrayPlusEqualArrayOfInt 799 796 -0.4% 1.00x (?)
ArrayPlusEqualFiveElementCollection 5490 5536 +0.8% 0.99x
ArrayPlusEqualSingleElementCollection 1018 1023 +0.5% 1.00x (?)
ArrayPlusEqualThreeElements 1675 1662 -0.8% 1.01x (?)
ArraySubscript 1536 1551 +1.0% 0.99x (?)
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
BinaryFloatingPointConversionFromBinaryInteger 38 39 +2.6% 0.97x
BitCount 202 211 +4.5% 0.96x
ByteSwap 98 101 +3.1% 0.97x
COWTree 5499 5562 +1.1% 0.99x (?)
CSVParsing 760065 749181 -1.4% 1.01x
CSVParsingAlt 721398 721291 -0.0% 1.00x (?)
CStringLongAscii 4769 4778 +0.2% 1.00x (?)
CStringShortAscii 4716 4864 +3.1% 0.97x
CaptureProp 3876 3880 +0.1% 1.00x
CharIndexing_ascii_unicodeScalars_Backwards 14498 14493 -0.0% 1.00x (?)
CharIndexing_chinese_unicodeScalars_Backwards 10979 10973 -0.1% 1.00x (?)
CharIndexing_japanese_unicodeScalars_Backwards 17349 17333 -0.1% 1.00x (?)
CharIndexing_korean_unicodeScalars_Backwards 14060 14060 +0.0% 1.00x
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 2635 2634 -0.0% 1.00x (?)
CharIndexing_punctuated_unicodeScalars_Backwards 3295 3294 -0.0% 1.00x (?)
CharIndexing_russian_unicodeScalars_Backwards 12072 12069 -0.0% 1.00x (?)
CharIndexing_tweet_unicodeScalars_Backwards 28284 28626 +1.2% 0.99x
CharIndexing_utf16_unicodeScalars 20383 20114 -1.3% 1.01x
CharIndexing_utf16_unicodeScalars_Backwards 20972 21167 +0.9% 0.99x
CharIteration_ascii_unicodeScalars 20814 21785 +4.7% 0.96x
CharIteration_chinese_unicodeScalars 15738 16453 +4.5% 0.96x
CharIteration_japanese_unicodeScalars 24949 26161 +4.9% 0.95x
CharIteration_korean_unicodeScalars 20193 21147 +4.7% 0.95x
CharIteration_punctuatedJapanese_unicodeScalars 3728 3870 +3.8% 0.96x
CharIteration_punctuated_unicodeScalars 4681 4878 +4.2% 0.96x
CharIteration_russian_unicodeScalars 17336 18144 +4.7% 0.96x
CharIteration_tweet_unicodeScalars 41058 43195 +5.2% 0.95x
CharIteration_utf16_unicodeScalars 27248 27781 +2.0% 0.98x (?)
CharacterLiteralsLarge 6051 5789 -4.3% 1.05x
CharacterLiteralsSmall 414 410 -1.0% 1.01x (?)
CharacterPropertiesFetch 4606 4597 -0.2% 1.00x (?)
CharacterPropertiesPrecomputed 980 997 +1.7% 0.98x
CharacterPropertiesStashed 1554 1560 +0.4% 1.00x (?)
CharacterPropertiesStashedMemo 1548 1581 +2.1% 0.98x (?)
Chars 969 971 +0.2% 1.00x
ClassArrayGetter 15 15 +0.0% 1.00x
Combos 467 488 +4.5% 0.96x
DictOfArraysToArrayOfDicts 800 810 +1.2% 0.99x (?)
Dictionary4 147 147 +0.0% 1.00x
Dictionary4OfObjects 203 204 +0.5% 1.00x
DictionaryGroup 133 134 +0.8% 0.99x (?)
DictionaryGroupOfObjects 1942 1939 -0.2% 1.00x
DictionaryLiteral 1606 1603 -0.2% 1.00x (?)
DictionaryRemove 2745 2756 +0.4% 1.00x (?)
DictionaryRemoveOfObjects 23927 24030 +0.4% 1.00x (?)
DictionarySubscriptDefaultMutation 143 149 +4.2% 0.96x
DictionarySubscriptDefaultMutationArray 489 491 +0.4% 1.00x
DictionarySubscriptDefaultMutationArrayOfObjects 3832 3855 +0.6% 0.99x
DictionarySubscriptDefaultMutationOfObjects 1387 1385 -0.1% 1.00x (?)
DictionarySwap 467 484 +3.6% 0.96x
DictionarySwapOfObjects 7474 7407 -0.9% 1.01x (?)
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollection 102 102 +0.0% 1.00x
DropFirstAnyCollectionLazy 67250 65792 -2.2% 1.02x (?)
DropFirstAnySeqCRangeIter 18358 19062 +3.8% 0.96x
DropFirstAnySeqCRangeIterLazy 18332 19077 +4.1% 0.96x
DropFirstAnySeqCntRange 94 94 +0.0% 1.00x
DropFirstAnySeqCntRangeLazy 94 94 +0.0% 1.00x
DropFirstAnySequence 4676 4633 -0.9% 1.01x
DropFirstAnySequenceLazy 4700 4633 -1.4% 1.01x
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 2697 2700 +0.1% 1.00x (?)
DropFirstSequenceLazy 2788 2787 -0.0% 1.00x (?)
DropLastAnyCollection 37 37 +0.0% 1.00x
DropLastAnyCollectionLazy 22439 21796 -2.9% 1.03x (?)
DropLastAnySeqCRangeIter 3828 3802 -0.7% 1.01x
DropLastAnySeqCRangeIterLazy 3823 3810 -0.3% 1.00x
DropLastAnySeqCntRange 29 30 +3.4% 0.97x
DropLastAnySeqCntRangeLazy 30 29 -3.3% 1.03x
DropLastAnySequence 5167 5177 +0.2% 1.00x (?)
DropLastAnySequenceLazy 5264 5275 +0.2% 1.00x (?)
DropLastCountableRange 11 11 +0.0% 1.00x
DropLastCountableRangeLazy 11 11 +0.0% 1.00x
DropWhileAnyCollection 125 125 +0.0% 1.00x
DropWhileAnyCollectionLazy 166 166 +0.0% 1.00x
DropWhileAnySeqCRangeIter 15308 15587 +1.8% 0.98x
DropWhileAnySeqCRangeIterLazy 166 166 +0.0% 1.00x
DropWhileAnySeqCntRange 118 117 -0.8% 1.01x (?)
DropWhileAnySeqCntRangeLazy 166 166 +0.0% 1.00x
DropWhileAnySequence 5066 5057 -0.2% 1.00x (?)
DropWhileAnySequenceLazy 1858 1857 -0.1% 1.00x
DropWhileArrayLazy 129 129 +0.0% 1.00x
DropWhileCountableRange 36 35 -2.8% 1.03x
DropWhileCountableRangeLazy 111 111 +0.0% 1.00x
DropWhileSequence 1343 1344 +0.1% 1.00x (?)
DropWhileSequenceLazy 88 88 +0.0% 1.00x
ExclusivityGlobal 5 5 +0.0% 1.00x
ExclusivityIndependent 2 2 +0.0% 1.00x
FilterEvenUsingReduce 1320 1327 +0.5% 0.99x (?)
FilterEvenUsingReduceInto 149 148 -0.7% 1.01x (?)
FrequenciesUsingReduce 6670 6819 +2.2% 0.98x
Hanoi 3323 3332 +0.3% 1.00x (?)
Histogram 324 333 +2.8% 0.97x
Integrate 335 341 +1.8% 0.98x
IterateData 1267 1315 +3.8% 0.96x
Join 372 374 +0.5% 0.99x
LazilyFilteredArrayContains 36312 37497 +3.3% 0.97x
LazilyFilteredArrays 64893 67254 +3.6% 0.96x
LazilyFilteredRange 3843 3824 -0.5% 1.00x
LessSubstringSubstringGenericComparable 48 50 +4.2% 0.96x
LinkedList 7561 7591 +0.4% 1.00x
LuhnAlgoEager 613 618 +0.8% 0.99x
LuhnAlgoLazy 611 617 +1.0% 0.99x
MapReduce 398 398 +0.0% 1.00x
MapReduceAnyCollection 428 429 +0.2% 1.00x (?)
MapReduceAnyCollectionShort 2241 2264 +1.0% 0.99x
MapReduceClass 3022 3036 +0.5% 1.00x (?)
MapReduceClassShort 4597 4598 +0.0% 1.00x (?)
MapReduceLazySequence 86 86 +0.0% 1.00x
MapReduceSequence 460 451 -2.0% 1.02x (?)
MapReduceShort 2026 2042 +0.8% 0.99x
MapReduceString 83 86 +3.6% 0.97x
Memset 216 220 +1.9% 0.98x (?)
MonteCarloE 10396 10470 +0.7% 0.99x
MonteCarloPi 42902 42883 -0.0% 1.00x (?)
NSDictionaryCastToSwift 5522 5442 -1.4% 1.01x
ObjectAllocation 186 186 +0.0% 1.00x
ObjectiveCBridgeFromNSArrayAnyObject 20397 20522 +0.6% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 38187 37973 -0.6% 1.01x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 122302 123048 +0.6% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObject 61660 60710 -1.5% 1.02x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 4409 4242 -3.8% 1.04x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 70771 70771 +0.0% 1.00x
ObjectiveCBridgeFromNSString 1298 1296 -0.2% 1.00x (?)
ObjectiveCBridgeFromNSStringForced 2430 2427 -0.1% 1.00x (?)
ObjectiveCBridgeStubDataAppend 3896 3877 -0.5% 1.00x (?)
ObjectiveCBridgeStubDateMutation 257 257 +0.0% 1.00x
ObjectiveCBridgeStubFromNSDate 3970 4018 +1.2% 0.99x
ObjectiveCBridgeStubFromNSString 870 841 -3.3% 1.03x (?)
ObjectiveCBridgeStubFromNSStringRef 159 156 -1.9% 1.02x (?)
ObjectiveCBridgeStubNSDataAppend 2646 2588 -2.2% 1.02x (?)
ObjectiveCBridgeStubNSDateMutationRef 13307 13119 -1.4% 1.01x (?)
ObjectiveCBridgeStubToNSDate 15879 15608 -1.7% 1.02x (?)
ObjectiveCBridgeStubToNSDateRef 3428 3426 -0.1% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 115 115 +0.0% 1.00x
ObserverClosure 2157 2180 +1.1% 0.99x
ObserverForwarderStruct 1003 999 -0.4% 1.00x (?)
ObserverPartiallyAppliedMethod 3732 3770 +1.0% 0.99x
ObserverUnappliedMethod 2363 2375 +0.5% 0.99x (?)
PartialApplyDynamicType 0 0 +0.0% 1.00x
PointerArithmetics 34377 34394 +0.0% 1.00x (?)
PolymorphicCalls 25 25 +0.0% 1.00x
PopFrontArray 1884 1949 +3.5% 0.97x (?)
PopFrontArrayGeneric 1961 1957 -0.2% 1.00x (?)
PopFrontUnsafePointer 9559 9435 -1.3% 1.01x (?)
PrefixAnyCollection 101 101 +0.0% 1.00x
PrefixAnyCollectionLazy 67457 65490 -2.9% 1.03x
PrefixAnySeqCRangeIter 14336 14629 +2.0% 0.98x
PrefixAnySeqCRangeIterLazy 14335 14788 +3.2% 0.97x
PrefixAnySeqCntRange 94 94 +0.0% 1.00x
PrefixAnySeqCntRangeLazy 94 94 +0.0% 1.00x
PrefixAnySequence 4216 4087 -3.1% 1.03x
PrefixAnySequenceLazy 4169 4077 -2.2% 1.02x
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 1326 1329 +0.2% 1.00x
PrefixSequenceLazy 1413 1415 +0.1% 1.00x (?)
PrefixWhileAnyCollection 172 172 +0.0% 1.00x
PrefixWhileAnyCollectionLazy 108 108 +0.0% 1.00x
PrefixWhileAnySeqCRangeIter 9430 9417 -0.1% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 90 90 +0.0% 1.00x
PrefixWhileAnySeqCntRange 164 164 +0.0% 1.00x
PrefixWhileAnySeqCntRangeLazy 108 108 +0.0% 1.00x
PrefixWhileAnySequence 10743 10613 -1.2% 1.01x
PrefixWhileAnySequenceLazy 1393 1393 +0.0% 1.00x
PrefixWhileArray 88 88 +0.0% 1.00x
PrefixWhileArrayLazy 70 70 +0.0% 1.00x
PrefixWhileCountableRangeLazy 35 35 +0.0% 1.00x
PrefixWhileSequence 384 381 -0.8% 1.01x (?)
PrefixWhileSequenceLazy 52 52 +0.0% 1.00x
Prims 759 762 +0.4% 1.00x (?)
PrimsSplit 761 753 -1.1% 1.01x
QueueConcrete 1312 1309 -0.2% 1.00x (?)
QueueGeneric 1160 1161 +0.1% 1.00x (?)
RC4 171 168 -1.8% 1.02x
RGBHistogram 2198 2277 +3.6% 0.97x
RGBHistogramOfObjects 23618 23681 +0.3% 1.00x (?)
RangeAssignment 351 354 +0.9% 0.99x (?)
RangeIterationSigned64 200 200 +0.0% 1.00x
RangeIterationUnsigned 200 200 +0.0% 1.00x
RecursiveOwnedParameter 2323 2376 +2.3% 0.98x
RemoveWhereFilterInts 43 43 +0.0% 1.00x
RemoveWhereFilterStrings 432 432 +0.0% 1.00x
RemoveWhereMoveInts 17 17 +0.0% 1.00x
RemoveWhereMoveStrings 520 520 +0.0% 1.00x
RemoveWhereQuadraticInts 1289 1287 -0.2% 1.00x (?)
RemoveWhereQuadraticStrings 2761 2756 -0.2% 1.00x (?)
RemoveWhereSwapStrings 849 854 +0.6% 0.99x
ReversedArray 57 57 +0.0% 1.00x
ReversedDictionary 131 133 +1.5% 0.98x (?)
SequenceAlgosAnySequence 10296 10575 +2.7% 0.97x
SequenceAlgosArray 1580 1579 -0.1% 1.00x (?)
SequenceAlgosContiguousArray 1578 1580 +0.1% 1.00x (?)
SequenceAlgosList 1357 1348 -0.7% 1.01x
SequenceAlgosRange 4296 4302 +0.1% 1.00x (?)
SequenceAlgosUnfoldSequence 1081 1079 -0.2% 1.00x
SetExclusiveOr 3399 3496 +2.9% 0.97x
SetExclusiveOr_OfObjects 8929 8858 -0.8% 1.01x
SetIntersect 319 320 +0.3% 1.00x (?)
SetIntersect_OfObjects 1767 1764 -0.2% 1.00x (?)
SetIsSubsetOf 298 299 +0.3% 1.00x
SetIsSubsetOf_OfObjects 363 363 +0.0% 1.00x
SetUnion 3107 3087 -0.6% 1.01x (?)
SetUnion_OfObjects 7281 7309 +0.4% 1.00x (?)
Sim2DArray 599 599 +0.0% 1.00x
StackPromo 22009 22052 +0.2% 1.00x (?)
StaticArray 5 5 +0.0% 1.00x
StringComparison_ascii 980 990 +1.0% 0.99x
StringComparison_emoji 807 840 +4.1% 0.96x
StringComparison_longSharedPrefix 896 942 +5.1% 0.95x
StringComparison_nonBMPSlowestPrenormal 1605 1632 +1.7% 0.98x
StringComparison_slowerPrenormal 1688 1770 +4.9% 0.95x
StringComparison_zalgo 114081 115102 +0.9% 0.99x
StringEqualPointerComparison 315 315 +0.0% 1.00x
StringFromLongWholeSubstring 21 20 -4.8% 1.05x
StringHasPrefixUnicode 27812 27744 -0.2% 1.00x
StringHasSuffixUnicode 84796 85443 +0.8% 0.99x
StringWalk 1453 1416 -2.5% 1.03x
StringWithCString 43049 43069 +0.0% 1.00x (?)
SubstringEquatable 1372 1412 +2.9% 0.97x
SubstringFromLongStringGeneric 69 69 +0.0% 1.00x
SuffixAnyCollection 43 43 +0.0% 1.00x
SuffixAnyCollectionLazy 22459 21688 -3.4% 1.04x (?)
SuffixAnySeqCRangeIter 4016 4023 +0.2% 1.00x
SuffixAnySeqCRangeIterLazy 4019 4033 +0.3% 1.00x
SuffixAnySeqCntRange 35 35 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 35 35 +0.0% 1.00x
SuffixAnySequence 5164 5158 -0.1% 1.00x
SuffixAnySequenceLazy 5263 5271 +0.2% 1.00x (?)
SuffixCountableRange 12 12 +0.0% 1.00x
SuffixCountableRangeLazy 11 11 +0.0% 1.00x
SuffixSequence 3930 3943 +0.3% 1.00x
SuffixSequenceLazy 3937 3948 +0.3% 1.00x
SumUsingReduce 97 102 +5.2% 0.95x
SumUsingReduceInto 97 97 +0.0% 1.00x
SuperChars 41354 41930 +1.4% 0.99x (?)
TwoSum 999 999 +0.0% 1.00x
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode 317 321 +1.3% 0.99x
Walsh 428 431 +0.7% 0.99x
WordCountHistogramASCII 7402 7363 -0.5% 1.01x
WordSplitASCII 21905 22435 +2.4% 0.98x (?)
WordSplitUTF16 23600 23948 +1.5% 0.99x (?)
XorLoop 393 399 +1.5% 0.98x

Unoptimized (Onone)

Regression (59)
TEST OLD NEW DELTA SPEEDUP
StringHasSuffixAscii 3094 58629 +1794.9% 0.05x
StringHasPrefixAscii 2984 48705 +1532.2% 0.06x
StringEnumRawValueInitialization 18011 34833 +93.4% 0.52x
OpenClose 530 981 +85.1% 0.54x
NSStringConversion 335 596 +77.9% 0.56x
Calculator 1438 2519 +75.2% 0.57x
RangeReplaceableCollectionPlusDefault 8105 12696 +56.6% 0.64x
ObjectiveCBridgeStubToNSString 1573 2423 +54.0% 0.65x
StrToInt 57041 87600 +53.6% 0.65x
RangeIterationSigned 16441 22438 +36.5% 0.73x
ObjectiveCBridgeStubToArrayOfNSString 28898 39403 +36.4% 0.73x
ErrorHandling 6886 8978 +30.4% 0.77x
LuhnAlgoLazy 4863 6072 +24.9% 0.80x
LuhnAlgoEager 4974 6209 +24.8% 0.80x
RangeIterationUnsigned 34426 42746 +24.2% 0.81x
SortStrings 2027 2500 +23.3% 0.81x
SortSortedStrings 1034 1267 +22.5% 0.82x
CStringLongAscii 4602 5610 +21.9% 0.82x
PrefixWhileAnyCollectionLazy 16057 19569 +21.9% 0.82x
PrefixWhileAnySeqCRangeIterLazy 15982 19455 +21.7% 0.82x
StringEdits 340339 412934 +21.3% 0.82x
PrefixWhileAnySeqCntRangeLazy 15890 19275 +21.3% 0.82x
StringWithCString 37578 45532 +21.2% 0.83x
PrefixWhileCountableRangeLazy 15702 18965 +20.8% 0.83x
RangeIterationSigned64 38906 46510 +19.5% 0.84x
CStringLongNonAscii 2186 2564 +17.3% 0.85x
WordCountUniqueUTF16 26075 30583 +17.3% 0.85x (?)
PrefixAnySeqCRangeIter 16726 19495 +16.6% 0.86x
CharIteration_russian_unicodeScalars_Backwards 249986 283232 +13.3% 0.88x
ObjectiveCBridgeFromNSArrayAnyObject 22824 25753 +12.8% 0.89x
DropFirstArray 3852 4274 +11.0% 0.90x
ArrayOfRef 9347 10370 +10.9% 0.90x
BinaryFloatingPointConversionFromBinaryInteger 6107 6742 +10.4% 0.91x
StringWordBuilder 2518 2763 +9.7% 0.91x
StringWordBuilderReservingCapacity 2184 2394 +9.6% 0.91x
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 67754 73916 +9.1% 0.92x
FilterEvenUsingReduce 3656 3964 +8.4% 0.92x (?)
StringUTF16Builder 7661 8285 +8.1% 0.92x (?)
ArrayOfGenericRef 10169 10979 +8.0% 0.93x
StringAdder 4744 5113 +7.8% 0.93x
SubstringEqualString 1919 2066 +7.7% 0.93x
MapReduceShortString 235 252 +7.2% 0.93x
StringComparison_abnormal 1321 1415 +7.1% 0.93x
Phonebook 20075 21491 +7.1% 0.93x
CStringShortAscii 7568 8081 +6.8% 0.94x (?)
StringBuilderLong 2717 2898 +6.7% 0.94x (?)
SequenceAlgosRange 1071654 1142534 +6.6% 0.94x
EqualSubstringSubstring 92 98 +6.5% 0.94x
ArrayAppendUTF16 63018 67013 +6.3% 0.94x
SortLettersInPlace 2686 2852 +6.2% 0.94x
SequenceAlgosAnySequence 11035 11706 +6.1% 0.94x
DropWhileAnySeqCRangeIterLazy 19242 20408 +6.1% 0.94x
StringBuilder 6907 7325 +6.1% 0.94x (?)
PolymorphicCalls 6309 6690 +6.0% 0.94x
ByteSwap 9114 9661 +6.0% 0.94x
CharIndexing_russian_unicodeScalars 303540 321473 +5.9% 0.94x
StringComparison_nonBMPSlowestPrenormal 3834 4047 +5.6% 0.95x
LessSubstringSubstring 93 98 +5.4% 0.95x
SuperChars 125463 132091 +5.3% 0.95x
Improvement (37)
TEST OLD NEW DELTA SPEEDUP
ObjectiveCBridgeToNSString 1345 516 -61.6% 2.61x
ObjectiveCBridgeToNSSet 43218 17015 -60.6% 2.54x
ArrayAppendStrings 15363 6334 -58.8% 2.43x
ObjectiveCBridgeToNSDictionary 54426 25648 -52.9% 2.12x
ObjectiveCBridgeToNSArray 29493 15463 -47.6% 1.91x
StringFromLongWholeSubstring 22 12 -45.5% 1.83x
Dictionary2 3013 1874 -37.8% 1.61x
DictionaryBridge 2153 1403 -34.8% 1.53x
SevenBoom 1658 1112 -32.9% 1.49x
Join 1198 825 -31.1% 1.45x
SubstringFromLongString 24 18 -25.0% 1.33x
Dictionary2OfObjects 5775 4466 -22.7% 1.29x
ObjectiveCBridgeStubURLAppendPath 338244 269994 -20.2% 1.25x
AngryPhonebook 5154 4369 -15.2% 1.18x (?)
ObjectiveCBridgeStubURLAppendPathRef 328451 279230 -15.0% 1.18x
NSError 742 646 -12.9% 1.15x
RemoveWhereSwapStrings 7656 6693 -12.6% 1.14x
ArrayOfPOD 848 757 -10.7% 1.12x
CharIndexing_japanese_unicodeScalars 485189 434103 -10.5% 1.12x
RemoveWhereMoveStrings 4501 4034 -10.4% 1.12x
ObjectiveCBridgeFromNSSetAnyObjectToString 85934 77119 -10.3% 1.11x
CharIndexing_ascii_unicodeScalars 401394 361868 -9.8% 1.11x
PrefixWhileArrayLazy 13399 12171 -9.2% 1.10x
CharIndexing_punctuated_unicodeScalars_Backwards 94427 85861 -9.1% 1.10x (?)
QueueConcrete 16504 15178 -8.0% 1.09x
NSDictionaryCastToSwift 7147 6602 -7.6% 1.08x (?)
WordCountUniqueASCII 8766 8100 -7.6% 1.08x
PrefixArray 4321 3994 -7.6% 1.08x
CharIndexing_chinese_unicodeScalars 299416 277212 -7.4% 1.08x
RemoveWhereFilterStrings 3096 2881 -6.9% 1.07x
CSVParsingAltIndices 2441081 2274699 -6.8% 1.07x
ObjectiveCBridgeStubNSDateMutationRef 16592 15493 -6.6% 1.07x
DropWhileArrayLazy 14734 13817 -6.2% 1.07x
CharIndexing_punctuated_unicodeScalars 84838 79600 -6.2% 1.07x (?)
PrefixSequence 9631 9066 -5.9% 1.06x (?)
CharIteration_ascii_unicodeScalars_Backwards 317651 300623 -5.4% 1.06x (?)
ArrayOfGenericPOD2 1130 1072 -5.1% 1.05x (?)
No Changes (282)
TEST OLD NEW DELTA SPEEDUP
AnyHashableWithAClass 88521 88667 +0.2% 1.00x (?)
Array2D 633349 633157 -0.0% 1.00x (?)
ArrayAppend 4672 4672 +0.0% 1.00x
ArrayAppendArrayOfInt 863 864 +0.1% 1.00x (?)
ArrayAppendAscii 40322 40773 +1.1% 0.99x
ArrayAppendFromGeneric 871 875 +0.5% 1.00x (?)
ArrayAppendGenericStructs 1504 1491 -0.9% 1.01x (?)
ArrayAppendLatin1 63619 66587 +4.7% 0.96x
ArrayAppendLazyMap 170114 172276 +1.3% 0.99x
ArrayAppendOptionals 1507 1503 -0.3% 1.00x (?)
ArrayAppendRepeatCol 172871 180586 +4.5% 0.96x
ArrayAppendReserved 4391 4391 +0.0% 1.00x
ArrayAppendSequence 149750 149738 -0.0% 1.00x (?)
ArrayAppendToFromGeneric 868 866 -0.2% 1.00x (?)
ArrayAppendToGeneric 869 875 +0.7% 0.99x
ArrayInClass 6227 6191 -0.6% 1.01x (?)
ArrayLiteral 1806 1800 -0.3% 1.00x (?)
ArrayPlusEqualArrayOfInt 866 864 -0.2% 1.00x (?)
ArrayPlusEqualFiveElementCollection 242913 235130 -3.2% 1.03x
ArrayPlusEqualSingleElementCollection 239636 234141 -2.3% 1.02x (?)
ArrayPlusEqualThreeElements 9433 9331 -1.1% 1.01x (?)
ArraySubscript 115299 114846 -0.4% 1.00x
ArrayValueProp 3654 3656 +0.1% 1.00x (?)
ArrayValueProp2 16676 16306 -2.2% 1.02x (?)
ArrayValueProp3 4161 4182 +0.5% 0.99x
ArrayValueProp4 4120 4119 -0.0% 1.00x (?)
BitCount 7706 7708 +0.0% 1.00x (?)
COWTree 11542 12082 +4.7% 0.96x (?)
CSVParsing 2460709 2439226 -0.9% 1.01x (?)
CSVParsingAlt 1312193 1367870 +4.2% 0.96x
CaptureProp 250773 259707 +3.6% 0.97x (?)
CharIndexing_ascii_unicodeScalars_Backwards 390531 392402 +0.5% 1.00x (?)
CharIndexing_chinese_unicodeScalars_Backwards 296522 301657 +1.7% 0.98x (?)
CharIndexing_japanese_unicodeScalars_Backwards 467963 459628 -1.8% 1.02x (?)
CharIndexing_korean_unicodeScalars 356199 348652 -2.1% 1.02x (?)
CharIndexing_korean_unicodeScalars_Backwards 383255 398359 +3.9% 0.96x (?)
CharIndexing_punctuatedJapanese_unicodeScalars 63012 62465 -0.9% 1.01x (?)
CharIndexing_russian_unicodeScalars_Backwards 324155 329360 +1.6% 0.98x (?)
CharIndexing_tweet_unicodeScalars 714849 751478 +5.1% 0.95x (?)
CharIndexing_tweet_unicodeScalars_Backwards 782438 758965 -3.0% 1.03x (?)
CharIndexing_utf16_unicodeScalars 314673 314805 +0.0% 1.00x (?)
CharIndexing_utf16_unicodeScalars_Backwards 328590 324540 -1.2% 1.01x (?)
CharIteration_ascii_unicodeScalars 155778 156667 +0.6% 0.99x (?)
CharIteration_chinese_unicodeScalars 117926 118287 +0.3% 1.00x (?)
CharIteration_chinese_unicodeScalars_Backwards 227406 228139 +0.3% 1.00x (?)
CharIteration_japanese_unicodeScalars 186794 187096 +0.2% 1.00x (?)
CharIteration_japanese_unicodeScalars_Backwards 357587 373210 +4.4% 0.96x (?)
CharIteration_korean_unicodeScalars 151102 151479 +0.2% 1.00x (?)
CharIteration_korean_unicodeScalars_Backwards 291138 291113 -0.0% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars 27978 28054 +0.3% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 51916 52311 +0.8% 0.99x (?)
CharIteration_punctuated_unicodeScalars 35093 35134 +0.1% 1.00x
CharIteration_punctuated_unicodeScalars_Backwards 65793 66528 +1.1% 0.99x
CharIteration_russian_unicodeScalars 129731 130263 +0.4% 1.00x (?)
CharIteration_tweet_unicodeScalars 307684 308155 +0.2% 1.00x (?)
CharIteration_tweet_unicodeScalars_Backwards 656106 664268 +1.2% 0.99x (?)
CharIteration_utf16_unicodeScalars 131186 131687 +0.4% 1.00x
CharIteration_utf16_unicodeScalars_Backwards 263573 254357 -3.5% 1.04x (?)
CharacterLiteralsLarge 6034 5766 -4.4% 1.05x
CharacterLiteralsSmall 641 664 +3.6% 0.97x
CharacterPropertiesFetch 5492 5510 +0.3% 1.00x (?)
CharacterPropertiesPrecomputed 4483 4452 -0.7% 1.01x (?)
CharacterPropertiesStashed 2323 2337 +0.6% 0.99x (?)
CharacterPropertiesStashedMemo 5113 5185 +1.4% 0.99x (?)
Chars 40598 40118 -1.2% 1.01x
ClassArrayGetter 988 993 +0.5% 0.99x
Combos 2221 2228 +0.3% 1.00x (?)
DictOfArraysToArrayOfDicts 3458 3432 -0.8% 1.01x (?)
Dictionary 2710 2768 +2.1% 0.98x (?)
Dictionary3 1338 1395 +4.3% 0.96x
Dictionary3OfObjects 2299 2339 +1.7% 0.98x (?)
Dictionary4 1214 1212 -0.2% 1.00x (?)
Dictionary4OfObjects 1848 1844 -0.2% 1.00x (?)
DictionaryGroup 4445 4253 -4.3% 1.05x
DictionaryGroupOfObjects 7421 7443 +0.3% 1.00x (?)
DictionaryLiteral 8689 8643 -0.5% 1.01x (?)
DictionaryOfObjects 6363 6691 +5.2% 0.95x
DictionaryRemove 18833 18785 -0.3% 1.00x (?)
DictionaryRemoveOfObjects 50732 50850 +0.2% 1.00x (?)
DictionarySubscriptDefaultMutation 2133 2094 -1.8% 1.02x
DictionarySubscriptDefaultMutationArray 2370 2336 -1.4% 1.01x (?)
DictionarySubscriptDefaultMutationArrayOfObjects 9087 9301 +2.4% 0.98x (?)
DictionarySubscriptDefaultMutationOfObjects 5585 5616 +0.6% 0.99x (?)
DictionarySwap 5371 5468 +1.8% 0.98x
DictionarySwapOfObjects 22844 22532 -1.4% 1.01x (?)
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollection 13982 13908 -0.5% 1.01x (?)
DropFirstAnyCollectionLazy 99689 104040 +4.4% 0.96x
DropFirstAnySeqCRangeIter 20629 21134 +2.4% 0.98x
DropFirstAnySeqCRangeIterLazy 20453 21120 +3.3% 0.97x
DropFirstAnySeqCntRange 13913 13929 +0.1% 1.00x (?)
DropFirstAnySeqCntRangeLazy 13782 13821 +0.3% 1.00x
DropFirstAnySequence 11109 11075 -0.3% 1.00x (?)
DropFirstAnySequenceLazy 11122 11213 +0.8% 0.99x
DropFirstArrayLazy 28720 28952 +0.8% 0.99x (?)
DropFirstCountableRange 324 325 +0.3% 1.00x (?)
DropFirstCountableRangeLazy 27012 27122 +0.4% 1.00x
DropFirstSequence 10930 10810 -1.1% 1.01x (?)
DropFirstSequenceLazy 10672 10929 +2.4% 0.98x
DropLastAnyCollection 4702 4682 -0.4% 1.00x (?)
DropLastAnyCollectionLazy 34899 34026 -2.5% 1.03x
DropLastAnySeqCRangeIter 40474 38627 -4.6% 1.05x
DropLastAnySeqCRangeIterLazy 39883 38065 -4.6% 1.05x
DropLastAnySeqCntRange 4680 4649 -0.7% 1.01x (?)
DropLastAnySeqCntRangeLazy 4599 4622 +0.5% 1.00x
DropLastAnySequence 29412 29210 -0.7% 1.01x (?)
DropLastAnySequenceLazy 29258 29189 -0.2% 1.00x (?)
DropLastCountableRange 111 112 +0.9% 0.99x
DropLastCountableRangeLazy 9247 9078 -1.8% 1.02x (?)
DropLastSequence 29415 29449 +0.1% 1.00x (?)
DropLastSequenceLazy 29274 30344 +3.7% 0.96x
DropWhileAnyCollection 17401 17649 +1.4% 0.99x
DropWhileAnyCollectionLazy 19123 19883 +4.0% 0.96x
DropWhileAnySeqCRangeIter 22410 22641 +1.0% 0.99x (?)
DropWhileAnySeqCntRange 17423 17564 +0.8% 0.99x
DropWhileAnySeqCntRangeLazy 19097 19896 +4.2% 0.96x
DropWhileAnySequence 12574 12503 -0.6% 1.01x (?)
DropWhileAnySequenceLazy 10561 10503 -0.5% 1.01x (?)
DropWhileCountableRange 3960 4024 +1.6% 0.98x
DropWhileCountableRangeLazy 18791 19220 +2.3% 0.98x
DropWhileSequence 12426 12100 -2.6% 1.03x (?)
DropWhileSequenceLazy 9947 10082 +1.4% 0.99x
EqualStringSubstring 90 94 +4.4% 0.96x
EqualSubstringString 92 94 +2.2% 0.98x
EqualSubstringSubstringGenericEquatable 97 101 +4.1% 0.96x
ExclusivityGlobal 191 191 +0.0% 1.00x
ExclusivityIndependent 71 70 -1.4% 1.01x (?)
FilterEvenUsingReduceInto 1924 1933 +0.5% 1.00x (?)
FrequenciesUsingReduce 10594 10797 +1.9% 0.98x (?)
FrequenciesUsingReduceInto 5584 5563 -0.4% 1.00x (?)
Hanoi 20051 19910 -0.7% 1.01x (?)
HashTest 22037 22832 +3.6% 0.97x
Histogram 6714 6604 -1.6% 1.02x (?)
Integrate 830 830 +0.0% 1.00x
IterateData 5845 6134 +4.9% 0.95x
LazilyFilteredArrayContains 805519 780096 -3.2% 1.03x
LazilyFilteredArrays 1464988 1468225 +0.2% 1.00x (?)
LazilyFilteredRange 470861 482203 +2.4% 0.98x
LessSubstringSubstringGenericComparable 99 99 +0.0% 1.00x
LinkedList 32025 32194 +0.5% 0.99x
MapReduce 25563 25947 +1.5% 0.99x
MapReduceAnyCollection 25543 25898 +1.4% 0.99x
MapReduceAnyCollectionShort 36092 37257 +3.2% 0.97x (?)
MapReduceClass 30240 30426 +0.6% 0.99x (?)
MapReduceClassShort 41566 42465 +2.2% 0.98x
MapReduceLazyCollection 22650 22825 +0.8% 0.99x
MapReduceLazyCollectionShort 33482 34308 +2.5% 0.98x (?)
MapReduceLazySequence 17581 17947 +2.1% 0.98x
MapReduceSequence 29255 29610 +1.2% 0.99x
MapReduceShort 36324 37767 +4.0% 0.96x
MapReduceString 1794 1814 +1.1% 0.99x
Memset 44733 44729 -0.0% 1.00x (?)
MonteCarloE 1229648 1217921 -1.0% 1.01x (?)
MonteCarloPi 5576998 5550324 -0.5% 1.00x
NibbleSort 412641 417867 +1.3% 0.99x
NopDeinit 170758 170617 -0.1% 1.00x (?)
ObjectAllocation 1368 1404 +2.6% 0.97x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 8956 8587 -4.1% 1.04x
ObjectiveCBridgeFromNSArrayAnyObjectToString 41274 40899 -0.9% 1.01x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 37408 35640 -4.7% 1.05x
ObjectiveCBridgeFromNSDictionaryAnyObject 129368 132659 +2.5% 0.98x (?)
ObjectiveCBridgeFromNSSetAnyObject 61695 64308 +4.2% 0.96x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 7253 7435 +2.5% 0.98x (?)
ObjectiveCBridgeFromNSString 3172 3152 -0.6% 1.01x (?)
ObjectiveCBridgeFromNSStringForced 2780 2787 +0.3% 1.00x (?)
ObjectiveCBridgeStubDataAppend 4280 4346 +1.5% 0.98x (?)
ObjectiveCBridgeStubDateMutation 630 630 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 27649 27870 +0.8% 0.99x (?)
ObjectiveCBridgeStubFromNSDate 4825 4886 +1.3% 0.99x
ObjectiveCBridgeStubFromNSString 900 892 -0.9% 1.01x
ObjectiveCBridgeStubFromNSStringRef 196 202 +3.1% 0.97x
ObjectiveCBridgeStubNSDataAppend 2926 2989 +2.2% 0.98x (?)
ObjectiveCBridgeStubToNSDate 16258 15788 -2.9% 1.03x (?)
ObjectiveCBridgeStubToNSDateRef 3464 3492 +0.8% 0.99x (?)
ObjectiveCBridgeStubToNSStringRef 153 153 +0.0% 1.00x
ObserverClosure 6372 6349 -0.4% 1.00x
ObserverForwarderStruct 4528 4502 -0.6% 1.01x
ObserverPartiallyAppliedMethod 7889 7903 +0.2% 1.00x (?)
ObserverUnappliedMethod 8056 8119 +0.8% 0.99x (?)
PartialApplyDynamicType 41996 41109 -2.1% 1.02x
PointerArithmetics 117562 117418 -0.1% 1.00x (?)
PopFrontArray 4568 4662 +2.1% 0.98x
PopFrontArrayGeneric 5876 5803 -1.2% 1.01x
PopFrontUnsafePointer 11291 10866 -3.8% 1.04x (?)
PrefixAnyCollection 14040 13903 -1.0% 1.01x (?)
PrefixAnyCollectionLazy 99782 101175 +1.4% 0.99x (?)
PrefixAnySeqCRangeIterLazy 16625 16907 +1.7% 0.98x
PrefixAnySeqCntRange 13950 13881 -0.5% 1.00x (?)
PrefixAnySeqCntRangeLazy 13739 13837 +0.7% 0.99x
PrefixAnySequence 9304 9291 -0.1% 1.00x (?)
PrefixAnySequenceLazy 9581 9279 -3.2% 1.03x (?)
PrefixArrayLazy 28304 29013 +2.5% 0.98x
PrefixCountableRange 326 326 +0.0% 1.00x
PrefixCountableRangeLazy 26943 27224 +1.0% 0.99x
PrefixSequenceLazy 9236 9021 -2.3% 1.02x (?)
PrefixWhileAnyCollection 24568 25212 +2.6% 0.97x
PrefixWhileAnySeqCRangeIter 34428 33731 -2.0% 1.02x
PrefixWhileAnySeqCntRange 24613 25021 +1.7% 0.98x
PrefixWhileAnySequence 26547 26710 +0.6% 0.99x
PrefixWhileAnySequenceLazy 9586 9552 -0.4% 1.00x (?)
PrefixWhileArray 11128 11397 +2.4% 0.98x (?)
PrefixWhileCountableRange 11174 11289 +1.0% 0.99x
PrefixWhileSequence 26191 26355 +0.6% 0.99x
PrefixWhileSequenceLazy 9158 9200 +0.5% 1.00x
Prims 9693 9712 +0.2% 1.00x (?)
PrimsSplit 9714 9938 +2.3% 0.98x
QueueGeneric 20776 20636 -0.7% 1.01x (?)
RC4 17135 16807 -1.9% 1.02x
RGBHistogram 26271 26128 -0.5% 1.01x (?)
RGBHistogramOfObjects 96529 99015 +2.6% 0.97x
RangeAssignment 2202 2265 +2.9% 0.97x
RecursiveOwnedParameter 7932 7884 -0.6% 1.01x
RemoveWhereFilterInts 2058 2096 +1.8% 0.98x
RemoveWhereFilterString 1473 1474 +0.1% 1.00x
RemoveWhereMoveInts 3343 3340 -0.1% 1.00x
RemoveWhereQuadraticInts 7690 7747 +0.7% 0.99x
RemoveWhereQuadraticString 2324 2295 -1.2% 1.01x (?)
RemoveWhereQuadraticStrings 9512 9403 -1.1% 1.01x
RemoveWhereSwapInts 5992 6048 +0.9% 0.99x
ReversedArray 13304 13386 +0.6% 0.99x
ReversedBidirectional 42843 42112 -1.7% 1.02x
ReversedDictionary 23098 23396 +1.3% 0.99x
RomanNumbers 1262073 1247078 -1.2% 1.01x (?)
SequenceAlgosArray 779215 791532 +1.6% 0.98x
SequenceAlgosContiguousArray 325173 334743 +2.9% 0.97x
SequenceAlgosList 8288 8206 -1.0% 1.01x
SequenceAlgosUnfoldSequence 5687 5687 +0.0% 1.00x
SetExclusiveOr 17578 17688 +0.6% 0.99x
SetExclusiveOr_OfObjects 42371 43285 +2.2% 0.98x
SetIntersect 8631 8640 +0.1% 1.00x
SetIntersect_OfObjects 12265 12370 +0.9% 0.99x (?)
SetIsSubsetOf 1393 1392 -0.1% 1.00x (?)
SetIsSubsetOf_OfObjects 1595 1621 +1.6% 0.98x (?)
SetUnion 11939 12130 +1.6% 0.98x
SetUnion_OfObjects 29503 29476 -0.1% 1.00x (?)
Sim2DArray 43605 43661 +0.1% 1.00x
SortLargeExistentials 15437 16043 +3.9% 0.96x
SortStringsUnicode 2810 2917 +3.8% 0.96x
StackPromo 92277 95738 +3.8% 0.96x
StaticArray 2676 2659 -0.6% 1.01x (?)
StrComplexWalk 6657 6835 +2.7% 0.97x
StringComparison_ascii 9640 9885 +2.5% 0.98x
StringComparison_emoji 2084 2190 +5.1% 0.95x
StringComparison_fastPrenormal 5221 5494 +5.2% 0.95x
StringComparison_latin1 4068 4271 +5.0% 0.95x
StringComparison_longSharedPrefix 2477 2585 +4.4% 0.96x
StringComparison_slowerPrenormal 4329 4548 +5.1% 0.95x
StringComparison_zalgo 115735 116851 +1.0% 0.99x
StringEqualPointerComparison 3324 3408 +2.5% 0.98x
StringFromLongWholeSubstringGeneric 201 202 +0.5% 1.00x
StringHasPrefixUnicode 29404 29249 -0.5% 1.01x (?)
StringHasSuffixUnicode 86405 86380 -0.0% 1.00x (?)
StringInterpolation 13071 13145 +0.6% 0.99x (?)
StringMatch 35685 36022 +0.9% 0.99x (?)
StringRemoveDupes 1412 1470 +4.1% 0.96x (?)
StringWalk 13131 12539 -4.5% 1.05x
SubstringComparable 2066 2074 +0.4% 1.00x (?)
SubstringEquatable 6013 6208 +3.2% 0.97x
SubstringFromLongStringGeneric 104 104 +0.0% 1.00x
SuffixAnyCollection 4675 4711 +0.8% 0.99x
SuffixAnyCollectionLazy 33514 34853 +4.0% 0.96x (?)
SuffixAnySeqCRangeIter 34396 34397 +0.0% 1.00x (?)
SuffixAnySeqCRangeIterLazy 34318 34214 -0.3% 1.00x (?)
SuffixAnySeqCntRange 4659 4651 -0.2% 1.00x
SuffixAnySeqCntRangeLazy 4606 4632 +0.6% 0.99x
SuffixAnySequence 25365 25444 +0.3% 1.00x
SuffixAnySequenceLazy 25419 25402 -0.1% 1.00x (?)
SuffixCountableRange 111 113 +1.8% 0.98x
SuffixCountableRangeLazy 9253 9054 -2.2% 1.02x (?)
SuffixSequence 25230 25385 +0.6% 0.99x
SuffixSequenceLazy 25560 25344 -0.8% 1.01x (?)
SumUsingReduce 165748 166164 +0.3% 1.00x (?)
SumUsingReduceInto 159710 160644 +0.6% 0.99x
TwoSum 4013 4097 +2.1% 0.98x
TypeFlood 156 150 -3.8% 1.04x (?)
UTF8Decode 30338 30160 -0.6% 1.01x
Walsh 12042 12021 -0.2% 1.00x (?)
WordCountHistogramASCII 46931 47008 +0.2% 1.00x (?)
WordCountHistogramUTF16 71636 72860 +1.7% 0.98x (?)
WordSplitASCII 25692 25996 +1.2% 0.99x (?)
WordSplitUTF16 27375 27816 +1.6% 0.98x (?)
XorLoop 23372 23444 +0.3% 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
Copy link
Member Author

milseman commented Mar 2, 2018

Loads more dynamic small strings. Implementation approach for index-operations is still spill-and-go. Missing some appends still...

@swift-ci please smoke benchmark

@milseman
Copy link
Member Author

milseman commented Mar 2, 2018

@swift-ci please smoke benchmark

Streamline internal String creation. Previously, everything funneled
into a single generic function, however, every single call of the
generic funnel had relevant specific information that could be used
for a more efficient algorithm.

In preparation for efficiently forming small strings, refactor this
logic into a handful of more specialized subroutines to preserve more
specific information from the callers.
@swift-ci
Copy link
Contributor

Build failed
Swift Test OS X Platform
Git Sha - 306249c690e1f99d30b59457daa026ab4070f8b6

@milseman
Copy link
Member Author

Mac failures are unrelated, being addressed in #15535

@gottesmm, when do you think that you'll be able to look at unused_containers XFAIL? Should I just disable it on Linux for now?

milseman and others added 5 commits March 27, 2018 14:00
This adds a small string representation capable of holding up to 15
ASCII code units directly in registers. This is extendable to UTF-8 in
the future.

It is intended to be the preferred representation whenever possible
for String, and is intended to be a String fast-path. Future small
forms may be added in the future (likely off the fast-path).

Small strings are available on 64-bit, where they are most beneficial
and well accomodated by limited address spaces. They are unavailable
on 32-bit, where they are less of a win and would require much more
hackery due to full address spaces.
Switch StringObject and StringGuts from opaquely storing tagged cocoa
strings into storing small strings. Plumb small string support
throughout the standard library's routines.
Whenever possible, prefer the small string format. Updates creation
logic. Adds assertion on large strings that they're not intended to be
small.
@milseman
Copy link
Member Author

Please test with the following PR: apple/swift-lldb#461

@swift-ci please test Linux Platform

@swift-ci
Copy link
Contributor

Build failed
Swift Test Linux Platform
Git Sha - 306249c690e1f99d30b59457daa026ab4070f8b6

@milseman
Copy link
Member Author

Please test with the following PR: apple/swift-lldb#461

@swift-ci please test OS X Platform

@swift-ci
Copy link
Contributor

Build failed
Swift Test OS X Platform
Git Sha - 306249c690e1f99d30b59457daa026ab4070f8b6

@gottesmm
Copy link
Contributor

@milseman I would just use a requires line and continue.

@milseman
Copy link
Member Author

@gottesmm yup bf21a07 😉

@milseman
Copy link
Member Author

@dcci @vedantk so I've verified that my formatting code does handle intermediary nul characters correctly. Do you know why this test might fail? https://ci.swift.org/job/swift-PR-osx/3925/consoleFull#376610391ba62d58e-7248-467b-91e0-c7508d5cf947

When I tried to run LLDB tests locally, I could get all the LIT based ones working but the python ones all kept crashing (likely I had a mismatched version of Python). Are they supposed to work with a CMake based build?

@vedantk
Copy link
Contributor

vedantk commented Mar 28, 2018

@milseman The cmake build of lldb should support running all the python tests. Separately, I can follow up and see why things are failing for you locally. I'll take a look at the test now.

@vedantk
Copy link
Contributor

vedantk commented Mar 28, 2018

@milseman It looks like apple/swift-lldb#461 forwards intermediary nul characters directly to the formatter's output string without escaping them first. I've left a more detailed comment + suggested fix in the PR.

@milseman
Copy link
Member Author

Please test with the following PR: apple/swift-lldb#461

@swift-ci please test OS X Platform

@milseman
Copy link
Member Author

Please test with the following PR: apple/swift-lldb#461

@swift-ci please test Linux Platform

@swift-ci
Copy link
Contributor

Build failed
Swift Test Linux Platform
Git Sha - bf21a07

@milseman
Copy link
Member Author

Please test with the following PR:
apple/swift-lldb#461
swiftlang/swift-corelibs-foundation#1492

@swift-ci please test Linux Platform

@swift-ci
Copy link
Contributor

Build failed
Swift Test Linux Platform
Git Sha - bf21a07

@milseman
Copy link
Member Author

Please test with the following PR:
apple/swift-lldb#461
swiftlang/swift-corelibs-foundation#1492

@swift-ci please test Linux Platform

@milseman milseman merged commit 683fb47 into swiftlang:master Mar 29, 2018
@milseman milseman deleted the so_smol branch March 29, 2018 01:30
@gottesmm
Copy link
Contributor

Congrats Michael!

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.

7 participants