Skip to content

Implement legacy UTF8 APIs in terms of new components #9188

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 10 commits into from
May 3, 2017

Conversation

dabrahams
Copy link
Contributor

No description provided.

@dabrahams
Copy link
Contributor Author

@swift-ci Please benchmark

@dabrahams
Copy link
Contributor Author

@swift-ci Please test

@swift-ci
Copy link
Contributor

swift-ci commented May 2, 2017

Build comment file:

Optimized (O)

Regression (14)
TEST OLD NEW DELTA SPEEDUP
StringInterpolation 8298 9597 +15.7% 0.86x
CStringLongAscii 13434 15382 +14.5% 0.87x
SuperChars 270679 308163 +13.8% 0.88x
OpenClose 48 53 +10.4% 0.91x
PrefixArrayLazy 30 33 +10.0% 0.91x
DropLastArray 10 11 +10.0% 0.91x
DropLastArrayLazy 10 11 +10.0% 0.91x
MapReduceAnyCollection 312 343 +9.9% 0.91x
SuffixArrayLazy 11 12 +9.1% 0.92x
Join 432 464 +7.4% 0.93x
ClassArrayGetter 14 15 +7.1% 0.93x
CaptureProp 4693 5002 +6.6% 0.94x
NSStringConversion 740 782 +5.7% 0.95x
NopDeinit 27425 28953 +5.6% 0.95x
Improvement (17)
TEST OLD NEW DELTA SPEEDUP
ProtocolDispatch 3031 2472 -18.4% 1.23x
UTF8Decode 268 226 -15.7% 1.19x
StringHasSuffix 798 681 -14.7% 1.17x
StringHasPrefix 704 608 -13.6% 1.16x
DictionaryRemove 3673 3189 -13.2% 1.15x
DropWhileSequenceLazy 72 63 -12.5% 1.14x
DropFirstArrayLazy 33 29 -12.1% 1.14x
StringMatch 18015 15883 -11.8% 1.13x
Calculator 46 41 -10.9% 1.12x
StrToInt 5000 4501 -10.0% 1.11x
SortSortedStrings 899 812 -9.7% 1.11x
SuffixArray 11 10 -9.1% 1.10x
ObjectiveCBridgeStubNSDateRefAccess 352 322 -8.5% 1.09x
Hanoi 3578 3283 -8.2% 1.09x
SortStrings 1741 1598 -8.2% 1.09x
DropWhileArray 46 43 -6.5% 1.07x
Phonebook 9762 9211 -5.6% 1.06x (?)
No Changes (238)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 2894 2919 +0.9% 0.99x (?)
AnyHashableWithAClass 68705 69066 +0.5% 0.99x (?)
Array2D 2065 2030 -1.7% 1.02x (?)
ArrayAppend 751 751 +0.0% 1.00x
ArrayAppendArrayOfInt 579 579 +0.0% 1.00x
ArrayAppendAscii 20009 19743 -1.3% 1.01x (?)
ArrayAppendFromGeneric 579 578 -0.2% 1.00x (?)
ArrayAppendGenericStructs 1168 1168 +0.0% 1.00x
ArrayAppendLatin1 45553 45281 -0.6% 1.01x (?)
ArrayAppendLazyMap 948 940 -0.8% 1.01x (?)
ArrayAppendOptionals 1168 1168 +0.0% 1.00x
ArrayAppendRepeatCol 829 814 -1.8% 1.02x (?)
ArrayAppendReserved 518 516 -0.4% 1.00x (?)
ArrayAppendSequence 934 944 +1.1% 0.99x (?)
ArrayAppendStrings 13207 13062 -1.1% 1.01x (?)
ArrayAppendToFromGeneric 579 579 +0.0% 1.00x
ArrayAppendToGeneric 578 578 +0.0% 1.00x
ArrayAppendUTF16 43585 43923 +0.8% 0.99x (?)
ArrayInClass 63 63 +0.0% 1.00x
ArrayLiteral 1195 1189 -0.5% 1.01x (?)
ArrayOfGenericPOD 213 213 +0.0% 1.00x
ArrayOfGenericRef 3888 3925 +1.0% 0.99x (?)
ArrayOfPOD 161 161 +0.0% 1.00x
ArrayOfRef 3753 3814 +1.6% 0.98x (?)
ArrayPlusEqualArrayOfInt 579 579 +0.0% 1.00x
ArrayPlusEqualFiveElementCollection 4393 4444 +1.2% 0.99x (?)
ArrayPlusEqualSingleElementCollection 754 751 -0.4% 1.00x (?)
ArrayPlusEqualThreeElements 1563 1573 +0.6% 0.99x (?)
ArraySubscript 1454 1452 -0.1% 1.00x (?)
ArrayValueProp 5 5 +0.0% 1.00x
ArrayValueProp2 5 5 +0.0% 1.00x
ArrayValueProp3 5 5 +0.0% 1.00x
ArrayValueProp4 5 5 +0.0% 1.00x
BitCount 0 0 +0.0% 1.00x
ByteSwap 0 0 +0.0% 1.00x
CStringLongNonAscii 4240 4312 +1.7% 0.98x (?)
CStringShortAscii 6098 6403 +5.0% 0.95x (?)
CharacterLiteralsLarge 10493 10997 +4.8% 0.95x (?)
CharacterLiteralsSmall 756 756 +0.0% 1.00x
Chars 1389 1387 -0.1% 1.00x (?)
DeadArray 182 181 -0.5% 1.01x (?)
Dictionary 847 850 +0.4% 1.00x (?)
Dictionary2 2099 2146 +2.2% 0.98x (?)
Dictionary2OfObjects 3624 3758 +3.7% 0.96x (?)
Dictionary3 601 600 -0.2% 1.00x (?)
Dictionary3OfObjects 1053 1056 +0.3% 1.00x (?)
DictionaryBridge 2860 2850 -0.3% 1.00x (?)
DictionaryLiteral 1510 1495 -1.0% 1.01x (?)
DictionaryOfObjects 2688 2690 +0.1% 1.00x (?)
DictionaryRemoveOfObjects 22706 22705 -0.0% 1.00x (?)
DictionarySwap 363 370 +1.9% 0.98x (?)
DictionarySwapOfObjects 6815 6747 -1.0% 1.01x (?)
DropFirstAnyCollection 120 121 +0.8% 0.99x (?)
DropFirstAnyCollectionLazy 43443 43860 +1.0% 0.99x (?)
DropFirstAnySeqCRangeIter 28200 27184 -3.6% 1.04x (?)
DropFirstAnySeqCRangeIterLazy 28708 28424 -1.0% 1.01x (?)
DropFirstAnySeqCntRange 108 110 +1.9% 0.98x (?)
DropFirstAnySeqCntRangeLazy 108 113 +4.6% 0.96x
DropFirstAnySequence 6600 6761 +2.4% 0.98x (?)
DropFirstAnySequenceLazy 6758 6776 +0.3% 1.00x (?)
DropFirstArray 29 29 +0.0% 1.00x
DropFirstCountableRange 22 21 -4.5% 1.05x (?)
DropFirstCountableRangeLazy 21 22 +4.8% 0.95x (?)
DropFirstSequence 2893 2894 +0.0% 1.00x (?)
DropFirstSequenceLazy 2868 2860 -0.3% 1.00x (?)
DropLastAnyCollection 50 51 +2.0% 0.98x (?)
DropLastAnyCollectionLazy 14527 14515 -0.1% 1.00x (?)
DropLastAnySeqCRangeIter 4524 4486 -0.8% 1.01x (?)
DropLastAnySeqCRangeIterLazy 4507 4496 -0.2% 1.00x (?)
DropLastAnySeqCntRange 38 38 +0.0% 1.00x
DropLastAnySeqCntRangeLazy 38 38 +0.0% 1.00x
DropLastAnySequence 6461 6544 +1.3% 0.99x (?)
DropLastAnySequenceLazy 6381 6351 -0.5% 1.00x (?)
DropLastCountableRange 8 8 +0.0% 1.00x
DropLastCountableRangeLazy 8 8 +0.0% 1.00x
DropLastSequence 506 531 +4.9% 0.95x (?)
DropLastSequenceLazy 515 529 +2.7% 0.97x (?)
DropWhileAnyCollection 126 126 +0.0% 1.00x
DropWhileAnyCollectionLazy 90 91 +1.1% 0.99x (?)
DropWhileAnySeqCRangeIter 22373 22081 -1.3% 1.01x (?)
DropWhileAnySeqCRangeIterLazy 93 91 -2.2% 1.02x (?)
DropWhileAnySeqCntRange 120 120 +0.0% 1.00x
DropWhileAnySeqCntRangeLazy 93 91 -2.2% 1.02x (?)
DropWhileAnySequence 7415 7588 +2.3% 0.98x (?)
DropWhileAnySequenceLazy 2046 1987 -2.9% 1.03x (?)
DropWhileArrayLazy 79 78 -1.3% 1.01x (?)
DropWhileCountableRange 34 34 +0.0% 1.00x
DropWhileCountableRangeLazy 75 75 +0.0% 1.00x
DropWhileSequence 2920 2948 +1.0% 0.99x (?)
ErrorHandling 2856 2928 +2.5% 0.98x (?)
GlobalClass 0 0 +0.0% 1.00x
HashQuadratic 6373077 6073663 -4.7% 1.05x
HashTest 1724 1739 +0.9% 0.99x (?)
Histogram 249 247 -0.8% 1.01x (?)
Integrate 270 265 -1.9% 1.02x (?)
IterateData 786 787 +0.1% 1.00x (?)
LazilyFilteredArrays 64339 63527 -1.3% 1.01x (?)
LazilyFilteredRange 3804 3954 +3.9% 0.96x (?)
LinkedList 6668 6673 +0.1% 1.00x (?)
MapReduce 334 331 -0.9% 1.01x (?)
MapReduceAnyCollectionShort 1971 1984 +0.7% 0.99x (?)
MapReduceClass 2967 2966 -0.0% 1.00x (?)
MapReduceClassShort 4427 4328 -2.2% 1.02x (?)
MapReduceLazyCollection 15 15 +0.0% 1.00x
MapReduceLazyCollectionShort 44 45 +2.3% 0.98x (?)
MapReduceLazySequence 85 85 +0.0% 1.00x
MapReduceSequence 435 443 +1.8% 0.98x (?)
MapReduceShort 1882 1923 +2.2% 0.98x (?)
MapReduceShortString 18 18 +0.0% 1.00x
MapReduceString 73 70 -4.1% 1.04x (?)
Memset 221 221 +0.0% 1.00x
MonteCarloE 9716 9834 +1.2% 0.99x (?)
MonteCarloPi 41526 41583 +0.1% 1.00x (?)
NSDictionaryCastToSwift 5056 5026 -0.6% 1.01x (?)
NSError 287 290 +1.0% 0.99x (?)
ObjectAllocation 178 179 +0.6% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObject 23320 23756 +1.9% 0.98x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 4495 4504 +0.2% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 44372 43895 -1.1% 1.01x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 38988 38232 -1.9% 1.02x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 122305 121208 -0.9% 1.01x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 5110 4956 -3.0% 1.03x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 103580 104921 +1.3% 0.99x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 102272 100198 -2.0% 1.02x (?)
ObjectiveCBridgeFromNSSetAnyObject 65068 64971 -0.1% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 4151 4222 +1.7% 0.98x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 84208 82479 -2.1% 1.02x (?)
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 74152 72455 -2.3% 1.02x (?)
ObjectiveCBridgeFromNSString 1462 1427 -2.4% 1.02x (?)
ObjectiveCBridgeFromNSStringForced 2427 2392 -1.4% 1.01x (?)
ObjectiveCBridgeStubDataAppend 3672 3553 -3.2% 1.03x (?)
ObjectiveCBridgeStubDateAccess 178 178 +0.0% 1.00x
ObjectiveCBridgeStubDateMutation 272 264 -2.9% 1.03x (?)
ObjectiveCBridgeStubFromArrayOfNSString 28775 29390 +2.1% 0.98x (?)
ObjectiveCBridgeStubFromNSDate 3645 3553 -2.5% 1.03x (?)
ObjectiveCBridgeStubFromNSDateRef 3672 3613 -1.6% 1.02x (?)
ObjectiveCBridgeStubFromNSString 945 935 -1.1% 1.01x (?)
ObjectiveCBridgeStubFromNSStringRef 178 180 +1.1% 0.99x (?)
ObjectiveCBridgeStubNSDataAppend 2334 2345 +0.5% 1.00x (?)
ObjectiveCBridgeStubNSDateMutationRef 12649 12387 -2.1% 1.02x (?)
ObjectiveCBridgeStubToArrayOfNSString 29144 28258 -3.0% 1.03x (?)
ObjectiveCBridgeStubToNSDate 14242 14345 +0.7% 0.99x (?)
ObjectiveCBridgeStubToNSDateRef 3255 3278 +0.7% 0.99x (?)
ObjectiveCBridgeStubToNSString 1478 1473 -0.3% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 105 110 +4.8% 0.95x (?)
ObjectiveCBridgeStubURLAppendPath 229793 228650 -0.5% 1.00x (?)
ObjectiveCBridgeStubURLAppendPathRef 228770 234382 +2.5% 0.98x (?)
ObjectiveCBridgeToNSArray 29671 28675 -3.4% 1.03x (?)
ObjectiveCBridgeToNSDictionary 62386 62451 +0.1% 1.00x (?)
ObjectiveCBridgeToNSSet 39804 39556 -0.6% 1.01x (?)
ObjectiveCBridgeToNSString 1236 1235 -0.1% 1.00x (?)
ObserverClosure 2205 2235 +1.4% 0.99x (?)
ObserverForwarderStruct 1038 1041 +0.3% 1.00x (?)
ObserverPartiallyAppliedMethod 3718 3745 +0.7% 0.99x (?)
ObserverUnappliedMethod 2718 2772 +2.0% 0.98x (?)
PolymorphicCalls 20 20 +0.0% 1.00x
PopFrontArray 1068 1047 -2.0% 1.02x (?)
PopFrontArrayGeneric 1070 1073 +0.3% 1.00x (?)
PopFrontUnsafePointer 8612 8622 +0.1% 1.00x (?)
PrefixAnyCollection 120 121 +0.8% 0.99x (?)
PrefixAnyCollectionLazy 43391 43778 +0.9% 0.99x (?)
PrefixAnySeqCRangeIter 22399 21869 -2.4% 1.02x (?)
PrefixAnySeqCRangeIterLazy 22879 22503 -1.6% 1.02x (?)
PrefixAnySeqCntRange 109 108 -0.9% 1.01x (?)
PrefixAnySeqCntRangeLazy 109 109 +0.0% 1.00x
PrefixAnySequence 6104 5925 -2.9% 1.03x (?)
PrefixAnySequenceLazy 6149 6089 -1.0% 1.01x (?)
PrefixArray 29 29 +0.0% 1.00x
PrefixCountableRange 22 21 -4.5% 1.05x (?)
PrefixCountableRangeLazy 22 22 +0.0% 1.00x
PrefixSequence 2421 2489 +2.8% 0.97x
PrefixSequenceLazy 2458 2454 -0.2% 1.00x (?)
PrefixWhileAnyCollection 151 152 +0.7% 0.99x (?)
PrefixWhileAnyCollectionLazy 75 75 +0.0% 1.00x
PrefixWhileAnySeqCRangeIter 12162 12162 +0.0% 1.00x
PrefixWhileAnySeqCRangeIterLazy 74 73 -1.4% 1.01x (?)
PrefixWhileAnySeqCntRange 146 146 +0.0% 1.00x
PrefixWhileAnySeqCntRangeLazy 75 74 -1.3% 1.01x (?)
PrefixWhileAnySequence 13628 13889 +1.9% 0.98x (?)
PrefixWhileAnySequenceLazy 1584 1540 -2.8% 1.03x (?)
PrefixWhileArray 66 65 -1.5% 1.02x (?)
PrefixWhileArrayLazy 58 58 +0.0% 1.00x
PrefixWhileCountableRange 34 33 -2.9% 1.03x (?)
PrefixWhileCountableRangeLazy 22 22 +0.0% 1.00x
PrefixWhileSequence 375 392 +4.5% 0.96x (?)
PrefixWhileSequenceLazy 36 36 +0.0% 1.00x
Prims 736 725 -1.5% 1.02x (?)
ProtocolDispatch2 168 165 -1.8% 1.02x
RC4 169 166 -1.8% 1.02x (?)
RGBHistogram 2280 2292 +0.5% 0.99x (?)
RGBHistogramOfObjects 23385 22745 -2.7% 1.03x (?)
RangeAssignment 311 313 +0.6% 0.99x (?)
RecursiveOwnedParameter 2196 2183 -0.6% 1.01x (?)
ReversedArray 48 48 +0.0% 1.00x
ReversedBidirectional 29293 28575 -2.5% 1.03x (?)
ReversedDictionary 105 105 +0.0% 1.00x
SetExclusiveOr 2934 2950 +0.5% 0.99x (?)
SetExclusiveOr_OfObjects 9260 9334 +0.8% 0.99x (?)
SetIntersect 283 272 -3.9% 1.04x (?)
SetIntersect_OfObjects 1639 1629 -0.6% 1.01x (?)
SetIsSubsetOf 270 270 +0.0% 1.00x
SetIsSubsetOf_OfObjects 338 338 +0.0% 1.00x
SetUnion 2612 2561 -2.0% 1.02x (?)
SetUnion_OfObjects 7825 7857 +0.4% 1.00x (?)
SevenBoom 1468 1459 -0.6% 1.01x (?)
Sim2DArray 277 276 -0.4% 1.00x (?)
SortLargeExistentials 8364 8241 -1.5% 1.01x (?)
SortLettersInPlace 1113 1113 +0.0% 1.00x
SortStringsUnicode 7714 8037 +4.2% 0.96x (?)
StackPromo 20895 21082 +0.9% 0.99x (?)
StaticArray 21 21 +0.0% 1.00x
StrComplexWalk 966 987 +2.2% 0.98x (?)
StringAdder 0 0 +0.0% 1.00x
StringBuilder 1294 1278 -1.2% 1.01x (?)
StringBuilderLong 956 933 -2.4% 1.02x (?)
StringEdits 404558 398100 -1.6% 1.02x (?)
StringEqualPointerComparison 7376 7497 +1.6% 0.98x (?)
StringHasPrefixUnicode 14880 15130 +1.7% 0.98x (?)
StringHasSuffixUnicode 62041 62539 +0.8% 0.99x (?)
StringUTF16Builder 2118 2136 +0.8% 0.99x (?)
StringWalk 5804 5774 -0.5% 1.01x (?)
StringWithCString 320536 320626 +0.0% 1.00x (?)
SuffixAnyCollection 50 49 -2.0% 1.02x (?)
SuffixAnyCollectionLazy 14559 14391 -1.2% 1.01x (?)
SuffixAnySeqCRangeIter 4794 4791 -0.1% 1.00x (?)
SuffixAnySeqCRangeIterLazy 4796 4798 +0.0% 1.00x (?)
SuffixAnySeqCntRange 38 38 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 38 38 +0.0% 1.00x
SuffixAnySequence 6515 6664 +2.3% 0.98x (?)
SuffixAnySequenceLazy 6400 6433 +0.5% 0.99x (?)
SuffixCountableRange 8 8 +0.0% 1.00x
SuffixCountableRangeLazy 8 8 +0.0% 1.00x
SuffixSequence 4339 4335 -0.1% 1.00x (?)
SuffixSequenceLazy 4338 4334 -0.1% 1.00x (?)
TwoSum 905 901 -0.4% 1.00x (?)
TypeFlood 0 0 +0.0% 1.00x
Walsh 353 360 +2.0% 0.98x (?)
XorLoop 337 337 +0.0% 1.00x
**Unoptimized (Onone)**
Regression (7)
TEST OLD NEW DELTA SPEEDUP
SuperChars 286907 335544 +17.0% 0.86x
CStringLongAscii 12728 14491 +13.9% 0.88x
StringInterpolation 12193 13737 +12.7% 0.89x
CharacterLiteralsLarge 11050 11949 +8.1% 0.92x (?)
StringHasSuffix 1842 1990 +8.0% 0.93x
ArrayAppend 3619 3851 +6.4% 0.94x
StringHasPrefixUnicode 16381 17254 +5.3% 0.95x
Improvement (3)
TEST OLD NEW DELTA SPEEDUP
TypeFlood 174 160 -8.0% 1.09x
ObjectiveCBridgeStubFromNSDate 4381 4074 -7.0% 1.08x
ArrayAppendReserved 3682 3497 -5.0% 1.05x
No Changes (259)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 3064 3011 -1.7% 1.02x (?)
AnyHashableWithAClass 85851 85412 -0.5% 1.01x (?)
Array2D 574296 596225 +3.8% 0.96x (?)
ArrayAppendArrayOfInt 653 673 +3.1% 0.97x (?)
ArrayAppendAscii 84628 82669 -2.3% 1.02x (?)
ArrayAppendFromGeneric 676 675 -0.1% 1.00x (?)
ArrayAppendGenericStructs 1264 1264 +0.0% 1.00x
ArrayAppendLatin1 104469 104078 -0.4% 1.00x (?)
ArrayAppendLazyMap 210028 208149 -0.9% 1.01x
ArrayAppendOptionals 1265 1264 -0.1% 1.00x (?)
ArrayAppendRepeatCol 221932 212776 -4.1% 1.04x
ArrayAppendSequence 75548 76243 +0.9% 0.99x (?)
ArrayAppendStrings 13644 13539 -0.8% 1.01x (?)
ArrayAppendToFromGeneric 655 635 -3.1% 1.03x (?)
ArrayAppendToGeneric 636 635 -0.2% 1.00x (?)
ArrayAppendUTF16 103509 103365 -0.1% 1.00x (?)
ArrayInClass 4597 4594 -0.1% 1.00x (?)
ArrayLiteral 1409 1435 +1.8% 0.98x (?)
ArrayOfGenericPOD 3254 3108 -4.5% 1.05x
ArrayOfGenericRef 9943 9884 -0.6% 1.01x
ArrayOfPOD 1951 1890 -3.1% 1.03x
ArrayOfRef 8759 9024 +3.0% 0.97x (?)
ArrayPlusEqualArrayOfInt 653 652 -0.2% 1.00x (?)
ArrayPlusEqualFiveElementCollection 293738 288218 -1.9% 1.02x (?)
ArrayPlusEqualSingleElementCollection 289120 284137 -1.7% 1.02x (?)
ArrayPlusEqualThreeElements 10474 10562 +0.8% 0.99x (?)
ArraySubscript 4043 4026 -0.4% 1.00x (?)
ArrayValueProp 2931 2930 -0.0% 1.00x (?)
ArrayValueProp2 3649 3789 +3.8% 0.96x
ArrayValueProp3 3434 3479 +1.3% 0.99x (?)
ArrayValueProp4 3368 3386 +0.5% 0.99x (?)
BitCount 877 872 -0.6% 1.01x
ByteSwap 261 265 +1.5% 0.98x (?)
CStringLongNonAscii 4296 4336 +0.9% 0.99x (?)
CStringShortAscii 9100 9407 +3.4% 0.97x (?)
Calculator 978 986 +0.8% 0.99x (?)
CaptureProp 116253 111215 -4.3% 1.05x
CharacterLiteralsSmall 971 970 -0.1% 1.00x (?)
Chars 7372 7613 +3.3% 0.97x
ClassArrayGetter 930 932 +0.2% 1.00x (?)
DeadArray 118875 119257 +0.3% 1.00x (?)
Dictionary 2012 2035 +1.1% 0.99x (?)
Dictionary2 3865 3945 +2.1% 0.98x (?)
Dictionary2OfObjects 6189 6329 +2.3% 0.98x (?)
Dictionary3 1497 1515 +1.2% 0.99x (?)
Dictionary3OfObjects 2382 2377 -0.2% 1.00x (?)
DictionaryBridge 2917 2941 +0.8% 0.99x (?)
DictionaryLiteral 13170 13191 +0.2% 1.00x (?)
DictionaryOfObjects 4930 4999 +1.4% 0.99x (?)
DictionaryRemove 21028 21043 +0.1% 1.00x (?)
DictionaryRemoveOfObjects 55165 55632 +0.8% 0.99x (?)
DictionarySwap 5526 5449 -1.4% 1.01x (?)
DictionarySwapOfObjects 20179 20419 +1.2% 0.99x (?)
DropFirstAnyCollection 19670 19596 -0.4% 1.00x (?)
DropFirstAnyCollectionLazy 144050 140527 -2.4% 1.03x (?)
DropFirstAnySeqCRangeIter 30833 30278 -1.8% 1.02x (?)
DropFirstAnySeqCRangeIterLazy 31018 30703 -1.0% 1.01x
DropFirstAnySeqCntRange 20047 19996 -0.3% 1.00x (?)
DropFirstAnySeqCntRangeLazy 20071 19986 -0.4% 1.00x (?)
DropFirstAnySequence 14510 13998 -3.5% 1.04x
DropFirstAnySequenceLazy 14002 14048 +0.3% 1.00x (?)
DropFirstArray 6166 6310 +2.3% 0.98x (?)
DropFirstArrayLazy 46705 45121 -3.4% 1.04x (?)
DropFirstCountableRange 348 340 -2.3% 1.02x (?)
DropFirstCountableRangeLazy 40192 40877 +1.7% 0.98x (?)
DropFirstSequence 13778 13350 -3.1% 1.03x
DropFirstSequenceLazy 12826 13089 +2.1% 0.98x (?)
DropLastAnyCollection 6598 6545 -0.8% 1.01x (?)
DropLastAnyCollectionLazy 46931 46603 -0.7% 1.01x (?)
DropLastAnySeqCRangeIter 43876 43585 -0.7% 1.01x (?)
DropLastAnySeqCRangeIterLazy 44467 45596 +2.5% 0.98x (?)
DropLastAnySeqCntRange 6704 6459 -3.7% 1.04x
DropLastAnySeqCntRangeLazy 6719 6521 -2.9% 1.03x (?)
DropLastAnySequence 28977 29019 +0.1% 1.00x (?)
DropLastAnySequenceLazy 29222 29186 -0.1% 1.00x (?)
DropLastArray 2056 2111 +2.7% 0.97x (?)
DropLastArrayLazy 15119 15217 +0.6% 0.99x (?)
DropLastCountableRange 119 119 +0.0% 1.00x
DropLastCountableRangeLazy 13503 13589 +0.6% 0.99x (?)
DropLastSequence 29540 28716 -2.8% 1.03x (?)
DropLastSequenceLazy 28566 28586 +0.1% 1.00x (?)
DropWhileAnyCollection 25644 25359 -1.1% 1.01x (?)
DropWhileAnyCollectionLazy 28530 28033 -1.7% 1.02x (?)
DropWhileAnySeqCRangeIter 32957 32829 -0.4% 1.00x (?)
DropWhileAnySeqCRangeIterLazy 28186 27925 -0.9% 1.01x (?)
DropWhileAnySeqCntRange 26160 25847 -1.2% 1.01x (?)
DropWhileAnySeqCntRangeLazy 28188 27922 -0.9% 1.01x (?)
DropWhileAnySequence 16245 16199 -0.3% 1.00x (?)
DropWhileAnySequenceLazy 12453 12471 +0.1% 1.00x (?)
DropWhileArray 9872 9940 +0.7% 0.99x (?)
DropWhileArrayLazy 17113 16855 -1.5% 1.02x (?)
DropWhileCountableRange 6264 6094 -2.7% 1.03x (?)
DropWhileCountableRangeLazy 27213 27378 +0.6% 0.99x (?)
DropWhileSequence 15263 15435 +1.1% 0.99x (?)
DropWhileSequenceLazy 11469 11444 -0.2% 1.00x (?)
ErrorHandling 3940 3948 +0.2% 1.00x (?)
GlobalClass 0 0 +0.0% 1.00x
Hanoi 17656 17435 -1.3% 1.01x
HashQuadratic 49957658 49730780 -0.5% 1.00x (?)
HashTest 19100 18739 -1.9% 1.02x (?)
Histogram 8733 8708 -0.3% 1.00x (?)
Integrate 414 402 -2.9% 1.03x
IterateData 12652 12607 -0.4% 1.00x (?)
Join 1256 1273 +1.4% 0.99x
LazilyFilteredArrays 1701763 1689968 -0.7% 1.01x (?)
LazilyFilteredRange 706716 697655 -1.3% 1.01x (?)
LinkedList 31311 31308 -0.0% 1.00x (?)
MapReduce 36260 35977 -0.8% 1.01x (?)
MapReduceAnyCollection 37836 37266 -1.5% 1.02x (?)
MapReduceAnyCollectionShort 49892 50707 +1.6% 0.98x (?)
MapReduceClass 42239 42028 -0.5% 1.01x (?)
MapReduceClassShort 53224 53138 -0.2% 1.00x (?)
MapReduceLazyCollection 32868 32843 -0.1% 1.00x (?)
MapReduceLazyCollectionShort 44548 44570 +0.0% 1.00x (?)
MapReduceLazySequence 26251 25435 -3.1% 1.03x (?)
MapReduceSequence 41216 40980 -0.6% 1.01x (?)
MapReduceShort 51016 50552 -0.9% 1.01x (?)
MapReduceShortString 284 282 -0.7% 1.01x (?)
MapReduceString 2618 2608 -0.4% 1.00x (?)
Memset 41514 41528 +0.0% 1.00x (?)
MonteCarloE 135239 132603 -1.9% 1.02x (?)
MonteCarloPi 50872 49626 -2.4% 1.03x (?)
NSDictionaryCastToSwift 6415 6328 -1.4% 1.01x (?)
NSError 732 732 +0.0% 1.00x
NSStringConversion 1359 1385 +1.9% 0.98x
NopDeinit 51909 52582 +1.3% 0.99x (?)
ObjectAllocation 633 634 +0.2% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObject 25347 25934 +2.3% 0.98x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 8053 8131 +1.0% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 46706 46116 -1.3% 1.01x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 40159 41041 +2.2% 0.98x
ObjectiveCBridgeFromNSDictionaryAnyObject 129350 126186 -2.4% 1.03x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 7465 7441 -0.3% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 109917 111715 +1.6% 0.98x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 104967 103402 -1.5% 1.02x (?)
ObjectiveCBridgeFromNSSetAnyObject 69833 69746 -0.1% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 7119 7471 +4.9% 0.95x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 89221 91166 +2.2% 0.98x (?)
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 79702 77032 -3.3% 1.03x (?)
ObjectiveCBridgeFromNSString 4146 4117 -0.7% 1.01x (?)
ObjectiveCBridgeFromNSStringForced 2919 2839 -2.7% 1.03x (?)
ObjectiveCBridgeStubDataAppend 3770 3852 +2.2% 0.98x (?)
ObjectiveCBridgeStubDateAccess 1014 1051 +3.6% 0.96x
ObjectiveCBridgeStubDateMutation 516 511 -1.0% 1.01x (?)
ObjectiveCBridgeStubFromArrayOfNSString 29732 29924 +0.6% 0.99x (?)
ObjectiveCBridgeStubFromNSDateRef 4194 4046 -3.5% 1.04x (?)
ObjectiveCBridgeStubFromNSString 990 1025 +3.5% 0.97x (?)
ObjectiveCBridgeStubFromNSStringRef 218 213 -2.3% 1.02x
ObjectiveCBridgeStubNSDataAppend 2714 2642 -2.7% 1.03x (?)
ObjectiveCBridgeStubNSDateMutationRef 14980 15299 +2.1% 0.98x (?)
ObjectiveCBridgeStubNSDateRefAccess 1218 1223 +0.4% 1.00x (?)
ObjectiveCBridgeStubToArrayOfNSString 31156 30547 -2.0% 1.02x (?)
ObjectiveCBridgeStubToNSDate 15140 15654 +3.4% 0.97x (?)
ObjectiveCBridgeStubToNSDateRef 3385 3304 -2.4% 1.02x (?)
ObjectiveCBridgeStubToNSString 1524 1521 -0.2% 1.00x
ObjectiveCBridgeStubToNSStringRef 145 145 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 232278 235054 +1.2% 0.99x (?)
ObjectiveCBridgeStubURLAppendPathRef 240568 242007 +0.6% 0.99x (?)
ObjectiveCBridgeToNSArray 29539 29515 -0.1% 1.00x (?)
ObjectiveCBridgeToNSDictionary 63773 64322 +0.9% 0.99x (?)
ObjectiveCBridgeToNSSet 40996 41046 +0.1% 1.00x (?)
ObjectiveCBridgeToNSString 1310 1308 -0.2% 1.00x (?)
ObserverClosure 6646 6509 -2.1% 1.02x (?)
ObserverForwarderStruct 4623 4595 -0.6% 1.01x (?)
ObserverPartiallyAppliedMethod 7880 7931 +0.6% 0.99x (?)
ObserverUnappliedMethod 8444 8436 -0.1% 1.00x (?)
OpenClose 417 414 -0.7% 1.01x (?)
Phonebook 25270 26512 +4.9% 0.95x
PolymorphicCalls 2980 2988 +0.3% 1.00x (?)
PopFrontArray 9792 10035 +2.5% 0.98x (?)
PopFrontArrayGeneric 8787 8859 +0.8% 0.99x (?)
PopFrontUnsafePointer 102400 101641 -0.7% 1.01x (?)
PrefixAnyCollection 20887 20092 -3.8% 1.04x
PrefixAnyCollectionLazy 138424 139631 +0.9% 0.99x (?)
PrefixAnySeqCRangeIter 24389 24366 -0.1% 1.00x (?)
PrefixAnySeqCRangeIterLazy 24964 24208 -3.0% 1.03x (?)
PrefixAnySeqCntRange 20063 19992 -0.4% 1.00x
PrefixAnySeqCntRangeLazy 20091 20000 -0.5% 1.00x
PrefixAnySequence 11878 12185 +2.6% 0.97x (?)
PrefixAnySequenceLazy 12203 11779 -3.5% 1.04x
PrefixArray 6231 6310 +1.3% 0.99x (?)
PrefixArrayLazy 45376 45291 -0.2% 1.00x (?)
PrefixCountableRange 349 345 -1.1% 1.01x (?)
PrefixCountableRangeLazy 40363 39801 -1.4% 1.01x (?)
PrefixSequence 10933 11044 +1.0% 0.99x (?)
PrefixSequenceLazy 10756 10824 +0.6% 0.99x (?)
PrefixWhileAnyCollection 38140 37922 -0.6% 1.01x (?)
PrefixWhileAnyCollectionLazy 23461 23161 -1.3% 1.01x (?)
PrefixWhileAnySeqCRangeIter 41886 40580 -3.1% 1.03x (?)
PrefixWhileAnySeqCRangeIterLazy 23305 23039 -1.1% 1.01x (?)
PrefixWhileAnySeqCntRange 36815 37704 +2.4% 0.98x (?)
PrefixWhileAnySeqCntRangeLazy 23274 23021 -1.1% 1.01x
PrefixWhileAnySequence 29541 29598 +0.2% 1.00x (?)
PrefixWhileAnySequenceLazy 11239 11366 +1.1% 0.99x (?)
PrefixWhileArray 16961 17010 +0.3% 1.00x (?)
PrefixWhileArrayLazy 14888 15294 +2.7% 0.97x
PrefixWhileCountableRange 18306 17574 -4.0% 1.04x (?)
PrefixWhileCountableRangeLazy 22625 22395 -1.0% 1.01x (?)
PrefixWhileSequence 28874 28333 -1.9% 1.02x (?)
PrefixWhileSequenceLazy 10295 10462 +1.6% 0.98x (?)
Prims 8960 8939 -0.2% 1.00x (?)
ProtocolDispatch 7037 7009 -0.4% 1.00x (?)
ProtocolDispatch2 522 521 -0.2% 1.00x
RC4 19964 19624 -1.7% 1.02x (?)
RGBHistogram 34027 33992 -0.1% 1.00x (?)
RGBHistogramOfObjects 95720 93812 -2.0% 1.02x (?)
RangeAssignment 5774 5765 -0.2% 1.00x (?)
RecursiveOwnedParameter 9185 9119 -0.7% 1.01x (?)
ReversedArray 590 591 +0.2% 1.00x (?)
ReversedBidirectional 77159 75592 -2.0% 1.02x (?)
ReversedDictionary 25782 25812 +0.1% 1.00x (?)
SetExclusiveOr 20951 21045 +0.4% 1.00x (?)
SetExclusiveOr_OfObjects 41444 41416 -0.1% 1.00x (?)
SetIntersect 10756 10765 +0.1% 1.00x (?)
SetIntersect_OfObjects 11676 11644 -0.3% 1.00x
SetIsSubsetOf 1627 1669 +2.6% 0.97x (?)
SetIsSubsetOf_OfObjects 1530 1506 -1.6% 1.02x
SetUnion 12020 11951 -0.6% 1.01x (?)
SetUnion_OfObjects 29211 29062 -0.5% 1.01x (?)
SevenBoom 1608 1589 -1.2% 1.01x (?)
Sim2DArray 30019 29137 -2.9% 1.03x (?)
SortLargeExistentials 17824 17357 -2.6% 1.03x (?)
SortLettersInPlace 2914 2920 +0.2% 1.00x (?)
SortSortedStrings 1448 1452 +0.3% 1.00x
SortStrings 2515 2544 +1.2% 0.99x (?)
SortStringsUnicode 9135 9045 -1.0% 1.01x (?)
StackPromo 102629 104217 +1.5% 0.98x (?)
StaticArray 4753 4855 +2.1% 0.98x (?)
StrComplexWalk 6022 6036 +0.2% 1.00x (?)
StrToInt 8347 8744 +4.8% 0.95x
StringAdder 48 46 -4.2% 1.04x
StringBuilder 2792 2806 +0.5% 1.00x (?)
StringBuilderLong 1108 1112 +0.4% 1.00x (?)
StringEdits 696819 700467 +0.5% 0.99x (?)
StringEqualPointerComparison 9920 9706 -2.2% 1.02x (?)
StringHasPrefix 1749 1815 +3.8% 0.96x
StringHasSuffixUnicode 65185 65739 +0.8% 0.99x (?)
StringMatch 39798 40435 +1.6% 0.98x (?)
StringUTF16Builder 3752 3605 -3.9% 1.04x (?)
StringWalk 22743 23159 +1.8% 0.98x
StringWithCString 317771 317830 +0.0% 1.00x (?)
SuffixAnyCollection 6432 6554 +1.9% 0.98x (?)
SuffixAnyCollectionLazy 46712 46671 -0.1% 1.00x (?)
SuffixAnySeqCRangeIter 41641 41266 -0.9% 1.01x (?)
SuffixAnySeqCRangeIterLazy 41960 42868 +2.2% 0.98x (?)
SuffixAnySeqCntRange 6706 6661 -0.7% 1.01x (?)
SuffixAnySeqCntRangeLazy 6898 6664 -3.4% 1.04x
SuffixAnySequence 26762 26719 -0.2% 1.00x (?)
SuffixAnySequenceLazy 27036 26984 -0.2% 1.00x (?)
SuffixArray 2056 2113 +2.8% 0.97x (?)
SuffixArrayLazy 15109 15158 +0.3% 1.00x (?)
SuffixCountableRange 123 120 -2.4% 1.02x (?)
SuffixCountableRangeLazy 13853 13362 -3.5% 1.04x (?)
SuffixSequence 26557 26402 -0.6% 1.01x (?)
SuffixSequenceLazy 26374 26335 -0.1% 1.00x (?)
TwoSum 4429 4384 -1.0% 1.01x (?)
UTF8Decode 35949 36224 +0.8% 0.99x (?)
Walsh 11589 11527 -0.5% 1.01x (?)
XorLoop 22498 23009 +2.3% 0.98x (?)
**Hardware Overview** Model Name: Mac mini Model Identifier: Macmini7,1 Processor Name: Intel Core i7 Processor Speed: 3 GHz Number of Processors: 1 Total Number of Cores: 2 L2 Cache (per Core): 256 KB L3 Cache: 4 MB Memory: 16 GB

@dabrahams
Copy link
Contributor Author

@swift-ci Please smoke test

@dabrahams
Copy link
Contributor Author

@swift-ci Please smoke test linux platform

@dabrahams
Copy link
Contributor Author

@swift-ci Please smoke test OS X platform

@swift-ci
Copy link
Contributor

swift-ci commented May 2, 2017

Build comment file:

Optimized (O)

Regression (16)
TEST OLD NEW DELTA SPEEDUP
BitCount 0 1 +100000.0% 0.00x
ArrayAppendAscii 19991 27211 +36.1% 0.73x
StringEdits 403963 516452 +27.8% 0.78x
StrToInt 4519 5532 +22.4% 0.82x
OpenClose 48 57 +18.7% 0.84x
PrefixArrayLazy 29 33 +13.8% 0.88x
DropLastCountableRange 8 9 +12.5% 0.89x
MapReduceAnyCollection 305 330 +8.2% 0.92x
ArrayAppendLatin1 46059 49753 +8.0% 0.93x
ArrayAppendUTF16 43849 46865 +6.9% 0.94x
SuperChars 272252 290083 +6.5% 0.94x
StringHasPrefix 722 764 +5.8% 0.95x
LazilyFilteredRange 3935 4161 +5.7% 0.95x
CaptureProp 4589 4852 +5.7% 0.95x
NopDeinit 27441 28954 +5.5% 0.95x
ObjectiveCBridgeStubNSDataAppend 2249 2369 +5.3% 0.95x
Improvement (17)
TEST OLD NEW DELTA SPEEDUP
StringWithCString 331900 158768 -52.2% 2.09x
CStringLongAscii 13841 6686 -51.7% 2.07x
CStringLongNonAscii 4247 2641 -37.8% 1.61x
CStringShortAscii 6098 4957 -18.7% 1.23x
CharacterLiteralsLarge 10643 8724 -18.0% 1.22x
DropFirstArrayLazy 33 29 -12.1% 1.14x
DropWhileSequenceLazy 76 67 -11.8% 1.13x
DictionaryRemove 3683 3272 -11.2% 1.13x
StringMatch 17706 15899 -10.2% 1.11x
ProtocolDispatch 3031 2727 -10.0% 1.11x
ObjectiveCBridgeStubNSDateRefAccess 348 316 -9.2% 1.10x
SortSortedStrings 887 815 -8.1% 1.09x
Hanoi 3553 3295 -7.3% 1.08x
DropWhileArray 46 43 -6.5% 1.07x
SortStrings 1727 1619 -6.3% 1.07x
ReversedArray 53 50 -5.7% 1.06x
UTF8Decode 275 261 -5.1% 1.05x
No Changes (236)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 2911 2916 +0.2% 1.00x (?)
AnyHashableWithAClass 67571 66974 -0.9% 1.01x (?)
Array2D 1994 2030 +1.8% 0.98x (?)
ArrayAppend 773 774 +0.1% 1.00x (?)
ArrayAppendArrayOfInt 596 597 +0.2% 1.00x
ArrayAppendFromGeneric 596 597 +0.2% 1.00x
ArrayAppendGenericStructs 1226 1229 +0.2% 1.00x (?)
ArrayAppendLazyMap 941 962 +2.2% 0.98x (?)
ArrayAppendOptionals 1232 1242 +0.8% 0.99x (?)
ArrayAppendRepeatCol 838 838 +0.0% 1.00x
ArrayAppendReserved 532 534 +0.4% 1.00x
ArrayAppendSequence 948 945 -0.3% 1.00x
ArrayAppendStrings 13722 13634 -0.6% 1.01x
ArrayAppendToFromGeneric 597 597 +0.0% 1.00x
ArrayAppendToGeneric 597 596 -0.2% 1.00x
ArrayInClass 69 67 -2.9% 1.03x (?)
ArrayLiteral 1218 1217 -0.1% 1.00x (?)
ArrayOfGenericPOD 219 219 +0.0% 1.00x
ArrayOfGenericRef 4009 4016 +0.2% 1.00x (?)
ArrayOfPOD 166 166 +0.0% 1.00x
ArrayOfRef 3900 3900 +0.0% 1.00x
ArrayPlusEqualArrayOfInt 596 596 +0.0% 1.00x
ArrayPlusEqualFiveElementCollection 4668 4644 -0.5% 1.01x (?)
ArrayPlusEqualSingleElementCollection 775 775 +0.0% 1.00x
ArrayPlusEqualThreeElements 1622 1613 -0.6% 1.01x
ArraySubscript 1487 1507 +1.3% 0.99x
ArrayValueProp 6 6 +0.0% 1.00x
ArrayValueProp2 6 6 +0.0% 1.00x
ArrayValueProp3 6 6 +0.0% 1.00x
ArrayValueProp4 6 6 +0.0% 1.00x
ByteSwap 0 0 +0.0% 1.00x
Calculator 43 43 +0.0% 1.00x
CharacterLiteralsSmall 779 778 -0.1% 1.00x
Chars 1394 1388 -0.4% 1.00x
ClassArrayGetter 14 14 +0.0% 1.00x
DeadArray 183 184 +0.5% 0.99x (?)
Dictionary 841 852 +1.3% 0.99x (?)
Dictionary2 2083 2116 +1.6% 0.98x
Dictionary2OfObjects 3647 3641 -0.2% 1.00x (?)
Dictionary3 598 603 +0.8% 0.99x (?)
Dictionary3OfObjects 1088 1089 +0.1% 1.00x (?)
DictionaryBridge 2840 2853 +0.5% 1.00x (?)
DictionaryLiteral 1499 1488 -0.7% 1.01x
DictionaryOfObjects 2710 2697 -0.5% 1.00x (?)
DictionaryRemoveOfObjects 23479 23448 -0.1% 1.00x (?)
DictionarySwap 370 370 +0.0% 1.00x
DictionarySwapOfObjects 6939 6900 -0.6% 1.01x (?)
DropFirstAnyCollection 127 127 +0.0% 1.00x
DropFirstAnyCollectionLazy 44733 44982 +0.6% 0.99x (?)
DropFirstAnySeqCRangeIter 27753 27565 -0.7% 1.01x
DropFirstAnySeqCRangeIterLazy 27763 27437 -1.2% 1.01x (?)
DropFirstAnySeqCntRange 115 116 +0.9% 0.99x
DropFirstAnySeqCntRangeLazy 115 115 +0.0% 1.00x
DropFirstAnySequence 6788 6780 -0.1% 1.00x (?)
DropFirstAnySequenceLazy 6756 6771 +0.2% 1.00x
DropFirstArray 29 29 +0.0% 1.00x
DropFirstCountableRange 23 23 +0.0% 1.00x
DropFirstCountableRangeLazy 23 23 +0.0% 1.00x
DropFirstSequence 3067 3067 +0.0% 1.00x
DropFirstSequenceLazy 3031 3030 -0.0% 1.00x
DropLastAnyCollection 52 52 +0.0% 1.00x
DropLastAnyCollectionLazy 14984 14975 -0.1% 1.00x (?)
DropLastAnySeqCRangeIter 4604 4619 +0.3% 1.00x
DropLastAnySeqCRangeIterLazy 4606 4617 +0.2% 1.00x
DropLastAnySeqCntRange 40 40 +0.0% 1.00x
DropLastAnySeqCntRangeLazy 40 40 +0.0% 1.00x
DropLastAnySequence 6663 6694 +0.5% 1.00x (?)
DropLastAnySequenceLazy 6532 6529 -0.0% 1.00x (?)
DropLastArray 10 10 +0.0% 1.00x
DropLastArrayLazy 10 10 +0.0% 1.00x
DropLastCountableRangeLazy 8 8 +0.0% 1.00x
DropLastSequence 514 530 +3.1% 0.97x
DropLastSequenceLazy 516 533 +3.3% 0.97x
DropWhileAnyCollection 134 133 -0.7% 1.01x
DropWhileAnyCollectionLazy 96 96 +0.0% 1.00x
DropWhileAnySeqCRangeIter 22356 22167 -0.8% 1.01x
DropWhileAnySeqCRangeIterLazy 96 96 +0.0% 1.00x
DropWhileAnySeqCntRange 128 128 +0.0% 1.00x
DropWhileAnySeqCntRangeLazy 96 96 +0.0% 1.00x
DropWhileAnySequence 7584 7645 +0.8% 0.99x
DropWhileAnySequenceLazy 2109 2108 -0.0% 1.00x
DropWhileArrayLazy 80 80 +0.0% 1.00x
DropWhileCountableRange 35 36 +2.9% 0.97x
DropWhileCountableRangeLazy 79 79 +0.0% 1.00x
DropWhileSequence 3094 3124 +1.0% 0.99x
ErrorHandling 2923 2923 +0.0% 1.00x
GlobalClass 0 0 +0.0% 1.00x
HashQuadratic 6325891 6041551 -4.5% 1.05x
HashTest 1727 1742 +0.9% 0.99x
Histogram 250 246 -1.6% 1.02x
Integrate 262 262 +0.0% 1.00x
IterateData 762 766 +0.5% 0.99x
Join 439 436 -0.7% 1.01x (?)
LazilyFilteredArrays 63948 63846 -0.2% 1.00x (?)
LinkedList 7065 7087 +0.3% 1.00x
MapReduce 333 330 -0.9% 1.01x
MapReduceAnyCollectionShort 2029 2007 -1.1% 1.01x (?)
MapReduceClass 3059 3059 +0.0% 1.00x
MapReduceClassShort 4590 4558 -0.7% 1.01x (?)
MapReduceLazyCollection 15 15 +0.0% 1.00x
MapReduceLazyCollectionShort 44 45 +2.3% 0.98x
MapReduceLazySequence 90 90 +0.0% 1.00x
MapReduceSequence 466 463 -0.6% 1.01x (?)
MapReduceShort 1944 1934 -0.5% 1.01x
MapReduceShortString 18 18 +0.0% 1.00x
MapReduceString 72 71 -1.4% 1.01x (?)
Memset 235 234 -0.4% 1.00x
MonteCarloE 10292 10355 +0.6% 0.99x
MonteCarloPi 43995 43945 -0.1% 1.00x
NSDictionaryCastToSwift 5337 5352 +0.3% 1.00x (?)
NSError 290 290 +0.0% 1.00x
NSStringConversion 744 742 -0.3% 1.00x (?)
ObjectAllocation 185 181 -2.2% 1.02x (?)
ObjectiveCBridgeFromNSArrayAnyObject 23420 23374 -0.2% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 4486 4544 +1.3% 0.99x
ObjectiveCBridgeFromNSArrayAnyObjectToString 43970 44294 +0.7% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 37694 38039 +0.9% 0.99x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 123888 122520 -1.1% 1.01x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 4958 4937 -0.4% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 102795 105839 +3.0% 0.97x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 98520 97963 -0.6% 1.01x (?)
ObjectiveCBridgeFromNSSetAnyObject 64650 64837 +0.3% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 4122 4165 +1.0% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 81709 80429 -1.6% 1.02x (?)
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 73092 72455 -0.9% 1.01x (?)
ObjectiveCBridgeFromNSString 1423 1437 +1.0% 0.99x
ObjectiveCBridgeFromNSStringForced 2367 2362 -0.2% 1.00x (?)
ObjectiveCBridgeStubDataAppend 3857 3799 -1.5% 1.02x (?)
ObjectiveCBridgeStubDateAccess 181 182 +0.6% 0.99x
ObjectiveCBridgeStubDateMutation 272 272 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 28844 28591 -0.9% 1.01x (?)
ObjectiveCBridgeStubFromNSDate 3623 3553 -1.9% 1.02x
ObjectiveCBridgeStubFromNSDateRef 3642 3582 -1.6% 1.02x
ObjectiveCBridgeStubFromNSString 909 903 -0.7% 1.01x
ObjectiveCBridgeStubFromNSStringRef 179 174 -2.8% 1.03x
ObjectiveCBridgeStubNSDateMutationRef 12999 12608 -3.0% 1.03x (?)
ObjectiveCBridgeStubToArrayOfNSString 29372 28662 -2.4% 1.02x (?)
ObjectiveCBridgeStubToNSDate 14989 15003 +0.1% 1.00x (?)
ObjectiveCBridgeStubToNSDateRef 3399 3366 -1.0% 1.01x (?)
ObjectiveCBridgeStubToNSString 1513 1516 +0.2% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 108 109 +0.9% 0.99x
ObjectiveCBridgeStubURLAppendPath 213233 216518 +1.5% 0.98x (?)
ObjectiveCBridgeStubURLAppendPathRef 215770 218346 +1.2% 0.99x (?)
ObjectiveCBridgeToNSArray 29000 29033 +0.1% 1.00x
ObjectiveCBridgeToNSDictionary 61615 61874 +0.4% 1.00x (?)
ObjectiveCBridgeToNSSet 39083 39374 +0.7% 0.99x (?)
ObjectiveCBridgeToNSString 1263 1267 +0.3% 1.00x (?)
ObserverClosure 2292 2266 -1.1% 1.01x
ObserverForwarderStruct 1142 1137 -0.4% 1.00x (?)
ObserverPartiallyAppliedMethod 3840 3796 -1.1% 1.01x
ObserverUnappliedMethod 2736 2808 +2.6% 0.97x
Phonebook 9816 9452 -3.7% 1.04x
PolymorphicCalls 21 22 +4.8% 0.95x
PopFrontArray 1075 1077 +0.2% 1.00x (?)
PopFrontArrayGeneric 1073 1073 +0.0% 1.00x
PopFrontUnsafePointer 8887 8867 -0.2% 1.00x
PrefixAnyCollection 127 127 +0.0% 1.00x
PrefixAnyCollectionLazy 44915 45017 +0.2% 1.00x
PrefixAnySeqCRangeIter 21871 21712 -0.7% 1.01x
PrefixAnySeqCRangeIterLazy 21872 21710 -0.7% 1.01x (?)
PrefixAnySeqCntRange 116 115 -0.9% 1.01x
PrefixAnySeqCntRangeLazy 115 115 +0.0% 1.00x
PrefixAnySequence 6096 6089 -0.1% 1.00x
PrefixAnySequenceLazy 6071 6089 +0.3% 1.00x
PrefixArray 29 29 +0.0% 1.00x
PrefixCountableRange 23 23 +0.0% 1.00x
PrefixCountableRangeLazy 23 23 +0.0% 1.00x
PrefixSequence 2637 2637 +0.0% 1.00x
PrefixSequenceLazy 2600 2600 +0.0% 1.00x
PrefixWhileAnyCollection 160 161 +0.6% 0.99x
PrefixWhileAnyCollectionLazy 77 77 +0.0% 1.00x
PrefixWhileAnySeqCRangeIter 12512 12517 +0.0% 1.00x
PrefixWhileAnySeqCRangeIterLazy 77 77 +0.0% 1.00x
PrefixWhileAnySeqCntRange 154 154 +0.0% 1.00x
PrefixWhileAnySeqCntRangeLazy 77 77 +0.0% 1.00x
PrefixWhileAnySequence 13997 14034 +0.3% 1.00x
PrefixWhileAnySequenceLazy 1587 1587 +0.0% 1.00x
PrefixWhileArray 66 66 +0.0% 1.00x
PrefixWhileArrayLazy 58 58 +0.0% 1.00x
PrefixWhileCountableRange 36 35 -2.8% 1.03x
PrefixWhileCountableRangeLazy 23 23 +0.0% 1.00x
PrefixWhileSequence 403 403 +0.0% 1.00x
PrefixWhileSequenceLazy 39 39 +0.0% 1.00x
Prims 788 769 -2.4% 1.02x
ProtocolDispatch2 168 168 +0.0% 1.00x
RC4 169 170 +0.6% 0.99x
RGBHistogram 2284 2315 +1.4% 0.99x
RGBHistogramOfObjects 24159 24031 -0.5% 1.01x
RangeAssignment 323 318 -1.5% 1.02x (?)
RecursiveOwnedParameter 2320 2312 -0.3% 1.00x
ReversedBidirectional 29302 29382 +0.3% 1.00x (?)
ReversedDictionary 110 111 +0.9% 0.99x (?)
SetExclusiveOr 2936 2981 +1.5% 0.98x (?)
SetExclusiveOr_OfObjects 9591 9602 +0.1% 1.00x (?)
SetIntersect 281 273 -2.8% 1.03x
SetIntersect_OfObjects 1736 1739 +0.2% 1.00x (?)
SetIsSubsetOf 286 286 +0.0% 1.00x
SetIsSubsetOf_OfObjects 359 359 +0.0% 1.00x
SetUnion 2630 2653 +0.9% 0.99x (?)
SetUnion_OfObjects 8082 8149 +0.8% 0.99x
SevenBoom 1468 1464 -0.3% 1.00x (?)
Sim2DArray 276 276 +0.0% 1.00x
SortLargeExistentials 8348 8276 -0.9% 1.01x
SortLettersInPlace 1149 1147 -0.2% 1.00x (?)
SortStringsUnicode 7778 7682 -1.2% 1.01x
StackPromo 22050 22062 +0.1% 1.00x (?)
StaticArray 21 21 +0.0% 1.00x
StrComplexWalk 987 984 -0.3% 1.00x
StringAdder 0 0 +0.0% 1.00x
StringBuilder 1373 1347 -1.9% 1.02x
StringBuilderLong 940 924 -1.7% 1.02x
StringEqualPointerComparison 7284 7284 +0.0% 1.00x
StringHasPrefixUnicode 14769 14643 -0.9% 1.01x
StringHasSuffix 798 818 +2.5% 0.98x
StringHasSuffixUnicode 61723 61529 -0.3% 1.00x
StringInterpolation 8561 8311 -2.9% 1.03x
StringUTF16Builder 2125 2145 +0.9% 0.99x (?)
StringWalk 6134 6139 +0.1% 1.00x (?)
SuffixAnyCollection 53 52 -1.9% 1.02x
SuffixAnyCollectionLazy 15022 15020 -0.0% 1.00x (?)
SuffixAnySeqCRangeIter 4930 4931 +0.0% 1.00x (?)
SuffixAnySeqCRangeIterLazy 4926 4938 +0.2% 1.00x
SuffixAnySeqCntRange 40 41 +2.5% 0.98x
SuffixAnySeqCntRangeLazy 41 41 +0.0% 1.00x
SuffixAnySequence 6686 6679 -0.1% 1.00x (?)
SuffixAnySequenceLazy 6550 6542 -0.1% 1.00x
SuffixArray 10 10 +0.0% 1.00x
SuffixArrayLazy 10 10 +0.0% 1.00x
SuffixCountableRange 8 8 +0.0% 1.00x
SuffixCountableRangeLazy 8 8 +0.0% 1.00x
SuffixSequence 4492 4470 -0.5% 1.00x
SuffixSequenceLazy 4493 4469 -0.5% 1.01x
TwoSum 899 902 +0.3% 1.00x
TypeFlood 0 0 +0.0% 1.00x
Walsh 352 356 +1.1% 0.99x
XorLoop 348 347 -0.3% 1.00x
**Unoptimized (Onone)**
Regression (5)
TEST OLD NEW DELTA SPEEDUP
StringEdits 694184 807336 +16.3% 0.86x
ArrayAppendReserved 3332 3751 +12.6% 0.89x
SuperChars 290094 324624 +11.9% 0.89x
OpenClose 407 435 +6.9% 0.94x
StringHasPrefix 1697 1789 +5.4% 0.95x
Improvement (12)
TEST OLD NEW DELTA SPEEDUP
CStringLongAscii 13022 6922 -46.8% 1.88x
StringWithCString 329150 203118 -38.3% 1.62x
DictionaryLiteral 13201 8362 -36.7% 1.58x
CStringLongNonAscii 4223 2804 -33.6% 1.51x
ArrayAppendAscii 82653 65159 -21.2% 1.27x
ArrayAppendUTF16 102731 85253 -17.0% 1.21x
ArrayAppendLatin1 103915 86827 -16.4% 1.20x
StrToInt 8273 7142 -13.7% 1.16x
CStringShortAscii 9104 8122 -10.8% 1.12x
HashQuadratic 52459005 47922181 -8.6% 1.09x
CharacterLiteralsLarge 10889 9960 -8.5% 1.09x
ObjectiveCBridgeStubFromNSDate 3893 3706 -4.8% 1.05x
No Changes (252)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 3102 3096 -0.2% 1.00x (?)
AnyHashableWithAClass 84941 84916 -0.0% 1.00x (?)
Array2D 607202 607778 +0.1% 1.00x (?)
ArrayAppend 3825 3681 -3.8% 1.04x
ArrayAppendArrayOfInt 653 651 -0.3% 1.00x
ArrayAppendFromGeneric 657 654 -0.5% 1.00x
ArrayAppendGenericStructs 1295 1289 -0.5% 1.00x (?)
ArrayAppendLazyMap 209523 209591 +0.0% 1.00x (?)
ArrayAppendOptionals 1322 1288 -2.6% 1.03x
ArrayAppendRepeatCol 215588 209884 -2.6% 1.03x
ArrayAppendSequence 74953 74269 -0.9% 1.01x
ArrayAppendStrings 13753 13666 -0.6% 1.01x (?)
ArrayAppendToFromGeneric 654 653 -0.2% 1.00x
ArrayAppendToGeneric 655 654 -0.2% 1.00x (?)
ArrayInClass 4734 4736 +0.0% 1.00x
ArrayLiteral 1485 1490 +0.3% 1.00x (?)
ArrayOfGenericPOD 3070 3073 +0.1% 1.00x
ArrayOfGenericRef 9607 9612 +0.1% 1.00x (?)
ArrayOfPOD 1832 1892 +3.3% 0.97x
ArrayOfRef 8729 8780 +0.6% 0.99x
ArrayPlusEqualArrayOfInt 653 651 -0.3% 1.00x
ArrayPlusEqualFiveElementCollection 291482 285273 -2.1% 1.02x
ArrayPlusEqualSingleElementCollection 288609 283411 -1.8% 1.02x (?)
ArrayPlusEqualThreeElements 10436 10183 -2.4% 1.02x (?)
ArraySubscript 4143 4144 +0.0% 1.00x (?)
ArrayValueProp 3009 3006 -0.1% 1.00x (?)
ArrayValueProp2 3741 3708 -0.9% 1.01x
ArrayValueProp3 3443 3440 -0.1% 1.00x (?)
ArrayValueProp4 3340 3348 +0.2% 1.00x
BitCount 875 877 +0.2% 1.00x (?)
ByteSwap 268 265 -1.1% 1.01x (?)
Calculator 984 982 -0.2% 1.00x
CaptureProp 109726 109241 -0.4% 1.00x
CharacterLiteralsSmall 971 972 +0.1% 1.00x
Chars 7359 7407 +0.7% 0.99x (?)
ClassArrayGetter 931 931 +0.0% 1.00x
DeadArray 118958 116912 -1.7% 1.02x (?)
Dictionary 1954 1998 +2.3% 0.98x
Dictionary2 3832 3835 +0.1% 1.00x (?)
Dictionary2OfObjects 6170 6131 -0.6% 1.01x (?)
Dictionary3 1507 1499 -0.5% 1.01x
Dictionary3OfObjects 2378 2372 -0.3% 1.00x (?)
DictionaryBridge 2953 2937 -0.5% 1.01x (?)
DictionaryOfObjects 4978 4906 -1.4% 1.01x (?)
DictionaryRemove 21016 21392 +1.8% 0.98x
DictionaryRemoveOfObjects 54935 54825 -0.2% 1.00x (?)
DictionarySwap 5510 5617 +1.9% 0.98x
DictionarySwapOfObjects 19852 20039 +0.9% 0.99x (?)
DropFirstAnyCollection 19734 19194 -2.7% 1.03x
DropFirstAnyCollectionLazy 138663 138654 -0.0% 1.00x (?)
DropFirstAnySeqCRangeIter 30483 29502 -3.2% 1.03x
DropFirstAnySeqCRangeIterLazy 29975 29867 -0.4% 1.00x
DropFirstAnySeqCntRange 19465 19089 -1.9% 1.02x
DropFirstAnySeqCntRangeLazy 19296 19250 -0.2% 1.00x (?)
DropFirstAnySequence 13816 13964 +1.1% 0.99x
DropFirstAnySequenceLazy 13820 14018 +1.4% 0.99x
DropFirstArray 6177 6187 +0.2% 1.00x (?)
DropFirstArrayLazy 45070 45561 +1.1% 0.99x (?)
DropFirstCountableRange 341 341 +0.0% 1.00x
DropFirstCountableRangeLazy 38693 38210 -1.2% 1.01x
DropFirstSequence 12769 12880 +0.9% 0.99x
DropFirstSequenceLazy 12770 12846 +0.6% 0.99x
DropLastAnyCollection 6603 6398 -3.1% 1.03x
DropLastAnyCollectionLazy 46294 46389 +0.2% 1.00x (?)
DropLastAnySeqCRangeIter 44293 44260 -0.1% 1.00x (?)
DropLastAnySeqCRangeIterLazy 44297 44557 +0.6% 0.99x (?)
DropLastAnySeqCntRange 6501 6381 -1.8% 1.02x
DropLastAnySeqCntRangeLazy 6453 6475 +0.3% 1.00x
DropLastAnySequence 28895 28968 +0.3% 1.00x
DropLastAnySequenceLazy 28887 28970 +0.3% 1.00x
DropLastArray 2068 2072 +0.2% 1.00x (?)
DropLastArrayLazy 15045 15173 +0.9% 0.99x
DropLastCountableRange 119 119 +0.0% 1.00x
DropLastCountableRangeLazy 12907 12756 -1.2% 1.01x (?)
DropLastSequence 28503 28563 +0.2% 1.00x (?)
DropLastSequenceLazy 28608 28693 +0.3% 1.00x (?)
DropWhileAnyCollection 25344 24974 -1.5% 1.01x (?)
DropWhileAnyCollectionLazy 27785 27192 -2.1% 1.02x
DropWhileAnySeqCRangeIter 31996 31712 -0.9% 1.01x (?)
DropWhileAnySeqCRangeIterLazy 27499 27112 -1.4% 1.01x (?)
DropWhileAnySeqCntRange 25203 24905 -1.2% 1.01x
DropWhileAnySeqCntRangeLazy 27393 27170 -0.8% 1.01x (?)
DropWhileAnySequence 15950 16039 +0.6% 0.99x
DropWhileAnySequenceLazy 12361 12421 +0.5% 1.00x
DropWhileArray 9810 9782 -0.3% 1.00x
DropWhileArrayLazy 17000 16882 -0.7% 1.01x
DropWhileCountableRange 6199 6272 +1.2% 0.99x (?)
DropWhileCountableRangeLazy 26513 25901 -2.3% 1.02x
DropWhileSequence 14777 14877 +0.7% 0.99x
DropWhileSequenceLazy 11046 11185 +1.3% 0.99x
ErrorHandling 3829 3878 +1.3% 0.99x (?)
GlobalClass 0 0 +0.0% 1.00x
Hanoi 17462 17552 +0.5% 0.99x (?)
HashTest 18511 18528 +0.1% 1.00x (?)
Histogram 8924 8642 -3.2% 1.03x (?)
Integrate 399 399 +0.0% 1.00x
IterateData 12965 12858 -0.8% 1.01x (?)
Join 1259 1264 +0.4% 1.00x
LazilyFilteredArrays 1691326 1671376 -1.2% 1.01x
LazilyFilteredRange 687812 680535 -1.1% 1.01x
LinkedList 33010 32959 -0.2% 1.00x
MapReduce 37848 37778 -0.2% 1.00x (?)
MapReduceAnyCollection 38112 37818 -0.8% 1.01x
MapReduceAnyCollectionShort 50755 50390 -0.7% 1.01x
MapReduceClass 43166 43020 -0.3% 1.00x
MapReduceClassShort 54165 54422 +0.5% 1.00x
MapReduceLazyCollection 32748 32584 -0.5% 1.01x
MapReduceLazyCollectionShort 44322 44148 -0.4% 1.00x (?)
MapReduceLazySequence 25396 25368 -0.1% 1.00x
MapReduceSequence 40914 40921 +0.0% 1.00x (?)
MapReduceShort 50560 50756 +0.4% 1.00x (?)
MapReduceShortString 275 281 +2.2% 0.98x
MapReduceString 2587 2644 +2.2% 0.98x
Memset 43990 43990 +0.0% 1.00x
MonteCarloE 135672 135318 -0.3% 1.00x
MonteCarloPi 52284 52483 +0.4% 1.00x
NSDictionaryCastToSwift 6461 6341 -1.9% 1.02x (?)
NSError 719 714 -0.7% 1.01x (?)
NSStringConversion 1347 1342 -0.4% 1.00x (?)
NopDeinit 51817 52549 +1.4% 0.99x
ObjectAllocation 635 632 -0.5% 1.00x
ObjectiveCBridgeFromNSArrayAnyObject 25476 25702 +0.9% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 7768 7812 +0.6% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 45587 45143 -1.0% 1.01x
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 39145 38971 -0.4% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 127341 127354 +0.0% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 7769 7436 -4.3% 1.04x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 110927 107706 -2.9% 1.03x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 100040 105203 +5.2% 0.95x (?)
ObjectiveCBridgeFromNSSetAnyObject 67103 67167 +0.1% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 7208 6944 -3.7% 1.04x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 86490 85417 -1.2% 1.01x (?)
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 76840 76233 -0.8% 1.01x (?)
ObjectiveCBridgeFromNSString 4059 4026 -0.8% 1.01x (?)
ObjectiveCBridgeFromNSStringForced 2761 2784 +0.8% 0.99x (?)
ObjectiveCBridgeStubDataAppend 3769 3712 -1.5% 1.02x (?)
ObjectiveCBridgeStubDateAccess 1030 1003 -2.6% 1.03x
ObjectiveCBridgeStubDateMutation 518 515 -0.6% 1.01x
ObjectiveCBridgeStubFromArrayOfNSString 28817 28926 +0.4% 1.00x (?)
ObjectiveCBridgeStubFromNSDateRef 3888 3884 -0.1% 1.00x (?)
ObjectiveCBridgeStubFromNSString 934 950 +1.7% 0.98x
ObjectiveCBridgeStubFromNSStringRef 204 210 +2.9% 0.97x
ObjectiveCBridgeStubNSDataAppend 2616 2739 +4.7% 0.96x
ObjectiveCBridgeStubNSDateMutationRef 15446 15849 +2.6% 0.97x (?)
ObjectiveCBridgeStubNSDateRefAccess 1210 1210 +0.0% 1.00x
ObjectiveCBridgeStubToArrayOfNSString 29234 29238 +0.0% 1.00x (?)
ObjectiveCBridgeStubToNSDate 15068 15677 +4.0% 0.96x
ObjectiveCBridgeStubToNSDateRef 3382 3363 -0.6% 1.01x (?)
ObjectiveCBridgeStubToNSString 1568 1568 +0.0% 1.00x
ObjectiveCBridgeStubToNSStringRef 149 149 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 216087 220893 +2.2% 0.98x (?)
ObjectiveCBridgeStubURLAppendPathRef 221834 220197 -0.7% 1.01x (?)
ObjectiveCBridgeToNSArray 29217 29555 +1.2% 0.99x (?)
ObjectiveCBridgeToNSDictionary 62405 61314 -1.7% 1.02x
ObjectiveCBridgeToNSSet 39458 39936 +1.2% 0.99x (?)
ObjectiveCBridgeToNSString 1309 1308 -0.1% 1.00x
ObserverClosure 6654 6635 -0.3% 1.00x (?)
ObserverForwarderStruct 4689 4680 -0.2% 1.00x (?)
ObserverPartiallyAppliedMethod 8106 8068 -0.5% 1.00x
ObserverUnappliedMethod 8497 8413 -1.0% 1.01x
Phonebook 24563 24490 -0.3% 1.00x (?)
PolymorphicCalls 2882 2922 +1.4% 0.99x
PopFrontArray 9805 9803 -0.0% 1.00x (?)
PopFrontArrayGeneric 8738 8755 +0.2% 1.00x (?)
PopFrontUnsafePointer 97914 97276 -0.7% 1.01x
PrefixAnyCollection 19723 19182 -2.7% 1.03x
PrefixAnyCollectionLazy 136261 140298 +3.0% 0.97x (?)
PrefixAnySeqCRangeIter 24323 23938 -1.6% 1.02x
PrefixAnySeqCRangeIterLazy 24157 23862 -1.2% 1.01x
PrefixAnySeqCntRange 19638 19245 -2.0% 1.02x
PrefixAnySeqCntRangeLazy 19295 19199 -0.5% 1.01x
PrefixAnySequence 11583 11783 +1.7% 0.98x
PrefixAnySequenceLazy 11690 11785 +0.8% 0.99x
PrefixArray 6195 6187 -0.1% 1.00x
PrefixArrayLazy 45066 45835 +1.7% 0.98x
PrefixCountableRange 341 341 +0.0% 1.00x
PrefixCountableRangeLazy 38712 38198 -1.3% 1.01x (?)
PrefixSequence 10582 10725 +1.4% 0.99x
PrefixSequenceLazy 10534 10631 +0.9% 0.99x
PrefixWhileAnyCollection 37079 36227 -2.3% 1.02x (?)
PrefixWhileAnyCollectionLazy 22703 22330 -1.6% 1.02x
PrefixWhileAnySeqCRangeIter 40780 41078 +0.7% 0.99x (?)
PrefixWhileAnySeqCRangeIterLazy 22577 22570 -0.0% 1.00x (?)
PrefixWhileAnySeqCntRange 36919 36203 -1.9% 1.02x
PrefixWhileAnySeqCntRangeLazy 22573 22393 -0.8% 1.01x
PrefixWhileAnySequence 29418 29492 +0.3% 1.00x
PrefixWhileAnySequenceLazy 11195 11168 -0.2% 1.00x (?)
PrefixWhileArray 16894 16825 -0.4% 1.00x
PrefixWhileArrayLazy 14968 14715 -1.7% 1.02x
PrefixWhileCountableRange 17723 17439 -1.6% 1.02x
PrefixWhileCountableRangeLazy 21864 21550 -1.4% 1.01x
PrefixWhileSequence 28307 28292 -0.1% 1.00x
PrefixWhileSequenceLazy 10339 10353 +0.1% 1.00x (?)
Prims 8974 8982 +0.1% 1.00x (?)
ProtocolDispatch 6941 6950 +0.1% 1.00x
ProtocolDispatch2 490 492 +0.4% 1.00x
RC4 19359 19494 +0.7% 0.99x
RGBHistogram 34048 33805 -0.7% 1.01x (?)
RGBHistogramOfObjects 98585 99004 +0.4% 1.00x (?)
RangeAssignment 5752 5773 +0.4% 1.00x (?)
RecursiveOwnedParameter 9629 9631 +0.0% 1.00x (?)
ReversedArray 590 589 -0.2% 1.00x (?)
ReversedBidirectional 74764 75946 +1.6% 0.98x (?)
ReversedDictionary 25851 26088 +0.9% 0.99x (?)
SetExclusiveOr 20998 21116 +0.6% 0.99x
SetExclusiveOr_OfObjects 41414 41367 -0.1% 1.00x (?)
SetIntersect 10681 10824 +1.3% 0.99x
SetIntersect_OfObjects 11464 11234 -2.0% 1.02x
SetIsSubsetOf 1652 1631 -1.3% 1.01x (?)
SetIsSubsetOf_OfObjects 1535 1518 -1.1% 1.01x
SetUnion 11984 12201 +1.8% 0.98x
SetUnion_OfObjects 29637 29645 +0.0% 1.00x (?)
SevenBoom 1625 1604 -1.3% 1.01x
Sim2DArray 30023 30032 +0.0% 1.00x (?)
SortLargeExistentials 17923 17841 -0.5% 1.00x
SortLettersInPlace 2880 2846 -1.2% 1.01x
SortSortedStrings 1409 1410 +0.1% 1.00x
SortStrings 2484 2452 -1.3% 1.01x
SortStringsUnicode 9004 8855 -1.7% 1.02x
StackPromo 102071 102243 +0.2% 1.00x (?)
StaticArray 4690 4554 -2.9% 1.03x
StrComplexWalk 5997 5979 -0.3% 1.00x
StringAdder 42 42 +0.0% 1.00x
StringBuilder 2846 2778 -2.4% 1.02x (?)
StringBuilderLong 1103 1105 +0.2% 1.00x
StringEqualPointerComparison 9896 9736 -1.6% 1.02x
StringHasPrefixUnicode 16420 16237 -1.1% 1.01x
StringHasSuffix 1808 1890 +4.5% 0.96x
StringHasSuffixUnicode 63757 63107 -1.0% 1.01x
StringInterpolation 12131 12129 -0.0% 1.00x (?)
StringMatch 39134 39165 +0.1% 1.00x (?)
StringUTF16Builder 3616 3677 +1.7% 0.98x (?)
StringWalk 21424 21140 -1.3% 1.01x
SuffixAnyCollection 6610 6393 -3.3% 1.03x
SuffixAnyCollectionLazy 45597 46512 +2.0% 0.98x (?)
SuffixAnySeqCRangeIter 41819 42002 +0.4% 1.00x
SuffixAnySeqCRangeIterLazy 41971 42034 +0.2% 1.00x
SuffixAnySeqCntRange 6504 6384 -1.8% 1.02x
SuffixAnySeqCntRangeLazy 6428 6438 +0.2% 1.00x
SuffixAnySequence 26806 26763 -0.2% 1.00x
SuffixAnySequenceLazy 26765 26672 -0.3% 1.00x
SuffixArray 2070 2061 -0.4% 1.00x
SuffixArrayLazy 15033 15224 +1.3% 0.99x
SuffixCountableRange 119 119 +0.0% 1.00x
SuffixCountableRangeLazy 12895 12752 -1.1% 1.01x
SuffixSequence 26367 26347 -0.1% 1.00x (?)
SuffixSequenceLazy 26429 26693 +1.0% 0.99x
TwoSum 4303 4314 +0.3% 1.00x (?)
TypeFlood 167 162 -3.0% 1.03x (?)
UTF8Decode 37013 36947 -0.2% 1.00x
Walsh 11975 11908 -0.6% 1.01x
XorLoop 23715 23708 -0.0% 1.00x
**Hardware Overview** Model Name: Mac mini Model Identifier: Macmini7,1 Processor Name: Intel Core i5 Processor Speed: 2.8 GHz Number of Processors: 1 Total Number of Cores: 2 L2 Cache (per Core): 256 KB L3 Cache: 3 MB Memory: 8 GB

@dabrahams dabrahams force-pushed the new-unicode-decoders branch from 37f3153 to b1ebc5c Compare May 3, 2017 01:06
@dabrahams
Copy link
Contributor Author

@swift-ci Please benchmark

@dabrahams
Copy link
Contributor Author

@swift-ci Please benchmark

@dabrahams
Copy link
Contributor Author

@swift-ci Please smoke test

@swift-ci
Copy link
Contributor

swift-ci commented May 3, 2017

Build comment file:

Optimized (O)

Regression (11)
TEST OLD NEW DELTA SPEEDUP
MapReduceString 73 112 +53.4% 0.65x
StringEdits 405794 507882 +25.2% 0.80x
OpenClose 48 57 +18.7% 0.84x
MapReduceShortString 18 21 +16.7% 0.86x
DropFirstArrayLazy 29 33 +13.8% 0.88x
DictionaryRemove 3302 3670 +11.1% 0.90x
ArrayAppendAscii 20087 22230 +10.7% 0.90x
DropWhileArray 42 46 +9.5% 0.91x
ObjectiveCBridgeStubNSDateRefAccess 347 375 +8.1% 0.93x
ObjectiveCBridgeStubFromNSDateRef 3642 3923 +7.7% 0.93x
SuperChars 273578 290934 +6.3% 0.94x
Improvement (21)
TEST OLD NEW DELTA SPEEDUP
BitCount 1 0 -99.9% 1001.00x
CStringLongAscii 13761 4975 -63.8% 2.77x
StringWithCString 330322 126362 -61.7% 2.61x
CStringLongNonAscii 4220 2119 -49.8% 1.99x
ProtocolDispatch 3030 2424 -20.0% 1.25x
DropLastArrayLazy 12 10 -16.7% 1.20x
CharacterLiteralsLarge 10472 8997 -14.1% 1.16x
CStringShortAscii 6094 5285 -13.3% 1.15x
StringMatch 18066 16040 -11.2% 1.13x
DropLastCountableRangeLazy 9 8 -11.1% 1.12x
StringHasPrefix 701 637 -9.1% 1.10x
SortSortedStrings 895 818 -8.6% 1.09x
Hanoi 3573 3279 -8.2% 1.09x
MapReduce 329 303 -7.9% 1.09x
StringHasSuffix 798 736 -7.8% 1.08x (?)
ArrayAppendUTF16 44313 40903 -7.7% 1.08x
SortStrings 1731 1603 -7.4% 1.08x
PrefixWhileArray 71 66 -7.0% 1.08x
UTF8Decode 274 256 -6.6% 1.07x
ProtocolDispatch2 169 160 -5.3% 1.06x
Phonebook 9718 9235 -5.0% 1.05x
No Changes (237)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 2942 2946 +0.1% 1.00x (?)
AnyHashableWithAClass 67086 66954 -0.2% 1.00x (?)
Array2D 2051 2027 -1.2% 1.01x (?)
ArrayAppend 772 772 +0.0% 1.00x
ArrayAppendArrayOfInt 596 596 +0.0% 1.00x
ArrayAppendFromGeneric 596 597 +0.2% 1.00x (?)
ArrayAppendGenericStructs 1232 1235 +0.2% 1.00x (?)
ArrayAppendLatin1 45092 43459 -3.6% 1.04x
ArrayAppendLazyMap 943 937 -0.6% 1.01x (?)
ArrayAppendOptionals 1220 1226 +0.5% 1.00x (?)
ArrayAppendRepeatCol 837 837 +0.0% 1.00x
ArrayAppendReserved 532 533 +0.2% 1.00x (?)
ArrayAppendSequence 947 946 -0.1% 1.00x (?)
ArrayAppendStrings 13605 13593 -0.1% 1.00x (?)
ArrayAppendToFromGeneric 596 596 +0.0% 1.00x
ArrayAppendToGeneric 596 596 +0.0% 1.00x
ArrayInClass 61 61 +0.0% 1.00x
ArrayLiteral 1219 1215 -0.3% 1.00x (?)
ArrayOfGenericPOD 219 219 +0.0% 1.00x
ArrayOfGenericRef 4008 4021 +0.3% 1.00x (?)
ArrayOfPOD 166 166 +0.0% 1.00x
ArrayOfRef 3903 3887 -0.4% 1.00x (?)
ArrayPlusEqualArrayOfInt 596 596 +0.0% 1.00x
ArrayPlusEqualFiveElementCollection 4650 4674 +0.5% 0.99x (?)
ArrayPlusEqualSingleElementCollection 773 773 +0.0% 1.00x
ArrayPlusEqualThreeElements 1612 1598 -0.9% 1.01x (?)
ArraySubscript 1507 1509 +0.1% 1.00x (?)
ArrayValueProp 6 6 +0.0% 1.00x
ArrayValueProp2 6 6 +0.0% 1.00x
ArrayValueProp3 6 6 +0.0% 1.00x
ArrayValueProp4 6 6 +0.0% 1.00x
ByteSwap 0 0 +0.0% 1.00x
Calculator 46 48 +4.3% 0.96x
CaptureProp 4477 4475 -0.0% 1.00x (?)
CharacterLiteralsSmall 778 778 +0.0% 1.00x
Chars 1389 1388 -0.1% 1.00x (?)
ClassArrayGetter 13 13 +0.0% 1.00x
DeadArray 182 183 +0.5% 0.99x (?)
Dictionary 851 866 +1.8% 0.98x (?)
Dictionary2 2095 2113 +0.9% 0.99x (?)
Dictionary2OfObjects 3615 3643 +0.8% 0.99x (?)
Dictionary3 597 603 +1.0% 0.99x (?)
Dictionary3OfObjects 1083 1082 -0.1% 1.00x (?)
DictionaryBridge 2822 2780 -1.5% 1.02x (?)
DictionaryLiteral 1493 1478 -1.0% 1.01x
DictionaryOfObjects 2695 2686 -0.3% 1.00x (?)
DictionaryRemoveOfObjects 23407 23345 -0.3% 1.00x (?)
DictionarySwap 370 370 +0.0% 1.00x
DictionarySwapOfObjects 6998 7024 +0.4% 1.00x (?)
DropFirstAnyCollection 127 130 +2.4% 0.98x
DropFirstAnyCollectionLazy 44749 45042 +0.7% 0.99x (?)
DropFirstAnySeqCRangeIter 27880 27680 -0.7% 1.01x (?)
DropFirstAnySeqCRangeIterLazy 27889 27687 -0.7% 1.01x (?)
DropFirstAnySeqCntRange 115 115 +0.0% 1.00x
DropFirstAnySeqCntRangeLazy 116 115 -0.9% 1.01x
DropFirstAnySequence 6850 6920 +1.0% 0.99x (?)
DropFirstAnySequenceLazy 6821 6922 +1.5% 0.99x (?)
DropFirstArray 29 29 +0.0% 1.00x
DropFirstCountableRange 23 23 +0.0% 1.00x
DropFirstCountableRangeLazy 23 23 +0.0% 1.00x
DropFirstSequence 3066 3066 +0.0% 1.00x
DropFirstSequenceLazy 3029 3031 +0.1% 1.00x (?)
DropLastAnyCollection 52 52 +0.0% 1.00x
DropLastAnyCollectionLazy 14930 14979 +0.3% 1.00x (?)
DropLastAnySeqCRangeIter 4607 4605 -0.0% 1.00x (?)
DropLastAnySeqCRangeIterLazy 4618 4608 -0.2% 1.00x (?)
DropLastAnySeqCntRange 40 40 +0.0% 1.00x
DropLastAnySeqCntRangeLazy 40 40 +0.0% 1.00x
DropLastAnySequence 6766 6620 -2.2% 1.02x (?)
DropLastAnySequenceLazy 6514 6525 +0.2% 1.00x (?)
DropLastArray 10 10 +0.0% 1.00x
DropLastCountableRange 8 8 +0.0% 1.00x
DropLastSequence 515 515 +0.0% 1.00x
DropLastSequenceLazy 515 515 +0.0% 1.00x
DropWhileAnyCollection 133 133 +0.0% 1.00x
DropWhileAnyCollectionLazy 96 96 +0.0% 1.00x
DropWhileAnySeqCRangeIter 22427 22187 -1.1% 1.01x
DropWhileAnySeqCRangeIterLazy 96 96 +0.0% 1.00x
DropWhileAnySeqCntRange 128 128 +0.0% 1.00x
DropWhileAnySeqCntRangeLazy 96 96 +0.0% 1.00x
DropWhileAnySequence 7524 7625 +1.3% 0.99x (?)
DropWhileAnySequenceLazy 2108 2108 +0.0% 1.00x
DropWhileArrayLazy 80 80 +0.0% 1.00x
DropWhileCountableRange 35 35 +0.0% 1.00x
DropWhileCountableRangeLazy 79 79 +0.0% 1.00x
DropWhileSequence 3093 3093 +0.0% 1.00x
DropWhileSequenceLazy 76 76 +0.0% 1.00x
ErrorHandling 2890 2888 -0.1% 1.00x (?)
GlobalClass 0 0 +0.0% 1.00x
HashQuadratic 6346602 6350841 +0.1% 1.00x (?)
HashTest 1722 1731 +0.5% 0.99x (?)
Histogram 248 250 +0.8% 0.99x
Integrate 262 263 +0.4% 1.00x (?)
IterateData 765 761 -0.5% 1.01x (?)
Join 440 439 -0.2% 1.00x (?)
LazilyFilteredArrays 64795 64864 +0.1% 1.00x (?)
LazilyFilteredRange 3926 3932 +0.2% 1.00x (?)
LinkedList 7065 7080 +0.2% 1.00x (?)
MapReduceAnyCollection 301 302 +0.3% 1.00x (?)
MapReduceAnyCollectionShort 2005 2016 +0.5% 0.99x (?)
MapReduceClass 3044 3059 +0.5% 1.00x (?)
MapReduceClassShort 4544 4540 -0.1% 1.00x (?)
MapReduceLazyCollection 15 15 +0.0% 1.00x
MapReduceLazyCollectionShort 44 45 +2.3% 0.98x
MapReduceLazySequence 90 90 +0.0% 1.00x
MapReduceSequence 464 461 -0.6% 1.01x (?)
MapReduceShort 1943 1925 -0.9% 1.01x
Memset 234 234 +0.0% 1.00x
MonteCarloE 10290 10284 -0.1% 1.00x (?)
MonteCarloPi 43985 43996 +0.0% 1.00x (?)
NSDictionaryCastToSwift 5271 5280 +0.2% 1.00x (?)
NSError 289 289 +0.0% 1.00x
NSStringConversion 751 737 -1.9% 1.02x (?)
NopDeinit 27436 27431 -0.0% 1.00x (?)
ObjectAllocation 181 182 +0.6% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObject 23083 23429 +1.5% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 4499 4445 -1.2% 1.01x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 43216 43842 +1.4% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 37469 37176 -0.8% 1.01x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 120860 121218 +0.3% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 4931 4952 +0.4% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 101480 102469 +1.0% 0.99x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 97751 98331 +0.6% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObject 64340 64511 +0.3% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 4142 4107 -0.8% 1.01x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 80520 81641 +1.4% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 71242 72041 +1.1% 0.99x (?)
ObjectiveCBridgeFromNSString 1404 1406 +0.1% 1.00x (?)
ObjectiveCBridgeFromNSStringForced 2356 2367 +0.5% 1.00x (?)
ObjectiveCBridgeStubDataAppend 3664 3678 +0.4% 1.00x (?)
ObjectiveCBridgeStubDateAccess 181 181 +0.0% 1.00x
ObjectiveCBridgeStubDateMutation 272 272 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 28513 28391 -0.4% 1.00x (?)
ObjectiveCBridgeStubFromNSDate 3701 3733 +0.9% 0.99x (?)
ObjectiveCBridgeStubFromNSString 954 947 -0.7% 1.01x (?)
ObjectiveCBridgeStubFromNSStringRef 179 188 +5.0% 0.95x
ObjectiveCBridgeStubNSDataAppend 2269 2286 +0.7% 0.99x (?)
ObjectiveCBridgeStubNSDateMutationRef 12322 12547 +1.8% 0.98x (?)
ObjectiveCBridgeStubToArrayOfNSString 28874 28847 -0.1% 1.00x (?)
ObjectiveCBridgeStubToNSDate 14702 14623 -0.5% 1.01x (?)
ObjectiveCBridgeStubToNSDateRef 3351 3433 +2.4% 0.98x (?)
ObjectiveCBridgeStubToNSString 1497 1488 -0.6% 1.01x (?)
ObjectiveCBridgeStubToNSStringRef 110 110 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 228979 228481 -0.2% 1.00x (?)
ObjectiveCBridgeStubURLAppendPathRef 229752 228151 -0.7% 1.01x (?)
ObjectiveCBridgeToNSArray 29277 29184 -0.3% 1.00x (?)
ObjectiveCBridgeToNSDictionary 60883 61515 +1.0% 0.99x (?)
ObjectiveCBridgeToNSSet 39446 39499 +0.1% 1.00x (?)
ObjectiveCBridgeToNSString 1270 1266 -0.3% 1.00x (?)
ObserverClosure 2310 2286 -1.0% 1.01x (?)
ObserverForwarderStruct 1113 1111 -0.2% 1.00x (?)
ObserverPartiallyAppliedMethod 3842 3825 -0.4% 1.00x (?)
ObserverUnappliedMethod 2731 2735 +0.1% 1.00x (?)
PolymorphicCalls 22 21 -4.5% 1.05x
PopFrontArray 1071 1065 -0.6% 1.01x (?)
PopFrontArrayGeneric 1071 1066 -0.5% 1.00x (?)
PopFrontUnsafePointer 8906 8857 -0.6% 1.01x
PrefixAnyCollection 126 126 +0.0% 1.00x
PrefixAnyCollectionLazy 44763 44852 +0.2% 1.00x (?)
PrefixAnySeqCRangeIter 22035 21630 -1.8% 1.02x
PrefixAnySeqCRangeIterLazy 22088 21822 -1.2% 1.01x (?)
PrefixAnySeqCntRange 116 117 +0.9% 0.99x
PrefixAnySeqCntRangeLazy 115 116 +0.9% 0.99x (?)
PrefixAnySequence 6088 6091 +0.0% 1.00x (?)
PrefixAnySequenceLazy 6090 6144 +0.9% 0.99x (?)
PrefixArray 29 29 +0.0% 1.00x
PrefixArrayLazy 29 29 +0.0% 1.00x
PrefixCountableRange 23 23 +0.0% 1.00x
PrefixCountableRangeLazy 23 23 +0.0% 1.00x
PrefixSequence 2562 2561 -0.0% 1.00x (?)
PrefixSequenceLazy 2600 2600 +0.0% 1.00x
PrefixWhileAnyCollection 159 160 +0.6% 0.99x
PrefixWhileAnyCollectionLazy 77 77 +0.0% 1.00x
PrefixWhileAnySeqCRangeIter 12505 12506 +0.0% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 77 77 +0.0% 1.00x
PrefixWhileAnySeqCntRange 154 154 +0.0% 1.00x
PrefixWhileAnySeqCntRangeLazy 77 77 +0.0% 1.00x
PrefixWhileAnySequence 13997 13996 -0.0% 1.00x (?)
PrefixWhileAnySequenceLazy 1582 1586 +0.3% 1.00x (?)
PrefixWhileArrayLazy 58 58 +0.0% 1.00x
PrefixWhileCountableRange 36 36 +0.0% 1.00x
PrefixWhileCountableRangeLazy 23 23 +0.0% 1.00x
PrefixWhileSequence 385 384 -0.3% 1.00x (?)
PrefixWhileSequenceLazy 39 39 +0.0% 1.00x
Prims 762 770 +1.0% 0.99x (?)
RC4 169 170 +0.6% 0.99x
RGBHistogram 2271 2273 +0.1% 1.00x (?)
RGBHistogramOfObjects 24058 24040 -0.1% 1.00x (?)
RangeAssignment 308 306 -0.6% 1.01x (?)
RecursiveOwnedParameter 2328 2321 -0.3% 1.00x (?)
ReversedArray 49 49 +0.0% 1.00x
ReversedBidirectional 28978 29249 +0.9% 0.99x (?)
ReversedDictionary 110 110 +0.0% 1.00x
SetExclusiveOr 2847 2973 +4.4% 0.96x (?)
SetExclusiveOr_OfObjects 9590 9551 -0.4% 1.00x (?)
SetIntersect 281 273 -2.8% 1.03x
SetIntersect_OfObjects 1736 1738 +0.1% 1.00x (?)
SetIsSubsetOf 286 286 +0.0% 1.00x
SetIsSubsetOf_OfObjects 359 359 +0.0% 1.00x
SetUnion 2549 2641 +3.6% 0.97x (?)
SetUnion_OfObjects 8001 8058 +0.7% 0.99x (?)
SevenBoom 1459 1459 +0.0% 1.00x
Sim2DArray 276 276 +0.0% 1.00x
SortLargeExistentials 8344 8516 +2.1% 0.98x (?)
SortLettersInPlace 1149 1143 -0.5% 1.01x (?)
SortStringsUnicode 7737 7713 -0.3% 1.00x (?)
StackPromo 22028 22223 +0.9% 0.99x (?)
StaticArray 21 21 +0.0% 1.00x
StrComplexWalk 988 992 +0.4% 1.00x (?)
StrToInt 4863 4715 -3.0% 1.03x
StringAdder 0 0 +0.0% 1.00x
StringBuilder 1341 1344 +0.2% 1.00x (?)
StringBuilderLong 938 936 -0.2% 1.00x (?)
StringEqualPointerComparison 7282 7283 +0.0% 1.00x (?)
StringHasPrefixUnicode 14767 14816 +0.3% 1.00x (?)
StringHasSuffixUnicode 61343 61554 +0.3% 1.00x (?)
StringInterpolation 8325 8332 +0.1% 1.00x (?)
StringUTF16Builder 2103 2124 +1.0% 0.99x (?)
StringWalk 6121 6422 +4.9% 0.95x
SuffixAnyCollection 52 52 +0.0% 1.00x
SuffixAnyCollectionLazy 14985 15064 +0.5% 0.99x (?)
SuffixAnySeqCRangeIter 4927 4926 -0.0% 1.00x (?)
SuffixAnySeqCRangeIterLazy 4934 4927 -0.1% 1.00x (?)
SuffixAnySeqCntRange 40 40 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 40 40 +0.0% 1.00x
SuffixAnySequence 6677 6673 -0.1% 1.00x (?)
SuffixAnySequenceLazy 6542 6571 +0.4% 1.00x
SuffixArray 10 10 +0.0% 1.00x
SuffixArrayLazy 10 10 +0.0% 1.00x
SuffixCountableRange 8 8 +0.0% 1.00x
SuffixCountableRangeLazy 8 8 +0.0% 1.00x
SuffixSequence 4466 4441 -0.6% 1.01x (?)
SuffixSequenceLazy 4467 4440 -0.6% 1.01x
TwoSum 900 901 +0.1% 1.00x (?)
TypeFlood 0 0 +0.0% 1.00x
Walsh 350 351 +0.3% 1.00x (?)
XorLoop 347 347 +0.0% 1.00x
**Unoptimized (Onone)**
Regression (3)
TEST OLD NEW DELTA SPEEDUP
StringEdits 701974 800123 +14.0% 0.88x
ArrayAppendReserved 3225 3631 +12.6% 0.89x
SuperChars 290631 322318 +10.9% 0.90x
Improvement (13)
TEST OLD NEW DELTA SPEEDUP
StringWithCString 327361 129021 -60.6% 2.54x
CStringLongAscii 12935 5455 -57.8% 2.37x
CStringLongNonAscii 4230 2401 -43.2% 1.76x
DictionaryLiteral 13237 8250 -37.7% 1.60x
StrToInt 8018 5068 -36.8% 1.58x
ArrayAppendAscii 83930 63508 -24.3% 1.32x
ArrayAppendUTF16 104341 84434 -19.1% 1.24x
ArrayAppendLatin1 105314 85986 -18.4% 1.22x
CStringShortAscii 9050 8244 -8.9% 1.10x
CharacterLiteralsLarge 10851 9897 -8.8% 1.10x
TypeFlood 171 159 -7.0% 1.08x (?)
ArrayOfGenericPOD 3247 3067 -5.5% 1.06x
ObjectiveCBridgeStubDataAppend 3886 3683 -5.2% 1.06x
No Changes (253)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 3112 3115 +0.1% 1.00x (?)
AnyHashableWithAClass 85507 84658 -1.0% 1.01x (?)
Array2D 608096 608250 +0.0% 1.00x (?)
ArrayAppend 3721 3565 -4.2% 1.04x
ArrayAppendArrayOfInt 653 652 -0.2% 1.00x (?)
ArrayAppendFromGeneric 656 655 -0.2% 1.00x
ArrayAppendGenericStructs 1295 1296 +0.1% 1.00x (?)
ArrayAppendLazyMap 208495 208695 +0.1% 1.00x
ArrayAppendOptionals 1294 1287 -0.5% 1.01x (?)
ArrayAppendRepeatCol 218345 211232 -3.3% 1.03x
ArrayAppendSequence 75085 74241 -1.1% 1.01x
ArrayAppendStrings 13615 13667 +0.4% 1.00x (?)
ArrayAppendToFromGeneric 655 653 -0.3% 1.00x
ArrayAppendToGeneric 656 654 -0.3% 1.00x
ArrayInClass 4734 4734 +0.0% 1.00x
ArrayLiteral 1481 1477 -0.3% 1.00x (?)
ArrayOfGenericRef 9640 9591 -0.5% 1.01x (?)
ArrayOfPOD 1832 1892 +3.3% 0.97x
ArrayOfRef 8748 8759 +0.1% 1.00x (?)
ArrayPlusEqualArrayOfInt 654 652 -0.3% 1.00x
ArrayPlusEqualFiveElementCollection 292310 288711 -1.2% 1.01x (?)
ArrayPlusEqualSingleElementCollection 287285 282995 -1.5% 1.02x
ArrayPlusEqualThreeElements 10398 10432 +0.3% 1.00x (?)
ArraySubscript 4159 4150 -0.2% 1.00x (?)
ArrayValueProp 3059 3058 -0.0% 1.00x (?)
ArrayValueProp2 3674 3694 +0.5% 0.99x (?)
ArrayValueProp3 3418 3416 -0.1% 1.00x (?)
ArrayValueProp4 3338 3351 +0.4% 1.00x (?)
BitCount 872 876 +0.5% 1.00x (?)
ByteSwap 270 263 -2.6% 1.03x (?)
Calculator 1015 1063 +4.7% 0.95x
CaptureProp 108627 106787 -1.7% 1.02x
CharacterLiteralsSmall 970 970 +0.0% 1.00x
Chars 7377 7386 +0.1% 1.00x (?)
ClassArrayGetter 930 930 +0.0% 1.00x
DeadArray 118986 118226 -0.6% 1.01x (?)
Dictionary 1977 1993 +0.8% 0.99x (?)
Dictionary2 3824 3830 +0.2% 1.00x (?)
Dictionary2OfObjects 6179 6168 -0.2% 1.00x (?)
Dictionary3 1494 1494 +0.0% 1.00x
Dictionary3OfObjects 2357 2368 +0.5% 1.00x (?)
DictionaryBridge 2909 2903 -0.2% 1.00x (?)
DictionaryOfObjects 4911 4904 -0.1% 1.00x (?)
DictionaryRemove 21019 21415 +1.9% 0.98x
DictionaryRemoveOfObjects 55101 55068 -0.1% 1.00x (?)
DictionarySwap 5454 5570 +2.1% 0.98x
DictionarySwapOfObjects 19852 19726 -0.6% 1.01x (?)
DropFirstAnyCollection 19847 19358 -2.5% 1.03x
DropFirstAnyCollectionLazy 136082 137796 +1.3% 0.99x (?)
DropFirstAnySeqCRangeIter 30461 29880 -1.9% 1.02x
DropFirstAnySeqCRangeIterLazy 30171 30178 +0.0% 1.00x (?)
DropFirstAnySeqCntRange 19604 19379 -1.1% 1.01x (?)
DropFirstAnySeqCntRangeLazy 19616 19550 -0.3% 1.00x (?)
DropFirstAnySequence 13917 13969 +0.4% 1.00x
DropFirstAnySequenceLazy 13948 13952 +0.0% 1.00x (?)
DropFirstArray 6265 6174 -1.5% 1.01x
DropFirstArrayLazy 45260 45457 +0.4% 1.00x (?)
DropFirstCountableRange 339 341 +0.6% 0.99x
DropFirstCountableRangeLazy 38776 39229 +1.2% 0.99x (?)
DropFirstSequence 12803 12963 +1.2% 0.99x
DropFirstSequenceLazy 12746 12847 +0.8% 0.99x (?)
DropLastAnyCollection 6619 6496 -1.9% 1.02x
DropLastAnyCollectionLazy 46206 45862 -0.7% 1.01x (?)
DropLastAnySeqCRangeIter 44596 44053 -1.2% 1.01x
DropLastAnySeqCRangeIterLazy 44623 43945 -1.5% 1.02x (?)
DropLastAnySeqCntRange 6555 6468 -1.3% 1.01x (?)
DropLastAnySeqCntRangeLazy 6572 6504 -1.0% 1.01x
DropLastAnySequence 29013 28991 -0.1% 1.00x (?)
DropLastAnySequenceLazy 29029 29027 -0.0% 1.00x (?)
DropLastArray 2095 2067 -1.3% 1.01x
DropLastArrayLazy 15139 15128 -0.1% 1.00x (?)
DropLastCountableRange 119 119 +0.0% 1.00x
DropLastCountableRangeLazy 13014 13214 +1.5% 0.98x (?)
DropLastSequence 28664 28631 -0.1% 1.00x (?)
DropLastSequenceLazy 28654 29023 +1.3% 0.99x
DropWhileAnyCollection 25559 25034 -2.1% 1.02x
DropWhileAnyCollectionLazy 27984 27577 -1.5% 1.01x (?)
DropWhileAnySeqCRangeIter 32093 32295 +0.6% 0.99x
DropWhileAnySeqCRangeIterLazy 27799 27648 -0.5% 1.01x
DropWhileAnySeqCntRange 25406 25023 -1.5% 1.02x (?)
DropWhileAnySeqCntRangeLazy 27545 27527 -0.1% 1.00x (?)
DropWhileAnySequence 15963 16099 +0.9% 0.99x
DropWhileAnySequenceLazy 12379 12410 +0.3% 1.00x
DropWhileArray 9851 9777 -0.8% 1.01x (?)
DropWhileArrayLazy 17265 16883 -2.2% 1.02x
DropWhileCountableRange 6241 6163 -1.2% 1.01x
DropWhileCountableRangeLazy 26569 26244 -1.2% 1.01x
DropWhileSequence 14914 15010 +0.6% 0.99x
DropWhileSequenceLazy 11235 11141 -0.8% 1.01x
ErrorHandling 3866 3849 -0.4% 1.00x (?)
GlobalClass 0 0 +0.0% 1.00x
Hanoi 17562 17506 -0.3% 1.00x (?)
HashQuadratic 47901396 50235984 +4.9% 0.95x
HashTest 18369 18625 +1.4% 0.99x (?)
Histogram 8740 8673 -0.8% 1.01x (?)
Integrate 398 398 +0.0% 1.00x
IterateData 12942 12997 +0.4% 1.00x (?)
Join 1253 1263 +0.8% 0.99x
LazilyFilteredArrays 1690109 1673797 -1.0% 1.01x (?)
LazilyFilteredRange 694170 687971 -0.9% 1.01x
LinkedList 33079 33045 -0.1% 1.00x (?)
MapReduce 37953 37774 -0.5% 1.00x
MapReduceAnyCollection 37919 37836 -0.2% 1.00x (?)
MapReduceAnyCollectionShort 50455 50046 -0.8% 1.01x (?)
MapReduceClass 43115 43132 +0.0% 1.00x (?)
MapReduceClassShort 54418 54856 +0.8% 0.99x (?)
MapReduceLazyCollection 32904 32589 -1.0% 1.01x
MapReduceLazyCollectionShort 44504 44093 -0.9% 1.01x (?)
MapReduceLazySequence 25996 25582 -1.6% 1.02x (?)
MapReduceSequence 41074 40968 -0.3% 1.00x
MapReduceShort 50413 50494 +0.2% 1.00x (?)
MapReduceShortString 279 281 +0.7% 0.99x (?)
MapReduceString 2609 2617 +0.3% 1.00x (?)
Memset 43954 43987 +0.1% 1.00x
MonteCarloE 136356 135057 -1.0% 1.01x
MonteCarloPi 52309 52487 +0.3% 1.00x
NSDictionaryCastToSwift 6465 6469 +0.1% 1.00x (?)
NSError 708 704 -0.6% 1.01x (?)
NSStringConversion 1315 1308 -0.5% 1.01x (?)
NopDeinit 51883 51800 -0.2% 1.00x (?)
ObjectAllocation 632 632 +0.0% 1.00x
ObjectiveCBridgeFromNSArrayAnyObject 24821 25002 +0.7% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 7704 7909 +2.7% 0.97x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 45008 44932 -0.2% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 38704 38843 +0.4% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 126072 127626 +1.2% 0.99x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 7254 7405 +2.1% 0.98x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 104814 106827 +1.9% 0.98x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 100373 102349 +2.0% 0.98x (?)
ObjectiveCBridgeFromNSSetAnyObject 68315 67439 -1.3% 1.01x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 7203 7210 +0.1% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 85986 86912 +1.1% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 75688 76401 +0.9% 0.99x (?)
ObjectiveCBridgeFromNSString 4003 4061 +1.4% 0.99x (?)
ObjectiveCBridgeFromNSStringForced 2721 2732 +0.4% 1.00x (?)
ObjectiveCBridgeStubDateAccess 1030 1004 -2.5% 1.03x
ObjectiveCBridgeStubDateMutation 516 515 -0.2% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 29003 29173 +0.6% 0.99x (?)
ObjectiveCBridgeStubFromNSDate 3926 3859 -1.7% 1.02x
ObjectiveCBridgeStubFromNSDateRef 3861 3910 +1.3% 0.99x
ObjectiveCBridgeStubFromNSString 981 978 -0.3% 1.00x (?)
ObjectiveCBridgeStubFromNSStringRef 211 210 -0.5% 1.00x (?)
ObjectiveCBridgeStubNSDataAppend 2639 2639 +0.0% 1.00x
ObjectiveCBridgeStubNSDateMutationRef 15729 16055 +2.1% 0.98x (?)
ObjectiveCBridgeStubNSDateRefAccess 1210 1209 -0.1% 1.00x (?)
ObjectiveCBridgeStubToArrayOfNSString 29468 29245 -0.8% 1.01x (?)
ObjectiveCBridgeStubToNSDate 14639 15173 +3.6% 0.96x (?)
ObjectiveCBridgeStubToNSDateRef 3373 3390 +0.5% 0.99x (?)
ObjectiveCBridgeStubToNSString 1571 1573 +0.1% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 149 149 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 226875 233889 +3.1% 0.97x (?)
ObjectiveCBridgeStubURLAppendPathRef 234808 236422 +0.7% 0.99x (?)
ObjectiveCBridgeToNSArray 29169 29051 -0.4% 1.00x (?)
ObjectiveCBridgeToNSDictionary 61580 61548 -0.1% 1.00x (?)
ObjectiveCBridgeToNSSet 39810 39589 -0.6% 1.01x (?)
ObjectiveCBridgeToNSString 1309 1308 -0.1% 1.00x (?)
ObserverClosure 6672 6630 -0.6% 1.01x
ObserverForwarderStruct 4704 4714 +0.2% 1.00x (?)
ObserverPartiallyAppliedMethod 8142 8106 -0.4% 1.00x (?)
ObserverUnappliedMethod 8446 8466 +0.2% 1.00x (?)
OpenClose 417 413 -1.0% 1.01x
Phonebook 24579 24862 +1.2% 0.99x (?)
PolymorphicCalls 2887 2902 +0.5% 0.99x
PopFrontArray 9819 9727 -0.9% 1.01x (?)
PopFrontArrayGeneric 8735 8679 -0.6% 1.01x (?)
PopFrontUnsafePointer 99311 97453 -1.9% 1.02x
PrefixAnyCollection 19790 19416 -1.9% 1.02x
PrefixAnyCollectionLazy 137264 135673 -1.2% 1.01x (?)
PrefixAnySeqCRangeIter 24364 24086 -1.1% 1.01x
PrefixAnySeqCRangeIterLazy 24368 24126 -1.0% 1.01x (?)
PrefixAnySeqCntRange 19673 19418 -1.3% 1.01x (?)
PrefixAnySeqCntRangeLazy 19610 19564 -0.2% 1.00x (?)
PrefixAnySequence 11676 11834 +1.4% 0.99x
PrefixAnySequenceLazy 11757 11790 +0.3% 1.00x (?)
PrefixArray 6257 6185 -1.2% 1.01x
PrefixArrayLazy 45261 45480 +0.5% 1.00x
PrefixCountableRange 339 341 +0.6% 0.99x
PrefixCountableRangeLazy 38733 39242 +1.3% 0.99x (?)
PrefixSequence 10772 10764 -0.1% 1.00x (?)
PrefixSequenceLazy 10698 10773 +0.7% 0.99x
PrefixWhileAnyCollection 37423 36623 -2.1% 1.02x
PrefixWhileAnyCollectionLazy 23066 22499 -2.5% 1.03x (?)
PrefixWhileAnySeqCRangeIter 40942 40770 -0.4% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 22713 22786 +0.3% 1.00x
PrefixWhileAnySeqCntRange 37339 36639 -1.9% 1.02x (?)
PrefixWhileAnySeqCntRangeLazy 22751 22489 -1.2% 1.01x
PrefixWhileAnySequence 29705 29511 -0.7% 1.01x (?)
PrefixWhileAnySequenceLazy 11253 11245 -0.1% 1.00x (?)
PrefixWhileArray 16884 16831 -0.3% 1.00x (?)
PrefixWhileArrayLazy 15266 14655 -4.0% 1.04x
PrefixWhileCountableRange 17942 17661 -1.6% 1.02x (?)
PrefixWhileCountableRangeLazy 22105 21682 -1.9% 1.02x
PrefixWhileSequence 28333 28242 -0.3% 1.00x
PrefixWhileSequenceLazy 10415 10364 -0.5% 1.00x (?)
Prims 8970 8920 -0.6% 1.01x (?)
ProtocolDispatch 6933 6948 +0.2% 1.00x
ProtocolDispatch2 491 492 +0.2% 1.00x (?)
RC4 19743 19534 -1.1% 1.01x
RGBHistogram 33935 33871 -0.2% 1.00x (?)
RGBHistogramOfObjects 98527 98808 +0.3% 1.00x (?)
RangeAssignment 5797 5769 -0.5% 1.00x (?)
RecursiveOwnedParameter 9645 9662 +0.2% 1.00x (?)
ReversedArray 590 588 -0.3% 1.00x (?)
ReversedBidirectional 75008 74298 -0.9% 1.01x (?)
ReversedDictionary 25791 26573 +3.0% 0.97x
SetExclusiveOr 21083 21319 +1.1% 0.99x (?)
SetExclusiveOr_OfObjects 41321 41350 +0.1% 1.00x (?)
SetIntersect 10805 10816 +0.1% 1.00x (?)
SetIntersect_OfObjects 11502 11126 -3.3% 1.03x (?)
SetIsSubsetOf 1635 1628 -0.4% 1.00x
SetIsSubsetOf_OfObjects 1518 1510 -0.5% 1.01x
SetUnion 11993 12352 +3.0% 0.97x
SetUnion_OfObjects 29905 29678 -0.8% 1.01x
SevenBoom 1613 1605 -0.5% 1.00x (?)
Sim2DArray 30018 30033 +0.0% 1.00x
SortLargeExistentials 17878 17791 -0.5% 1.00x
SortLettersInPlace 2852 2829 -0.8% 1.01x (?)
SortSortedStrings 1403 1414 +0.8% 0.99x
SortStrings 2453 2477 +1.0% 0.99x (?)
SortStringsUnicode 8836 8807 -0.3% 1.00x (?)
StackPromo 102159 102032 -0.1% 1.00x (?)
StaticArray 4696 4563 -2.8% 1.03x
StrComplexWalk 5976 5965 -0.2% 1.00x (?)
StringAdder 43 43 +0.0% 1.00x
StringBuilder 2794 2798 +0.1% 1.00x (?)
StringBuilderLong 1113 1104 -0.8% 1.01x
StringEqualPointerComparison 9825 9911 +0.9% 0.99x
StringHasPrefix 1702 1697 -0.3% 1.00x (?)
StringHasPrefixUnicode 16296 16766 +2.9% 0.97x
StringHasSuffix 1787 1818 +1.7% 0.98x
StringHasSuffixUnicode 63370 63608 +0.4% 1.00x
StringInterpolation 12125 12015 -0.9% 1.01x (?)
StringMatch 39389 39215 -0.4% 1.00x
StringUTF16Builder 3691 3629 -1.7% 1.02x (?)
StringWalk 21928 21503 -1.9% 1.02x (?)
SuffixAnyCollection 6626 6486 -2.1% 1.02x
SuffixAnyCollectionLazy 46328 45616 -1.5% 1.02x (?)
SuffixAnySeqCRangeIter 41998 41796 -0.5% 1.00x (?)
SuffixAnySeqCRangeIterLazy 42298 42257 -0.1% 1.00x (?)
SuffixAnySeqCntRange 6552 6472 -1.2% 1.01x
SuffixAnySeqCntRangeLazy 6556 6505 -0.8% 1.01x (?)
SuffixAnySequence 26764 26792 +0.1% 1.00x
SuffixAnySequenceLazy 26777 26795 +0.1% 1.00x (?)
SuffixArray 2097 2070 -1.3% 1.01x
SuffixArrayLazy 15161 15119 -0.3% 1.00x
SuffixCountableRange 119 119 +0.0% 1.00x
SuffixCountableRangeLazy 12922 13084 +1.3% 0.99x (?)
SuffixSequence 26447 26472 +0.1% 1.00x (?)
SuffixSequenceLazy 26374 26576 +0.8% 0.99x
TwoSum 4322 4419 +2.2% 0.98x
UTF8Decode 36898 36894 -0.0% 1.00x (?)
Walsh 11898 11920 +0.2% 1.00x (?)
XorLoop 23705 23615 -0.4% 1.00x
**Hardware Overview** Model Name: Mac mini Model Identifier: Macmini7,1 Processor Name: Intel Core i5 Processor Speed: 2.8 GHz Number of Processors: 1 Total Number of Cores: 2 L2 Cache (per Core): 256 KB L3 Cache: 3 MB Memory: 16 GB

@dabrahams
Copy link
Contributor Author

@swift-ci Please smoke test and merge

@swift-ci swift-ci merged commit edd13ec into master May 3, 2017
@swift-ci
Copy link
Contributor

swift-ci commented May 3, 2017

Build comment file:

Optimized (O)

Regression (11)
TEST OLD NEW DELTA SPEEDUP
MapReduceString 70 111 +58.6% 0.63x
StringEdits 389210 495159 +27.2% 0.79x
MapReduceShortString 18 21 +16.7% 0.86x
DropLastCountableRange 8 9 +12.5% 0.89x
ArrayAppendAscii 19960 22274 +11.6% 0.90x (?)
DictionaryRemove 3320 3682 +10.9% 0.90x
Hanoi 3260 3599 +10.4% 0.91x
SortSortedStrings 815 884 +8.5% 0.92x
SuperChars 269543 290122 +7.6% 0.93x
StringWalk 6147 6472 +5.3% 0.95x
SortStrings 1609 1694 +5.3% 0.95x
Improvement (28)
TEST OLD NEW DELTA SPEEDUP
CStringLongAscii 13532 5000 -63.1% 2.71x
StringWithCString 330342 126840 -61.6% 2.60x
CStringLongNonAscii 4166 2117 -49.2% 1.97x
MapReduceAnyCollection 358 287 -19.8% 1.25x
CharacterLiteralsLarge 10506 8825 -16.0% 1.19x
MapReduce 357 301 -15.7% 1.19x
CStringShortAscii 6058 5278 -12.9% 1.15x
DropFirstArrayLazy 33 29 -12.1% 1.14x
PrefixArrayLazy 33 29 -12.1% 1.14x (?)
DropWhileSequenceLazy 76 67 -11.8% 1.13x
ProtocolDispatch 2727 2424 -11.1% 1.12x
ArrayAppendLatin1 48450 43248 -10.7% 1.12x
Array2D 2266 2028 -10.5% 1.12x (?)
AnyHashableWithAClass 73940 66530 -10.0% 1.11x (?)
NopDeinit 30451 27429 -9.9% 1.11x
ObjectiveCBridgeStubNSDateRefAccess 347 315 -9.2% 1.10x
MapReduceClass 3339 3053 -8.6% 1.09x
NSStringConversion 761 697 -8.4% 1.09x
UTF8Decode 281 259 -7.8% 1.08x
ArrayAppendUTF16 43371 40445 -6.7% 1.07x
ArrayAppendGenericStructs 1320 1231 -6.7% 1.07x (?)
MapReduceClassShort 4856 4533 -6.7% 1.07x
DropWhileArray 46 43 -6.5% 1.07x
MapReduceLazyCollectionShort 48 45 -6.2% 1.07x
MapReduceLazyCollection 16 15 -6.2% 1.07x
ObjectiveCBridgeStubToNSDate 14906 13979 -6.2% 1.07x (?)
ArrayAppend 821 772 -6.0% 1.06x
ArrayAppendOptionals 1298 1229 -5.3% 1.06x
No Changes (230)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 2970 2922 -1.6% 1.02x (?)
ArrayAppendArrayOfInt 605 596 -1.5% 1.02x
ArrayAppendFromGeneric 607 596 -1.8% 1.02x
ArrayAppendLazyMap 941 934 -0.7% 1.01x (?)
ArrayAppendRepeatCol 839 837 -0.2% 1.00x (?)
ArrayAppendReserved 533 533 +0.0% 1.00x
ArrayAppendSequence 947 947 +0.0% 1.00x
ArrayAppendStrings 13507 13508 +0.0% 1.00x (?)
ArrayAppendToFromGeneric 596 596 +0.0% 1.00x
ArrayAppendToGeneric 596 596 +0.0% 1.00x
ArrayInClass 61 61 +0.0% 1.00x
ArrayLiteral 1224 1225 +0.1% 1.00x (?)
ArrayOfGenericPOD 219 219 +0.0% 1.00x
ArrayOfGenericRef 4009 4026 +0.4% 1.00x (?)
ArrayOfPOD 166 166 +0.0% 1.00x
ArrayOfRef 3905 3911 +0.2% 1.00x (?)
ArrayPlusEqualArrayOfInt 596 596 +0.0% 1.00x
ArrayPlusEqualFiveElementCollection 4675 4674 -0.0% 1.00x (?)
ArrayPlusEqualSingleElementCollection 772 773 +0.1% 1.00x (?)
ArrayPlusEqualThreeElements 1600 1595 -0.3% 1.00x (?)
ArraySubscript 1495 1499 +0.3% 1.00x (?)
ArrayValueProp 6 6 +0.0% 1.00x
ArrayValueProp2 6 6 +0.0% 1.00x
ArrayValueProp3 6 6 +0.0% 1.00x
ArrayValueProp4 6 6 +0.0% 1.00x
BitCount 0 0 +0.0% 1.00x
ByteSwap 0 0 +0.0% 1.00x
Calculator 45 46 +2.2% 0.98x
CaptureProp 4573 4578 +0.1% 1.00x (?)
CharacterLiteralsSmall 778 778 +0.0% 1.00x
Chars 1389 1388 -0.1% 1.00x (?)
ClassArrayGetter 13 13 +0.0% 1.00x
DeadArray 181 182 +0.6% 0.99x (?)
Dictionary 570 565 -0.9% 1.01x (?)
Dictionary2 1790 1800 +0.6% 0.99x (?)
Dictionary2OfObjects 3324 3346 +0.7% 0.99x (?)
Dictionary3 452 454 +0.4% 1.00x (?)
Dictionary3OfObjects 902 902 +0.0% 1.00x
DictionaryBridge 2822 2825 +0.1% 1.00x (?)
DictionaryLiteral 1486 1479 -0.5% 1.00x (?)
DictionaryOfObjects 2337 2331 -0.3% 1.00x (?)
DictionaryRemoveOfObjects 23378 23533 +0.7% 0.99x (?)
DictionarySwap 370 370 +0.0% 1.00x
DictionarySwapOfObjects 6936 7010 +1.1% 0.99x (?)
DropFirstAnyCollection 127 126 -0.8% 1.01x (?)
DropFirstAnyCollectionLazy 44880 44557 -0.7% 1.01x
DropFirstAnySeqCRangeIter 27683 28047 +1.3% 0.99x (?)
DropFirstAnySeqCRangeIterLazy 27683 28044 +1.3% 0.99x (?)
DropFirstAnySeqCntRange 115 116 +0.9% 0.99x (?)
DropFirstAnySeqCntRangeLazy 115 115 +0.0% 1.00x
DropFirstAnySequence 6796 7056 +3.8% 0.96x
DropFirstAnySequenceLazy 6737 6886 +2.2% 0.98x (?)
DropFirstArray 29 29 +0.0% 1.00x
DropFirstCountableRange 23 23 +0.0% 1.00x
DropFirstCountableRangeLazy 23 23 +0.0% 1.00x
DropFirstSequence 3067 3066 -0.0% 1.00x (?)
DropFirstSequenceLazy 3029 3030 +0.0% 1.00x (?)
DropLastAnyCollection 52 52 +0.0% 1.00x
DropLastAnyCollectionLazy 15338 14836 -3.3% 1.03x
DropLastAnySeqCRangeIter 4610 4603 -0.2% 1.00x (?)
DropLastAnySeqCRangeIterLazy 4606 4602 -0.1% 1.00x (?)
DropLastAnySeqCntRange 40 40 +0.0% 1.00x
DropLastAnySeqCntRangeLazy 40 40 +0.0% 1.00x
DropLastAnySequence 6614 6870 +3.9% 0.96x
DropLastAnySequenceLazy 6531 6516 -0.2% 1.00x (?)
DropLastArray 10 10 +0.0% 1.00x
DropLastArrayLazy 10 10 +0.0% 1.00x
DropLastCountableRangeLazy 8 8 +0.0% 1.00x
DropLastSequence 514 510 -0.8% 1.01x (?)
DropLastSequenceLazy 513 509 -0.8% 1.01x (?)
DropWhileAnyCollection 133 133 +0.0% 1.00x
DropWhileAnyCollectionLazy 96 96 +0.0% 1.00x
DropWhileAnySeqCRangeIter 22377 22638 +1.2% 0.99x (?)
DropWhileAnySeqCRangeIterLazy 96 96 +0.0% 1.00x
DropWhileAnySeqCntRange 128 128 +0.0% 1.00x
DropWhileAnySeqCntRangeLazy 96 96 +0.0% 1.00x
DropWhileAnySequence 7669 7647 -0.3% 1.00x (?)
DropWhileAnySequenceLazy 2108 2084 -1.1% 1.01x (?)
DropWhileArrayLazy 80 80 +0.0% 1.00x
DropWhileCountableRange 35 36 +2.9% 0.97x
DropWhileCountableRangeLazy 79 81 +2.5% 0.98x
DropWhileSequence 3093 3127 +1.1% 0.99x
ErrorHandling 2871 2909 +1.3% 0.99x (?)
GlobalClass 0 0 +0.0% 1.00x
HashQuadratic 6038672 6321938 +4.7% 0.96x
HashTest 1728 1730 +0.1% 1.00x (?)
Histogram 246 248 +0.8% 0.99x
Integrate 262 262 +0.0% 1.00x
IterateData 762 764 +0.3% 1.00x (?)
Join 439 441 +0.5% 1.00x (?)
LazilyFilteredArrays 64809 64793 -0.0% 1.00x (?)
LazilyFilteredRange 4028 3929 -2.5% 1.03x
LinkedList 7109 7117 +0.1% 1.00x (?)
MapReduceAnyCollectionShort 2162 2061 -4.7% 1.05x
MapReduceLazySequence 90 90 +0.0% 1.00x
MapReduceSequence 461 461 +0.0% 1.00x
MapReduceShort 1920 1930 +0.5% 0.99x (?)
Memset 234 234 +0.0% 1.00x
MonteCarloE 10364 10254 -1.1% 1.01x
MonteCarloPi 43949 43993 +0.1% 1.00x (?)
NSDictionaryCastToSwift 5282 5243 -0.7% 1.01x (?)
NSError 288 289 +0.3% 1.00x (?)
ObjectAllocation 180 181 +0.6% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObject 23362 23233 -0.6% 1.01x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 4464 4482 +0.4% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 43638 43242 -0.9% 1.01x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 37345 37301 -0.1% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 120916 121723 +0.7% 0.99x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 4962 5006 +0.9% 0.99x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 91962 92665 +0.8% 0.99x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 88503 88642 +0.2% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObject 64498 64610 +0.2% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 4227 4206 -0.5% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 71901 72208 +0.4% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 62628 62900 +0.4% 1.00x (?)
ObjectiveCBridgeFromNSString 1413 1440 +1.9% 0.98x (?)
ObjectiveCBridgeFromNSStringForced 2358 2325 -1.4% 1.01x (?)
ObjectiveCBridgeStubDataAppend 3685 3692 +0.2% 1.00x (?)
ObjectiveCBridgeStubDateAccess 181 181 +0.0% 1.00x
ObjectiveCBridgeStubDateMutation 272 272 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 28525 28355 -0.6% 1.01x (?)
ObjectiveCBridgeStubFromNSDate 3581 3591 +0.3% 1.00x (?)
ObjectiveCBridgeStubFromNSDateRef 3581 3519 -1.7% 1.02x
ObjectiveCBridgeStubFromNSString 890 933 +4.8% 0.95x
ObjectiveCBridgeStubFromNSStringRef 180 173 -3.9% 1.04x
ObjectiveCBridgeStubNSDataAppend 2279 2259 -0.9% 1.01x (?)
ObjectiveCBridgeStubNSDateMutationRef 12450 11862 -4.7% 1.05x (?)
ObjectiveCBridgeStubToArrayOfNSString 28647 28701 +0.2% 1.00x (?)
ObjectiveCBridgeStubToNSDateRef 3384 3389 +0.1% 1.00x (?)
ObjectiveCBridgeStubToNSString 1510 1512 +0.1% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 108 109 +0.9% 0.99x (?)
ObjectiveCBridgeStubURLAppendPath 213448 216382 +1.4% 0.99x (?)
ObjectiveCBridgeStubURLAppendPathRef 214451 217431 +1.4% 0.99x (?)
ObjectiveCBridgeToNSArray 29264 29100 -0.6% 1.01x (?)
ObjectiveCBridgeToNSDictionary 61324 61874 +0.9% 0.99x (?)
ObjectiveCBridgeToNSSet 38952 38778 -0.4% 1.00x (?)
ObjectiveCBridgeToNSString 1263 1264 +0.1% 1.00x (?)
ObserverClosure 2301 2295 -0.3% 1.00x (?)
ObserverForwarderStruct 1130 1126 -0.4% 1.00x (?)
ObserverPartiallyAppliedMethod 3835 3815 -0.5% 1.01x (?)
ObserverUnappliedMethod 2687 2644 -1.6% 1.02x
OpenClose 54 54 +0.0% 1.00x
Phonebook 9423 9744 +3.4% 0.97x (?)
PolymorphicCalls 22 21 -4.5% 1.05x
PopFrontArray 1071 1066 -0.5% 1.00x (?)
PopFrontArrayGeneric 1071 1066 -0.5% 1.00x (?)
PopFrontUnsafePointer 8876 8879 +0.0% 1.00x (?)
PrefixAnyCollection 127 127 +0.0% 1.00x
PrefixAnyCollectionLazy 44928 44745 -0.4% 1.00x (?)
PrefixAnySeqCRangeIter 21771 22142 +1.7% 0.98x (?)
PrefixAnySeqCRangeIterLazy 21703 22198 +2.3% 0.98x (?)
PrefixAnySeqCntRange 115 115 +0.0% 1.00x
PrefixAnySeqCntRangeLazy 115 115 +0.0% 1.00x
PrefixAnySequence 6094 6084 -0.2% 1.00x (?)
PrefixAnySequenceLazy 6091 6160 +1.1% 0.99x (?)
PrefixArray 29 29 +0.0% 1.00x
PrefixCountableRange 23 23 +0.0% 1.00x
PrefixCountableRangeLazy 23 23 +0.0% 1.00x
PrefixSequence 2561 2637 +3.0% 0.97x
PrefixSequenceLazy 2600 2600 +0.0% 1.00x
PrefixWhileAnyCollection 161 160 -0.6% 1.01x
PrefixWhileAnyCollectionLazy 77 77 +0.0% 1.00x
PrefixWhileAnySeqCRangeIter 12519 12506 -0.1% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 77 77 +0.0% 1.00x
PrefixWhileAnySeqCntRange 154 154 +0.0% 1.00x
PrefixWhileAnySeqCntRangeLazy 77 77 +0.0% 1.00x
PrefixWhileAnySequence 14107 13992 -0.8% 1.01x
PrefixWhileAnySequenceLazy 1587 1587 +0.0% 1.00x
PrefixWhileArray 66 66 +0.0% 1.00x
PrefixWhileArrayLazy 58 58 +0.0% 1.00x
PrefixWhileCountableRange 35 35 +0.0% 1.00x
PrefixWhileCountableRangeLazy 23 23 +0.0% 1.00x
PrefixWhileSequence 401 383 -4.5% 1.05x
PrefixWhileSequenceLazy 39 39 +0.0% 1.00x
Prims 769 768 -0.1% 1.00x (?)
ProtocolDispatch2 168 161 -4.2% 1.04x (?)
RC4 170 170 +0.0% 1.00x
RGBHistogram 2275 2266 -0.4% 1.00x (?)
RGBHistogramOfObjects 24054 24107 +0.2% 1.00x (?)
RangeAssignment 310 305 -1.6% 1.02x (?)
RecursiveOwnedParameter 2312 2324 +0.5% 0.99x
ReversedArray 49 49 +0.0% 1.00x
ReversedBidirectional 28962 28904 -0.2% 1.00x (?)
ReversedDictionary 108 108 +0.0% 1.00x
SetExclusiveOr 2946 2881 -2.2% 1.02x (?)
SetExclusiveOr_OfObjects 9540 9520 -0.2% 1.00x (?)
SetIntersect 273 272 -0.4% 1.00x (?)
SetIntersect_OfObjects 1721 1732 +0.6% 0.99x (?)
SetIsSubsetOf 286 286 +0.0% 1.00x
SetIsSubsetOf_OfObjects 359 359 +0.0% 1.00x
SetUnion 2708 2603 -3.9% 1.04x (?)
SetUnion_OfObjects 8064 7943 -1.5% 1.02x (?)
SevenBoom 1463 1463 +0.0% 1.00x
Sim2DArray 276 276 +0.0% 1.00x
SortLargeExistentials 8264 8372 +1.3% 0.99x (?)
SortLettersInPlace 1148 1148 +0.0% 1.00x
SortStringsUnicode 7499 7676 +2.4% 0.98x (?)
StackPromo 22219 22115 -0.5% 1.00x (?)
StaticArray 21 21 +0.0% 1.00x
StrComplexWalk 984 991 +0.7% 0.99x (?)
StrToInt 4496 4636 +3.1% 0.97x (?)
StringAdder 0 0 +0.0% 1.00x
StringBuilder 1331 1336 +0.4% 1.00x (?)
StringBuilderLong 947 949 +0.2% 1.00x (?)
StringEqualPointerComparison 7334 7339 +0.1% 1.00x (?)
StringHasPrefix 609 608 -0.2% 1.00x (?)
StringHasPrefixUnicode 14563 14599 +0.2% 1.00x (?)
StringHasSuffix 672 667 -0.7% 1.01x (?)
StringHasSuffixUnicode 61603 61884 +0.5% 1.00x (?)
StringInterpolation 8308 8346 +0.5% 1.00x (?)
StringMatch 16408 16442 +0.2% 1.00x (?)
StringUTF16Builder 2097 2119 +1.0% 0.99x (?)
SuffixAnyCollection 52 52 +0.0% 1.00x
SuffixAnyCollectionLazy 15017 14899 -0.8% 1.01x (?)
SuffixAnySeqCRangeIter 4927 4924 -0.1% 1.00x (?)
SuffixAnySeqCRangeIterLazy 4932 4928 -0.1% 1.00x (?)
SuffixAnySeqCntRange 40 40 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 40 40 +0.0% 1.00x
SuffixAnySequence 6669 6665 -0.1% 1.00x (?)
SuffixAnySequenceLazy 6589 6538 -0.8% 1.01x (?)
SuffixArray 10 10 +0.0% 1.00x
SuffixArrayLazy 10 10 +0.0% 1.00x
SuffixCountableRange 9 9 +0.0% 1.00x
SuffixCountableRangeLazy 8 8 +0.0% 1.00x
SuffixSequence 4478 4440 -0.8% 1.01x
SuffixSequenceLazy 4469 4441 -0.6% 1.01x
TwoSum 927 923 -0.4% 1.00x (?)
TypeFlood 0 0 +0.0% 1.00x
Walsh 355 346 -2.5% 1.03x (?)
XorLoop 347 347 +0.0% 1.00x
**Unoptimized (Onone)**
Regression (5)
TEST OLD NEW DELTA SPEEDUP
StringEdits 684308 786657 +15.0% 0.87x
SuperChars 291719 326275 +11.8% 0.89x
ArrayAppendReserved 3428 3738 +9.0% 0.92x
ObjectiveCBridgeStubFromNSDate 3863 4150 +7.4% 0.93x
ObjectiveCBridgeStubDateMutation 485 515 +6.2% 0.94x
Improvement (12)
TEST OLD NEW DELTA SPEEDUP
StringWithCString 327381 129414 -60.5% 2.53x
CStringLongAscii 13077 5926 -54.7% 2.21x
CStringLongNonAscii 4221 2442 -42.1% 1.73x
StrToInt 8062 5097 -36.8% 1.58x
DictionaryLiteral 13310 8460 -36.4% 1.57x
ArrayAppendAscii 83325 63903 -23.3% 1.30x
ArrayAppendUTF16 103556 84688 -18.2% 1.22x
ArrayAppendLatin1 104228 85942 -17.5% 1.21x
CStringShortAscii 9057 8164 -9.9% 1.11x
ArrayAppend 3961 3676 -7.2% 1.08x
ArrayOfGenericPOD 3247 3069 -5.5% 1.06x
CharacterLiteralsLarge 10551 10046 -4.8% 1.05x
No Changes (252)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 3127 3097 -1.0% 1.01x
AnyHashableWithAClass 84978 85404 +0.5% 1.00x
Array2D 608062 605776 -0.4% 1.00x (?)
ArrayAppendArrayOfInt 653 651 -0.3% 1.00x
ArrayAppendFromGeneric 656 654 -0.3% 1.00x
ArrayAppendGenericStructs 1288 1323 +2.7% 0.97x (?)
ArrayAppendLazyMap 207219 207828 +0.3% 1.00x (?)
ArrayAppendOptionals 1300 1323 +1.8% 0.98x (?)
ArrayAppendRepeatCol 212344 212100 -0.1% 1.00x (?)
ArrayAppendSequence 74405 77200 +3.8% 0.96x
ArrayAppendStrings 13686 13556 -0.9% 1.01x
ArrayAppendToFromGeneric 654 653 -0.2% 1.00x (?)
ArrayAppendToGeneric 657 654 -0.5% 1.00x (?)
ArrayInClass 4732 4734 +0.0% 1.00x (?)
ArrayLiteral 1485 1480 -0.3% 1.00x
ArrayOfGenericRef 9567 9595 +0.3% 1.00x
ArrayOfPOD 1832 1891 +3.2% 0.97x
ArrayOfRef 8756 8762 +0.1% 1.00x (?)
ArrayPlusEqualArrayOfInt 652 652 +0.0% 1.00x
ArrayPlusEqualFiveElementCollection 296429 289212 -2.4% 1.02x (?)
ArrayPlusEqualSingleElementCollection 288174 283479 -1.6% 1.02x (?)
ArrayPlusEqualThreeElements 10379 10234 -1.4% 1.01x (?)
ArraySubscript 4151 4184 +0.8% 0.99x
ArrayValueProp 3033 3019 -0.5% 1.00x
ArrayValueProp2 3630 3625 -0.1% 1.00x (?)
ArrayValueProp3 3411 3418 +0.2% 1.00x (?)
ArrayValueProp4 3335 3342 +0.2% 1.00x
BitCount 872 876 +0.5% 1.00x (?)
ByteSwap 267 266 -0.4% 1.00x (?)
Calculator 996 959 -3.7% 1.04x
CaptureProp 107352 106813 -0.5% 1.01x
CharacterLiteralsSmall 970 970 +0.0% 1.00x
Chars 7351 7491 +1.9% 0.98x
ClassArrayGetter 930 930 +0.0% 1.00x
DeadArray 117291 117232 -0.1% 1.00x (?)
Dictionary 1692 1698 +0.4% 1.00x (?)
Dictionary2 3483 3490 +0.2% 1.00x (?)
Dictionary2OfObjects 5847 5811 -0.6% 1.01x (?)
Dictionary3 1337 1325 -0.9% 1.01x (?)
Dictionary3OfObjects 2209 2208 -0.0% 1.00x (?)
DictionaryBridge 2908 2909 +0.0% 1.00x (?)
DictionaryOfObjects 4592 4582 -0.2% 1.00x (?)
DictionaryRemove 21050 21525 +2.3% 0.98x
DictionaryRemoveOfObjects 55341 54944 -0.7% 1.01x (?)
DictionarySwap 5532 5625 +1.7% 0.98x
DictionarySwapOfObjects 19394 19462 +0.4% 1.00x (?)
DropFirstAnyCollection 19623 19784 +0.8% 0.99x (?)
DropFirstAnyCollectionLazy 140348 137221 -2.2% 1.02x (?)
DropFirstAnySeqCRangeIter 30015 30234 +0.7% 0.99x
DropFirstAnySeqCRangeIterLazy 29951 29961 +0.0% 1.00x (?)
DropFirstAnySeqCntRange 19473 19779 +1.6% 0.98x
DropFirstAnySeqCntRangeLazy 19187 19382 +1.0% 0.99x
DropFirstAnySequence 13907 13974 +0.5% 1.00x (?)
DropFirstAnySequenceLazy 13855 14004 +1.1% 0.99x (?)
DropFirstArray 6317 6192 -2.0% 1.02x
DropFirstArrayLazy 45327 45705 +0.8% 0.99x
DropFirstCountableRange 341 340 -0.3% 1.00x
DropFirstCountableRangeLazy 38722 38771 +0.1% 1.00x (?)
DropFirstSequence 12849 12883 +0.3% 1.00x (?)
DropFirstSequenceLazy 12818 12901 +0.6% 0.99x
DropLastAnyCollection 6559 6648 +1.4% 0.99x (?)
DropLastAnyCollectionLazy 47463 45523 -4.1% 1.04x
DropLastAnySeqCRangeIter 43807 43644 -0.4% 1.00x (?)
DropLastAnySeqCRangeIterLazy 43873 44284 +0.9% 0.99x
DropLastAnySeqCntRange 6500 6649 +2.3% 0.98x (?)
DropLastAnySeqCntRangeLazy 6413 6585 +2.7% 0.97x (?)
DropLastAnySequence 28887 29127 +0.8% 0.99x (?)
DropLastAnySequenceLazy 28917 29165 +0.9% 0.99x (?)
DropLastArray 2114 2072 -2.0% 1.02x
DropLastArrayLazy 15186 15219 +0.2% 1.00x (?)
DropLastCountableRange 119 119 +0.0% 1.00x
DropLastCountableRangeLazy 12901 13061 +1.2% 0.99x (?)
DropLastSequence 28496 28662 +0.6% 0.99x
DropLastSequenceLazy 28580 28624 +0.2% 1.00x (?)
DropWhileAnyCollection 25130 25400 +1.1% 0.99x
DropWhileAnyCollectionLazy 27365 27472 +0.4% 1.00x
DropWhileAnySeqCRangeIter 31868 32084 +0.7% 0.99x
DropWhileAnySeqCRangeIterLazy 27500 27349 -0.5% 1.01x (?)
DropWhileAnySeqCntRange 24931 25329 +1.6% 0.98x
DropWhileAnySeqCntRangeLazy 27289 27537 +0.9% 0.99x (?)
DropWhileAnySequence 16069 16142 +0.5% 1.00x (?)
DropWhileAnySequenceLazy 12365 12442 +0.6% 0.99x
DropWhileArray 9912 9786 -1.3% 1.01x
DropWhileArrayLazy 17278 16873 -2.3% 1.02x
DropWhileCountableRange 6104 6176 +1.2% 0.99x (?)
DropWhileCountableRangeLazy 26518 26337 -0.7% 1.01x
DropWhileSequence 14981 15004 +0.2% 1.00x
DropWhileSequenceLazy 11013 11200 +1.7% 0.98x
ErrorHandling 3819 3808 -0.3% 1.00x (?)
GlobalClass 0 0 +0.0% 1.00x
Hanoi 17365 17444 +0.5% 1.00x (?)
HashQuadratic 50223124 50825395 +1.2% 0.99x
HashTest 18553 18600 +0.3% 1.00x (?)
Histogram 8888 8702 -2.1% 1.02x (?)
Integrate 395 395 +0.0% 1.00x
IterateData 12915 12910 -0.0% 1.00x (?)
Join 1252 1250 -0.2% 1.00x (?)
LazilyFilteredArrays 1691762 1689714 -0.1% 1.00x (?)
LazilyFilteredRange 678903 688637 +1.4% 0.99x
LinkedList 33110 33149 +0.1% 1.00x (?)
MapReduce 37778 37809 +0.1% 1.00x
MapReduceAnyCollection 38009 37801 -0.5% 1.01x
MapReduceAnyCollectionShort 50402 50353 -0.1% 1.00x (?)
MapReduceClass 43149 43206 +0.1% 1.00x (?)
MapReduceClassShort 54164 54399 +0.4% 1.00x (?)
MapReduceLazyCollection 33054 32663 -1.2% 1.01x (?)
MapReduceLazyCollectionShort 44727 44078 -1.5% 1.01x (?)
MapReduceLazySequence 25238 25374 +0.5% 0.99x (?)
MapReduceSequence 42286 42249 -0.1% 1.00x (?)
MapReduceShort 50084 50031 -0.1% 1.00x (?)
MapReduceShortString 277 283 +2.2% 0.98x
MapReduceString 2610 2641 +1.2% 0.99x
Memset 43993 44009 +0.0% 1.00x (?)
MonteCarloE 135142 135366 +0.2% 1.00x (?)
MonteCarloPi 52526 52400 -0.2% 1.00x
NSDictionaryCastToSwift 6378 6368 -0.2% 1.00x (?)
NSError 697 701 +0.6% 0.99x (?)
NSStringConversion 1321 1302 -1.4% 1.01x
NopDeinit 50360 50318 -0.1% 1.00x (?)
ObjectAllocation 633 634 +0.2% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObject 25728 25556 -0.7% 1.01x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 7833 7794 -0.5% 1.01x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 45269 44917 -0.8% 1.01x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 38314 38613 +0.8% 0.99x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 124215 127104 +2.3% 0.98x
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 7529 7312 -2.9% 1.03x
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 97371 98570 +1.2% 0.99x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 92406 92767 +0.4% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObject 68238 68011 -0.3% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 7150 7299 +2.1% 0.98x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 79672 77514 -2.7% 1.03x (?)
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 67132 67047 -0.1% 1.00x (?)
ObjectiveCBridgeFromNSString 4044 4016 -0.7% 1.01x
ObjectiveCBridgeFromNSStringForced 2757 2726 -1.1% 1.01x
ObjectiveCBridgeStubDataAppend 3848 3782 -1.7% 1.02x
ObjectiveCBridgeStubDateAccess 1020 1039 +1.9% 0.98x
ObjectiveCBridgeStubFromArrayOfNSString 28770 28415 -1.2% 1.01x (?)
ObjectiveCBridgeStubFromNSDateRef 3883 3870 -0.3% 1.00x (?)
ObjectiveCBridgeStubFromNSString 942 969 +2.9% 0.97x (?)
ObjectiveCBridgeStubFromNSStringRef 212 214 +0.9% 0.99x
ObjectiveCBridgeStubNSDataAppend 2590 2641 +2.0% 0.98x
ObjectiveCBridgeStubNSDateMutationRef 15541 15502 -0.3% 1.00x (?)
ObjectiveCBridgeStubNSDateRefAccess 1202 1211 +0.7% 0.99x
ObjectiveCBridgeStubToArrayOfNSString 28612 29120 +1.8% 0.98x (?)
ObjectiveCBridgeStubToNSDate 15338 14978 -2.3% 1.02x (?)
ObjectiveCBridgeStubToNSDateRef 3385 3374 -0.3% 1.00x (?)
ObjectiveCBridgeStubToNSString 1560 1566 +0.4% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 155 155 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 218092 222457 +2.0% 0.98x (?)
ObjectiveCBridgeStubURLAppendPathRef 217436 217134 -0.1% 1.00x (?)
ObjectiveCBridgeToNSArray 29276 29052 -0.8% 1.01x (?)
ObjectiveCBridgeToNSDictionary 62081 62111 +0.0% 1.00x (?)
ObjectiveCBridgeToNSSet 40024 39350 -1.7% 1.02x (?)
ObjectiveCBridgeToNSString 1311 1308 -0.2% 1.00x
ObserverClosure 6641 6633 -0.1% 1.00x (?)
ObserverForwarderStruct 4697 4690 -0.1% 1.00x (?)
ObserverPartiallyAppliedMethod 8116 8082 -0.4% 1.00x
ObserverUnappliedMethod 8450 8399 -0.6% 1.01x
OpenClose 406 404 -0.5% 1.00x
Phonebook 24625 24420 -0.8% 1.01x
PolymorphicCalls 2916 2869 -1.6% 1.02x
PopFrontArray 9775 9775 +0.0% 1.00x
PopFrontArrayGeneric 8677 8816 +1.6% 0.98x (?)
PopFrontUnsafePointer 98515 97135 -1.4% 1.01x
PrefixAnyCollection 19535 19907 +1.9% 0.98x
PrefixAnyCollectionLazy 140774 136016 -3.4% 1.03x (?)
PrefixAnySeqCRangeIter 24099 24195 +0.4% 1.00x (?)
PrefixAnySeqCRangeIterLazy 24173 24373 +0.8% 0.99x
PrefixAnySeqCntRange 19536 19783 +1.3% 0.99x
PrefixAnySeqCntRangeLazy 19202 19550 +1.8% 0.98x (?)
PrefixAnySequence 11756 11738 -0.2% 1.00x (?)
PrefixAnySequenceLazy 11734 11783 +0.4% 1.00x
PrefixArray 6186 6194 +0.1% 1.00x
PrefixArrayLazy 45333 45709 +0.8% 0.99x
PrefixCountableRange 339 342 +0.9% 0.99x
PrefixCountableRangeLazy 39805 38788 -2.6% 1.03x
PrefixSequence 10626 10709 +0.8% 0.99x
PrefixSequenceLazy 10678 10763 +0.8% 0.99x
PrefixWhileAnyCollection 36755 37261 +1.4% 0.99x
PrefixWhileAnyCollectionLazy 22709 22659 -0.2% 1.00x (?)
PrefixWhileAnySeqCRangeIter 40901 40659 -0.6% 1.01x (?)
PrefixWhileAnySeqCRangeIterLazy 22660 22675 +0.1% 1.00x (?)
PrefixWhileAnySeqCntRange 36567 36933 +1.0% 0.99x
PrefixWhileAnySeqCntRangeLazy 22600 22772 +0.8% 0.99x
PrefixWhileAnySequence 29427 29491 +0.2% 1.00x
PrefixWhileAnySequenceLazy 11244 11286 +0.4% 1.00x
PrefixWhileArray 16959 16855 -0.6% 1.01x
PrefixWhileArrayLazy 15065 14661 -2.7% 1.03x
PrefixWhileCountableRange 17539 17758 +1.2% 0.99x
PrefixWhileCountableRangeLazy 21926 21860 -0.3% 1.00x
PrefixWhileSequence 28251 28204 -0.2% 1.00x
PrefixWhileSequenceLazy 10299 10441 +1.4% 0.99x
Prims 9011 8993 -0.2% 1.00x (?)
ProtocolDispatch 6952 7052 +1.4% 0.99x
ProtocolDispatch2 489 490 +0.2% 1.00x
RC4 19419 19306 -0.6% 1.01x
RGBHistogram 33716 33795 +0.2% 1.00x (?)
RGBHistogramOfObjects 98353 98498 +0.1% 1.00x (?)
RangeAssignment 5789 5798 +0.2% 1.00x (?)
RecursiveOwnedParameter 9665 9632 -0.3% 1.00x (?)
ReversedArray 590 590 +0.0% 1.00x
ReversedBidirectional 75553 74965 -0.8% 1.01x
ReversedDictionary 25838 25836 -0.0% 1.00x (?)
SetExclusiveOr 21146 21195 +0.2% 1.00x (?)
SetExclusiveOr_OfObjects 41321 41131 -0.5% 1.00x (?)
SetIntersect 10782 10829 +0.4% 1.00x
SetIntersect_OfObjects 11451 11219 -2.0% 1.02x
SetIsSubsetOf 1632 1627 -0.3% 1.00x
SetIsSubsetOf_OfObjects 1533 1512 -1.4% 1.01x
SetUnion 11901 12237 +2.8% 0.97x
SetUnion_OfObjects 29804 29648 -0.5% 1.01x
SevenBoom 1600 1620 +1.2% 0.99x (?)
Sim2DArray 30017 30033 +0.1% 1.00x (?)
SortLargeExistentials 17773 17793 +0.1% 1.00x (?)
SortLettersInPlace 2841 2832 -0.3% 1.00x (?)
SortSortedStrings 1403 1408 +0.4% 1.00x (?)
SortStrings 2436 2435 -0.0% 1.00x (?)
SortStringsUnicode 8792 8899 +1.2% 0.99x
StackPromo 102161 102860 +0.7% 0.99x (?)
StaticArray 4679 4653 -0.6% 1.01x
StrComplexWalk 5989 6017 +0.5% 1.00x
StringAdder 45 45 +0.0% 1.00x
StringBuilder 2783 2810 +1.0% 0.99x (?)
StringBuilderLong 1099 1085 -1.3% 1.01x
StringEqualPointerComparison 9832 9663 -1.7% 1.02x (?)
StringHasPrefix 1659 1729 +4.2% 0.96x
StringHasPrefixUnicode 16033 16654 +3.9% 0.96x
StringHasSuffix 1839 1885 +2.5% 0.98x
StringHasSuffixUnicode 63236 63719 +0.8% 0.99x
StringInterpolation 11953 11877 -0.6% 1.01x (?)
StringMatch 39023 39449 +1.1% 0.99x
StringUTF16Builder 3612 3613 +0.0% 1.00x (?)
StringWalk 21950 22342 +1.8% 0.98x
SuffixAnyCollection 6554 6629 +1.1% 0.99x (?)
SuffixAnyCollectionLazy 47091 46992 -0.2% 1.00x (?)
SuffixAnySeqCRangeIter 41753 41648 -0.3% 1.00x
SuffixAnySeqCRangeIterLazy 41664 41931 +0.6% 0.99x (?)
SuffixAnySeqCntRange 6496 6612 +1.8% 0.98x
SuffixAnySeqCntRangeLazy 6411 6566 +2.4% 0.98x
SuffixAnySequence 26730 26804 +0.3% 1.00x
SuffixAnySequenceLazy 26754 26831 +0.3% 1.00x (?)
SuffixArray 2073 2073 +0.0% 1.00x
SuffixArrayLazy 15180 15223 +0.3% 1.00x
SuffixCountableRange 119 119 +0.0% 1.00x
SuffixCountableRangeLazy 13008 12896 -0.9% 1.01x (?)
SuffixSequence 26343 26387 +0.2% 1.00x (?)
SuffixSequenceLazy 26602 26366 -0.9% 1.01x
TwoSum 4314 4351 +0.9% 0.99x (?)
TypeFlood 164 164 +0.0% 1.00x
UTF8Decode 37222 36859 -1.0% 1.01x
Walsh 11947 11929 -0.2% 1.00x (?)
XorLoop 23708 23706 -0.0% 1.00x (?)
**Hardware Overview** Model Name: Mac mini Model Identifier: Macmini7,1 Processor Name: Intel Core i5 Processor Speed: 2.8 GHz Number of Processors: 1 Total Number of Cores: 2 L2 Cache (per Core): 256 KB L3 Cache: 3 MB Memory: 16 GB

@airspeedswift
Copy link
Member

Do we have an idea what happened with MapReduceString and StringEdits? Anything we can do to recoup?

@dabrahams
Copy link
Contributor Author

@aschwaighofer this PR contains a bunch of commits that change inlining and incidentally remove gobs of ARC traffic. It would be really helpful to understand whether these things are caused by the calling convention, and if not, whether there's anything we can do to control them.

@dabrahams
Copy link
Contributor Author

@airspeedswift As you surmised from the speculative revert commits, I'm having a hard time finding a magic combination that appears to eliminate all regressions.

@aschwaighofer
Copy link
Contributor

If adding @inline(__always) affects the result that means that the optimizer was able to actually inline the function (because it could identify it as the callee). This means that it can as well specialize the function by changing it from owned to guaranteed - which it does (almost? @gottesmm) unconditionally (it needs to find the post dominating release (set). does that fail often @gottesmm ?). i.e it very likely did change the calling convention to @guaranteed before you added the @inline(_always) annotation. Therefore, changing the default convention would probably not do us any good here because the optimizer already does it for us.

What inlining in general gives more context to other optimizations. This is good in two directions:

  • simplifications, value propagation: allows for values being propagated allowing simplifications like removing control-flow (which can help arc), it might also allow ARC to now decern that two references are actually the same reference
  • code motion: exposing the content of the function to the caller allows ARC to move ref count instructions from the caller downward in the control flow (into the callee), removing it from some paths. It might also move things upward for pairing.

Can you point at a specific regression you want me to look at?

@gottesmm
Copy link
Contributor

gottesmm commented May 8, 2017

@aschwaighofer Yes. I am not sure. I gave this code over to Xin and he changed the pass significantly. Erik and I are maintaining it now. But it would be good for someone to go back in and see if we are missing any patterns.

@dabrahams
Copy link
Contributor Author

@aschwaighofer None of the regressions that come from just taking the first commit, without the additional inlining commits, stood out for me. They all had the same character when I analyzed them: R/R traffic where it shouldn't exist, suppressable by inlining the invoker of that R/R traffic into its caller. We could run another benchmark in CI against a PR that reverts all the inlining commits in this one if you want to know what those are, but I suspect you would want a local run anyway(?)

@dabrahams
Copy link
Contributor Author

@aschwaighofer There's a pretty good, simple example of this in https://bugs.swift.org/browse/SR-4837

@jrose-apple jrose-apple deleted the new-unicode-decoders branch November 29, 2017 22:35
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.

5 participants