Skip to content

[generic-specializer] Fixes for partial_apply instructions and for specialization of self-recursive functions #9470

New issue

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

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

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
May 11, 2017

Conversation

swiftix
Copy link
Contributor

@swiftix swiftix commented May 10, 2017

Improve handling of self-recursive apply instructions

  • re-factor the code so that all kinds of applies can reuse it
  • properly handle self-recursive generic functions

Fixes rdar://31899989 and rdar://31886854

@swiftix
Copy link
Contributor Author

swiftix commented May 10, 2017

@swift-ci please smoke test

@swiftix swiftix force-pushed the generic-specialization-fixes branch from 9751187 to d330e0c Compare May 10, 2017 22:23
@swiftix swiftix force-pushed the generic-specialization-fixes branch from d330e0c to 8e2bcd3 Compare May 10, 2017 23:29
swiftix added 2 commits May 10, 2017 16:31
- re-factor the code so that all kinds of applies can reuse it
- properly handle self-recursive generic functions

Fixes rdar://31899989 and rdar://31886854
@swiftix swiftix force-pushed the generic-specialization-fixes branch from 8e2bcd3 to f860741 Compare May 10, 2017 23:31
@swiftix
Copy link
Contributor Author

swiftix commented May 10, 2017

@swift-ci please test

1 similar comment
@swiftix
Copy link
Contributor Author

swiftix commented May 10, 2017

@swift-ci please test

@swiftix
Copy link
Contributor Author

swiftix commented May 10, 2017

@swift-ci please smoke benchmark

1 similar comment
@swiftix
Copy link
Contributor Author

swiftix commented May 10, 2017

@swift-ci please smoke benchmark

@swiftix
Copy link
Contributor Author

swiftix commented May 10, 2017

@eeckstein Do you mind taking a look? We may need it for 4.0

@slavapestov
Copy link
Contributor

LGTM. Maybe we should push this down into SILCloner?

@swiftix
Copy link
Contributor Author

swiftix commented May 11, 2017

@slavapestov Yes, it it possible. But TypeSubstCloner has this Inlining flag, which is needed by the logic in this PR. We could expose it to the SILCloner as well. Overall, we could move all visit methods from TypeSubstCloner into SILCloner. But I'm not sure that now is the right time to do that ;-)

@swift-ci
Copy link
Contributor

Build comment file:

Optimized (O)

Regression (3)
TEST OLD NEW DELTA SPEEDUP
Array2D 2051 2185 +6.5% 0.94x (?)
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 62654 66620 +6.3% 0.94x
ArrayInClass 66 70 +6.1% 0.94x (?)
No Changes (266)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 2973 2900 -2.5% 1.03x
AnyHashableWithAClass 66625 66592 -0.0% 1.00x (?)
ArrayAppend 773 769 -0.5% 1.01x
ArrayAppendArrayOfInt 597 597 +0.0% 1.00x
ArrayAppendAscii 23724 24011 +1.2% 0.99x (?)
ArrayAppendFromGeneric 597 597 +0.0% 1.00x
ArrayAppendGenericStructs 1246 1231 -1.2% 1.01x (?)
ArrayAppendLatin1 43330 43379 +0.1% 1.00x (?)
ArrayAppendLazyMap 936 960 +2.6% 0.98x (?)
ArrayAppendOptionals 1270 1273 +0.2% 1.00x (?)
ArrayAppendRepeatCol 838 838 +0.0% 1.00x
ArrayAppendReserved 533 531 -0.4% 1.00x (?)
ArrayAppendSequence 944 944 +0.0% 1.00x
ArrayAppendStrings 13682 13651 -0.2% 1.00x (?)
ArrayAppendToFromGeneric 597 597 +0.0% 1.00x
ArrayAppendToGeneric 596 597 +0.2% 1.00x (?)
ArrayAppendUTF16 40864 40882 +0.0% 1.00x (?)
ArrayLiteral 1227 1223 -0.3% 1.00x (?)
ArrayOfGenericPOD 219 219 +0.0% 1.00x
ArrayOfGenericRef 4010 4009 -0.0% 1.00x (?)
ArrayOfPOD 166 166 +0.0% 1.00x
ArrayOfRef 3925 3920 -0.1% 1.00x (?)
ArrayPlusEqualArrayOfInt 597 597 +0.0% 1.00x
ArrayPlusEqualFiveElementCollection 4693 4662 -0.7% 1.01x (?)
ArrayPlusEqualSingleElementCollection 770 771 +0.1% 1.00x (?)
ArrayPlusEqualThreeElements 1605 1615 +0.6% 0.99x (?)
ArraySubscript 1492 1488 -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 9 9 +0.0% 1.00x
ByteSwap 0 0 +0.0% 1.00x
CStringLongAscii 4982 4989 +0.1% 1.00x (?)
CStringLongNonAscii 2165 2163 -0.1% 1.00x (?)
CStringShortAscii 5291 5291 +0.0% 1.00x
Calculator 33 33 +0.0% 1.00x
CaptureProp 4704 4723 +0.4% 1.00x
CharacterLiteralsLarge 8789 8797 +0.1% 1.00x (?)
CharacterLiteralsSmall 312 312 +0.0% 1.00x
Chars 1711 1711 +0.0% 1.00x
ClassArrayGetter 14 14 +0.0% 1.00x
DeadArray 182 182 +0.0% 1.00x
Dictionary 574 574 +0.0% 1.00x
Dictionary2 1808 1806 -0.1% 1.00x
Dictionary2OfObjects 3325 3315 -0.3% 1.00x (?)
Dictionary3 455 455 +0.0% 1.00x
Dictionary3OfObjects 899 900 +0.1% 1.00x (?)
DictionaryBridge 2670 2677 +0.3% 1.00x (?)
DictionaryLiteral 1493 1491 -0.1% 1.00x (?)
DictionaryOfObjects 2338 2353 +0.6% 0.99x (?)
DictionaryRemove 3706 3714 +0.2% 1.00x (?)
DictionaryRemoveOfObjects 23296 23302 +0.0% 1.00x (?)
DictionarySwap 375 375 +0.0% 1.00x
DictionarySwapOfObjects 6874 6942 +1.0% 0.99x (?)
DropFirstAnyCollection 56 57 +1.8% 0.98x
DropFirstAnyCollectionLazy 44991 44994 +0.0% 1.00x (?)
DropFirstAnySeqCRangeIter 27655 27658 +0.0% 1.00x (?)
DropFirstAnySeqCRangeIterLazy 27661 27663 +0.0% 1.00x (?)
DropFirstAnySeqCntRange 50 50 +0.0% 1.00x
DropFirstAnySeqCntRangeLazy 50 50 +0.0% 1.00x
DropFirstAnySequence 6882 6874 -0.1% 1.00x
DropFirstAnySequenceLazy 6850 6855 +0.1% 1.00x (?)
DropFirstArray 24 24 +0.0% 1.00x
DropFirstArrayLazy 24 24 +0.0% 1.00x
DropFirstCountableRange 32 32 +0.0% 1.00x
DropFirstCountableRangeLazy 32 32 +0.0% 1.00x
DropFirstSequence 3065 3065 +0.0% 1.00x
DropFirstSequenceLazy 3028 3028 +0.0% 1.00x
DropLastAnyCollection 22 22 +0.0% 1.00x
DropLastAnyCollectionLazy 15060 15033 -0.2% 1.00x (?)
DropLastAnySeqCRangeIter 4601 4601 +0.0% 1.00x
DropLastAnySeqCRangeIterLazy 4602 4601 -0.0% 1.00x (?)
DropLastAnySeqCntRange 16 16 +0.0% 1.00x
DropLastAnySeqCntRangeLazy 16 16 +0.0% 1.00x
DropLastAnySequence 6654 6647 -0.1% 1.00x (?)
DropLastAnySequenceLazy 6538 6535 -0.0% 1.00x
DropLastArray 8 8 +0.0% 1.00x
DropLastArrayLazy 8 8 +0.0% 1.00x
DropLastCountableRange 10 10 +0.0% 1.00x
DropLastCountableRangeLazy 10 10 +0.0% 1.00x
DropLastSequence 524 521 -0.6% 1.01x
DropLastSequenceLazy 522 524 +0.4% 1.00x (?)
DropWhileAnyCollection 70 70 +0.0% 1.00x
DropWhileAnyCollectionLazy 103 103 +0.0% 1.00x
DropWhileAnySeqCRangeIter 23324 23334 +0.0% 1.00x (?)
DropWhileAnySeqCRangeIterLazy 103 103 +0.0% 1.00x
DropWhileAnySeqCntRange 64 64 +0.0% 1.00x
DropWhileAnySeqCntRangeLazy 103 103 +0.0% 1.00x
DropWhileAnySequence 7586 7586 +0.0% 1.00x
DropWhileAnySequenceLazy 2032 2032 +0.0% 1.00x
DropWhileArray 37 37 +0.0% 1.00x
DropWhileArrayLazy 78 78 +0.0% 1.00x
DropWhileCountableRange 36 36 +0.0% 1.00x
DropWhileCountableRangeLazy 68 68 +0.0% 1.00x
DropWhileSequence 3124 3124 +0.0% 1.00x
DropWhileSequenceLazy 65 65 +0.0% 1.00x
ErrorHandling 2871 2876 +0.2% 1.00x (?)
GlobalClass 0 0 +0.0% 1.00x
Hanoi 3438 3438 +0.0% 1.00x
HashQuadratic 6372831 6364630 -0.1% 1.00x (?)
HashTest 1703 1700 -0.2% 1.00x
Histogram 246 246 +0.0% 1.00x
Integrate 264 264 +0.0% 1.00x
IterateData 757 757 +0.0% 1.00x
Join 448 448 +0.0% 1.00x
LazilyFilteredArrays 65063 65093 +0.0% 1.00x (?)
LazilyFilteredRange 3898 3890 -0.2% 1.00x
LinkedList 7044 7044 +0.0% 1.00x
MapReduce 302 303 +0.3% 1.00x
MapReduceAnyCollection 303 303 +0.0% 1.00x
MapReduceAnyCollectionShort 2007 2007 +0.0% 1.00x
MapReduceClass 3057 3059 +0.1% 1.00x (?)
MapReduceClassShort 4550 4537 -0.3% 1.00x (?)
MapReduceLazyCollection 15 15 +0.0% 1.00x
MapReduceLazyCollectionShort 44 44 +0.0% 1.00x
MapReduceLazySequence 90 90 +0.0% 1.00x
MapReduceSequence 447 447 +0.0% 1.00x
MapReduceShort 1913 1914 +0.1% 1.00x (?)
MapReduceShortString 21 21 +0.0% 1.00x
MapReduceString 110 110 +0.0% 1.00x
Memset 234 234 +0.0% 1.00x
MonteCarloE 10385 10391 +0.1% 1.00x (?)
MonteCarloPi 44023 44011 -0.0% 1.00x
NSDictionaryCastToSwift 5342 5381 +0.7% 0.99x (?)
NSError 289 290 +0.3% 1.00x
NSStringConversion 729 726 -0.4% 1.00x
NopDeinit 29916 30352 +1.5% 0.99x (?)
ObjectAllocation 185 181 -2.2% 1.02x (?)
ObjectiveCBridgeFromNSArrayAnyObject 23725 24227 +2.1% 0.98x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 4516 4511 -0.1% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 44423 44172 -0.6% 1.01x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 38789 39130 +0.9% 0.99x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 117644 119120 +1.3% 0.99x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 5157 5162 +0.1% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 101755 98428 -3.3% 1.03x
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 95568 97396 +1.9% 0.98x
ObjectiveCBridgeFromNSSetAnyObject 64447 64153 -0.5% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 4197 4193 -0.1% 1.00x
ObjectiveCBridgeFromNSSetAnyObjectToString 71849 71396 -0.6% 1.01x (?)
ObjectiveCBridgeFromNSString 1447 1445 -0.1% 1.00x
ObjectiveCBridgeFromNSStringForced 2373 2375 +0.1% 1.00x (?)
ObjectiveCBridgeStubDataAppend 3790 3844 +1.4% 0.99x (?)
ObjectiveCBridgeStubDateAccess 181 181 +0.0% 1.00x
ObjectiveCBridgeStubDateMutation 272 272 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 29152 28500 -2.2% 1.02x (?)
ObjectiveCBridgeStubFromNSDate 3583 3583 +0.0% 1.00x
ObjectiveCBridgeStubFromNSDateRef 3549 3551 +0.1% 1.00x (?)
ObjectiveCBridgeStubFromNSString 915 917 +0.2% 1.00x (?)
ObjectiveCBridgeStubFromNSStringRef 175 173 -1.1% 1.01x (?)
ObjectiveCBridgeStubNSDataAppend 2374 2338 -1.5% 1.02x (?)
ObjectiveCBridgeStubNSDateMutationRef 12814 12785 -0.2% 1.00x (?)
ObjectiveCBridgeStubNSDateRefAccess 315 315 +0.0% 1.00x
ObjectiveCBridgeStubToArrayOfNSString 28964 28960 -0.0% 1.00x (?)
ObjectiveCBridgeStubToNSDate 14568 15104 +3.7% 0.96x (?)
ObjectiveCBridgeStubToNSDateRef 3385 3370 -0.4% 1.00x (?)
ObjectiveCBridgeStubToNSString 1526 1520 -0.4% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 110 111 +0.9% 0.99x (?)
ObjectiveCBridgeStubURLAppendPath 234088 233124 -0.4% 1.00x (?)
ObjectiveCBridgeStubURLAppendPathRef 230733 233814 +1.3% 0.99x (?)
ObjectiveCBridgeToNSArray 28885 29034 +0.5% 0.99x (?)
ObjectiveCBridgeToNSDictionary 45983 45113 -1.9% 1.02x (?)
ObjectiveCBridgeToNSSet 39235 39111 -0.3% 1.00x (?)
ObjectiveCBridgeToNSString 1274 1274 +0.0% 1.00x
ObserverClosure 2290 2290 +0.0% 1.00x
ObserverForwarderStruct 1136 1137 +0.1% 1.00x (?)
ObserverPartiallyAppliedMethod 3809 3802 -0.2% 1.00x (?)
ObserverUnappliedMethod 2676 2708 +1.2% 0.99x (?)
OpenClose 48 48 +0.0% 1.00x
Phonebook 8316 8315 -0.0% 1.00x (?)
PolymorphicCalls 22 22 +0.0% 1.00x
PopFrontArray 1071 1071 +0.0% 1.00x
PopFrontArrayGeneric 1071 1073 +0.2% 1.00x (?)
PopFrontUnsafePointer 8848 8845 -0.0% 1.00x (?)
PrefixAnyCollection 56 56 +0.0% 1.00x
PrefixAnyCollectionLazy 45225 45203 -0.0% 1.00x (?)
PrefixAnySeqCRangeIter 22550 22547 -0.0% 1.00x (?)
PrefixAnySeqCRangeIterLazy 21686 21701 +0.1% 1.00x (?)
PrefixAnySeqCntRange 50 50 +0.0% 1.00x
PrefixAnySeqCntRangeLazy 50 50 +0.0% 1.00x
PrefixAnySequence 6444 6430 -0.2% 1.00x (?)
PrefixAnySequenceLazy 6451 6435 -0.2% 1.00x (?)
PrefixArray 24 24 +0.0% 1.00x
PrefixArrayLazy 24 24 +0.0% 1.00x
PrefixCountableRange 32 32 +0.0% 1.00x
PrefixCountableRangeLazy 32 32 +0.0% 1.00x
PrefixSequence 2524 2524 +0.0% 1.00x
PrefixSequenceLazy 2617 2617 +0.0% 1.00x
PrefixWhileAnyCollection 96 96 +0.0% 1.00x
PrefixWhileAnyCollectionLazy 75 75 +0.0% 1.00x
PrefixWhileAnySeqCRangeIter 12480 12495 +0.1% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 75 75 +0.0% 1.00x
PrefixWhileAnySeqCntRange 90 90 +0.0% 1.00x
PrefixWhileAnySeqCntRangeLazy 75 75 +0.0% 1.00x
PrefixWhileAnySequence 14067 14059 -0.1% 1.00x (?)
PrefixWhileAnySequenceLazy 1492 1492 +0.0% 1.00x
PrefixWhileArray 62 62 +0.0% 1.00x
PrefixWhileArrayLazy 49 49 +0.0% 1.00x
PrefixWhileCountableRange 36 36 +0.0% 1.00x
PrefixWhileCountableRangeLazy 32 32 +0.0% 1.00x
PrefixWhileSequence 295 295 +0.0% 1.00x
PrefixWhileSequenceLazy 28 28 +0.0% 1.00x
Prims 763 764 +0.1% 1.00x (?)
ProtocolDispatch 3031 3031 +0.0% 1.00x
ProtocolDispatch2 169 169 +0.0% 1.00x
RC4 160 160 +0.0% 1.00x
RGBHistogram 2286 2289 +0.1% 1.00x (?)
RGBHistogramOfObjects 24383 24406 +0.1% 1.00x (?)
RangeAssignment 317 311 -1.9% 1.02x (?)
RecursiveOwnedParameter 2314 2315 +0.0% 1.00x (?)
ReversedArray 49 49 +0.0% 1.00x
ReversedBidirectional 29110 29160 +0.2% 1.00x (?)
ReversedDictionary 111 111 +0.0% 1.00x
SetExclusiveOr 3009 3012 +0.1% 1.00x (?)
SetExclusiveOr_OfObjects 9567 9736 +1.8% 0.98x (?)
SetIntersect 271 271 +0.0% 1.00x
SetIntersect_OfObjects 1724 1723 -0.1% 1.00x (?)
SetIsSubsetOf 286 286 +0.0% 1.00x
SetIsSubsetOf_OfObjects 359 359 +0.0% 1.00x
SetUnion 2691 2702 +0.4% 1.00x (?)
SetUnion_OfObjects 8085 8158 +0.9% 0.99x
SevenBoom 1468 1468 +0.0% 1.00x
Sim2DArray 276 276 +0.0% 1.00x
SortLargeExistentials 8052 8055 +0.0% 1.00x (?)
SortLettersInPlace 1160 1162 +0.2% 1.00x (?)
SortSortedStrings 880 880 +0.0% 1.00x
SortStrings 1672 1671 -0.1% 1.00x (?)
SortStringsUnicode 7675 7678 +0.0% 1.00x (?)
StackPromo 22196 22200 +0.0% 1.00x (?)
StaticArray 21 21 +0.0% 1.00x
StrComplexWalk 720 720 +0.0% 1.00x
StrToInt 4623 4624 +0.0% 1.00x
StringAdder 0 0 +0.0% 1.00x
StringBuilder 1306 1306 +0.0% 1.00x
StringBuilderLong 897 910 +1.4% 0.99x
StringEdits 202571 202434 -0.1% 1.00x (?)
StringEqualPointerComparison 7408 7351 -0.8% 1.01x (?)
StringHasPrefix 16 16 +0.0% 1.00x
StringHasPrefixUnicode 14338 14311 -0.2% 1.00x
StringHasSuffix 33 33 +0.0% 1.00x
StringHasSuffixUnicode 61878 61872 -0.0% 1.00x (?)
StringInterpolation 8277 8396 +1.4% 0.99x (?)
StringMatch 9604 9605 +0.0% 1.00x (?)
StringUTF16Builder 2109 2078 -1.5% 1.01x (?)
StringWalk 6501 6501 +0.0% 1.00x
StringWithCString 125617 125553 -0.1% 1.00x (?)
SuffixAnyCollection 22 22 +0.0% 1.00x
SuffixAnyCollectionLazy 14926 14934 +0.1% 1.00x
SuffixAnySeqCRangeIter 4928 4926 -0.0% 1.00x
SuffixAnySeqCRangeIterLazy 4926 4927 +0.0% 1.00x (?)
SuffixAnySeqCntRange 16 16 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 16 16 +0.0% 1.00x
SuffixAnySequence 6665 6665 +0.0% 1.00x
SuffixAnySequenceLazy 6551 6537 -0.2% 1.00x
SuffixArray 8 8 +0.0% 1.00x
SuffixArrayLazy 8 8 +0.0% 1.00x
SuffixCountableRange 10 10 +0.0% 1.00x
SuffixCountableRangeLazy 10 10 +0.0% 1.00x
SuffixSequence 4434 4433 -0.0% 1.00x (?)
SuffixSequenceLazy 4439 4440 +0.0% 1.00x (?)
SuperChars 296712 297456 +0.3% 1.00x (?)
TwoSum 894 870 -2.7% 1.03x (?)
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode 254 254 +0.0% 1.00x
Walsh 350 350 +0.0% 1.00x
XorLoop 347 347 +0.0% 1.00x
**Unoptimized (Onone)**
No Changes (269)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 3127 3139 +0.4% 1.00x (?)
AnyHashableWithAClass 84310 84311 +0.0% 1.00x (?)
Array2D 608031 606036 -0.3% 1.00x
ArrayAppend 3678 3679 +0.0% 1.00x (?)
ArrayAppendArrayOfInt 651 652 +0.2% 1.00x (?)
ArrayAppendAscii 61319 61351 +0.1% 1.00x (?)
ArrayAppendFromGeneric 654 655 +0.2% 1.00x (?)
ArrayAppendGenericStructs 1280 1293 +1.0% 0.99x (?)
ArrayAppendLatin1 82397 82319 -0.1% 1.00x (?)
ArrayAppendLazyMap 208766 208785 +0.0% 1.00x (?)
ArrayAppendOptionals 1296 1309 +1.0% 0.99x (?)
ArrayAppendRepeatCol 213834 213697 -0.1% 1.00x (?)
ArrayAppendReserved 3434 3434 +0.0% 1.00x
ArrayAppendSequence 76627 76681 +0.1% 1.00x (?)
ArrayAppendStrings 13689 13684 -0.0% 1.00x (?)
ArrayAppendToFromGeneric 653 653 +0.0% 1.00x
ArrayAppendToGeneric 656 656 +0.0% 1.00x
ArrayAppendUTF16 81542 81570 +0.0% 1.00x (?)
ArrayInClass 4824 4895 +1.5% 0.99x
ArrayLiteral 1485 1482 -0.2% 1.00x (?)
ArrayOfGenericPOD 3239 3239 +0.0% 1.00x
ArrayOfGenericRef 9602 9599 -0.0% 1.00x (?)
ArrayOfPOD 1832 1832 +0.0% 1.00x
ArrayOfRef 8754 8758 +0.0% 1.00x (?)
ArrayPlusEqualArrayOfInt 651 651 +0.0% 1.00x
ArrayPlusEqualFiveElementCollection 285237 284232 -0.4% 1.00x (?)
ArrayPlusEqualSingleElementCollection 279977 279965 -0.0% 1.00x (?)
ArrayPlusEqualThreeElements 10228 10255 +0.3% 1.00x (?)
ArraySubscript 4140 4137 -0.1% 1.00x (?)
ArrayValueProp 3033 3036 +0.1% 1.00x (?)
ArrayValueProp2 3667 3640 -0.7% 1.01x (?)
ArrayValueProp3 3441 3435 -0.2% 1.00x (?)
ArrayValueProp4 3341 3334 -0.2% 1.00x
BitCount 877 877 +0.0% 1.00x
ByteSwap 267 267 +0.0% 1.00x
CStringLongAscii 5392 5379 -0.2% 1.00x
CStringLongNonAscii 2400 2403 +0.1% 1.00x (?)
CStringShortAscii 8317 8293 -0.3% 1.00x (?)
Calculator 1193 1197 +0.3% 1.00x (?)
CaptureProp 110364 110032 -0.3% 1.00x (?)
CharacterLiteralsLarge 9948 9962 +0.1% 1.00x (?)
CharacterLiteralsSmall 1002 1001 -0.1% 1.00x (?)
Chars 7535 7553 +0.2% 1.00x (?)
ClassArrayGetter 931 930 -0.1% 1.00x
DeadArray 118583 117242 -1.1% 1.01x (?)
Dictionary 1654 1673 +1.1% 0.99x
Dictionary2 3515 3499 -0.5% 1.00x (?)
Dictionary2OfObjects 5797 5827 +0.5% 0.99x (?)
Dictionary3 1315 1329 +1.1% 0.99x (?)
Dictionary3OfObjects 2200 2208 +0.4% 1.00x (?)
DictionaryBridge 2766 2749 -0.6% 1.01x (?)
DictionaryLiteral 8255 8223 -0.4% 1.00x (?)
DictionaryOfObjects 4574 4550 -0.5% 1.01x (?)
DictionaryRemove 21176 21178 +0.0% 1.00x (?)
DictionaryRemoveOfObjects 54819 54814 -0.0% 1.00x (?)
DictionarySwap 5505 5493 -0.2% 1.00x (?)
DictionarySwapOfObjects 19799 19831 +0.2% 1.00x (?)
DropFirstAnyCollection 19374 19377 +0.0% 1.00x (?)
DropFirstAnyCollectionLazy 137307 137013 -0.2% 1.00x (?)
DropFirstAnySeqCRangeIter 30050 30059 +0.0% 1.00x (?)
DropFirstAnySeqCRangeIterLazy 30176 30174 -0.0% 1.00x (?)
DropFirstAnySeqCntRange 19472 19478 +0.0% 1.00x (?)
DropFirstAnySeqCntRangeLazy 19496 19508 +0.1% 1.00x (?)
DropFirstAnySequence 14129 14180 +0.4% 1.00x (?)
DropFirstAnySequenceLazy 13998 13986 -0.1% 1.00x (?)
DropFirstArray 6323 6320 -0.0% 1.00x (?)
DropFirstArrayLazy 44536 44575 +0.1% 1.00x (?)
DropFirstCountableRange 339 339 +0.0% 1.00x
DropFirstCountableRangeLazy 38244 38311 +0.2% 1.00x (?)
DropFirstSequence 13153 13151 -0.0% 1.00x
DropFirstSequenceLazy 12905 12910 +0.0% 1.00x (?)
DropLastAnyCollection 6506 6493 -0.2% 1.00x (?)
DropLastAnyCollectionLazy 45661 45832 +0.4% 1.00x (?)
DropLastAnySeqCRangeIter 43994 43966 -0.1% 1.00x (?)
DropLastAnySeqCRangeIterLazy 44706 44292 -0.9% 1.01x
DropLastAnySeqCntRange 6485 6486 +0.0% 1.00x (?)
DropLastAnySeqCntRangeLazy 6469 6472 +0.0% 1.00x (?)
DropLastAnySequence 30000 29992 -0.0% 1.00x (?)
DropLastAnySequenceLazy 29090 29098 +0.0% 1.00x (?)
DropLastArray 2138 2138 +0.0% 1.00x
DropLastArrayLazy 14861 14854 -0.0% 1.00x (?)
DropLastCountableRange 118 117 -0.8% 1.01x
DropLastCountableRangeLazy 12579 12574 -0.0% 1.00x (?)
DropLastSequence 28661 28659 -0.0% 1.00x (?)
DropLastSequenceLazy 28621 28629 +0.0% 1.00x (?)
DropWhileAnyCollection 25199 25159 -0.2% 1.00x (?)
DropWhileAnyCollectionLazy 27595 27595 +0.0% 1.00x
DropWhileAnySeqCRangeIter 31873 31856 -0.1% 1.00x (?)
DropWhileAnySeqCRangeIterLazy 27222 27219 -0.0% 1.00x (?)
DropWhileAnySeqCntRange 25343 25365 +0.1% 1.00x (?)
DropWhileAnySeqCntRangeLazy 27212 27206 -0.0% 1.00x (?)
DropWhileAnySequence 16088 16084 -0.0% 1.00x (?)
DropWhileAnySequenceLazy 12493 12494 +0.0% 1.00x (?)
DropWhileArray 9928 9941 +0.1% 1.00x (?)
DropWhileArrayLazy 16929 16928 -0.0% 1.00x (?)
DropWhileCountableRange 6136 6138 +0.0% 1.00x
DropWhileCountableRangeLazy 26514 26510 -0.0% 1.00x (?)
DropWhileSequence 15040 15045 +0.0% 1.00x (?)
DropWhileSequenceLazy 11231 11228 -0.0% 1.00x
ErrorHandling 3833 3740 -2.4% 1.02x (?)
GlobalClass 0 0 +0.0% 1.00x
Hanoi 17464 17514 +0.3% 1.00x (?)
HashQuadratic 52511870 52468853 -0.1% 1.00x (?)
HashTest 18638 18469 -0.9% 1.01x (?)
Histogram 8746 8751 +0.1% 1.00x (?)
Integrate 398 398 +0.0% 1.00x
IterateData 12781 12771 -0.1% 1.00x (?)
Join 1260 1261 +0.1% 1.00x (?)
LazilyFilteredArrays 1705258 1689234 -0.9% 1.01x (?)
LazilyFilteredRange 675220 675127 -0.0% 1.00x (?)
LinkedList 33227 33230 +0.0% 1.00x (?)
MapReduce 38070 38118 +0.1% 1.00x
MapReduceAnyCollection 38019 38059 +0.1% 1.00x (?)
MapReduceAnyCollectionShort 50281 50323 +0.1% 1.00x (?)
MapReduceClass 43443 43411 -0.1% 1.00x (?)
MapReduceClassShort 54197 54131 -0.1% 1.00x (?)
MapReduceLazyCollection 32972 32970 -0.0% 1.00x (?)
MapReduceLazyCollectionShort 44153 44333 +0.4% 1.00x (?)
MapReduceLazySequence 25561 25552 -0.0% 1.00x (?)
MapReduceSequence 41218 41225 +0.0% 1.00x (?)
MapReduceShort 50026 50029 +0.0% 1.00x (?)
MapReduceShortString 276 274 -0.7% 1.01x (?)
MapReduceString 2587 2585 -0.1% 1.00x (?)
Memset 43990 43985 -0.0% 1.00x
MonteCarloE 135108 135321 +0.2% 1.00x (?)
MonteCarloPi 52626 52634 +0.0% 1.00x (?)
NSDictionaryCastToSwift 6490 6436 -0.8% 1.01x (?)
NSError 707 716 +1.3% 0.99x (?)
NSStringConversion 1292 1294 +0.2% 1.00x
NopDeinit 50356 50347 -0.0% 1.00x (?)
ObjectAllocation 638 637 -0.2% 1.00x
ObjectiveCBridgeFromNSArrayAnyObject 25844 26029 +0.7% 0.99x
ObjectiveCBridgeFromNSArrayAnyObjectForced 7863 7859 -0.1% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 44644 44770 +0.3% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 39154 38628 -1.3% 1.01x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 122411 122321 -0.1% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 8104 7937 -2.1% 1.02x
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 103337 103639 +0.3% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 92703 92412 -0.3% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObject 68817 68127 -1.0% 1.01x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 7105 7103 -0.0% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 75674 77901 +2.9% 0.97x
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 65939 66625 +1.0% 0.99x
ObjectiveCBridgeFromNSString 4045 4041 -0.1% 1.00x (?)
ObjectiveCBridgeFromNSStringForced 2742 2743 +0.0% 1.00x (?)
ObjectiveCBridgeStubDataAppend 3953 3949 -0.1% 1.00x (?)
ObjectiveCBridgeStubDateAccess 1027 1029 +0.2% 1.00x (?)
ObjectiveCBridgeStubDateMutation 515 515 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 29195 28941 -0.9% 1.01x (?)
ObjectiveCBridgeStubFromNSDate 3979 3975 -0.1% 1.00x
ObjectiveCBridgeStubFromNSDateRef 3980 3978 -0.1% 1.00x
ObjectiveCBridgeStubFromNSString 958 954 -0.4% 1.00x (?)
ObjectiveCBridgeStubFromNSStringRef 217 218 +0.5% 1.00x (?)
ObjectiveCBridgeStubNSDataAppend 2693 2684 -0.3% 1.00x (?)
ObjectiveCBridgeStubNSDateMutationRef 15914 15211 -4.4% 1.05x (?)
ObjectiveCBridgeStubNSDateRefAccess 1210 1207 -0.2% 1.00x (?)
ObjectiveCBridgeStubToArrayOfNSString 29699 29199 -1.7% 1.02x (?)
ObjectiveCBridgeStubToNSDate 15717 15217 -3.2% 1.03x (?)
ObjectiveCBridgeStubToNSDateRef 3363 3378 +0.4% 1.00x (?)
ObjectiveCBridgeStubToNSString 1566 1566 +0.0% 1.00x
ObjectiveCBridgeStubToNSStringRef 150 150 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 237311 234607 -1.1% 1.01x (?)
ObjectiveCBridgeStubURLAppendPathRef 236415 242698 +2.7% 0.97x
ObjectiveCBridgeToNSArray 29219 29232 +0.0% 1.00x (?)
ObjectiveCBridgeToNSDictionary 45394 45002 -0.9% 1.01x (?)
ObjectiveCBridgeToNSSet 40474 40098 -0.9% 1.01x (?)
ObjectiveCBridgeToNSString 1309 1309 +0.0% 1.00x
ObserverClosure 6650 6647 -0.0% 1.00x (?)
ObserverForwarderStruct 4689 4695 +0.1% 1.00x (?)
ObserverPartiallyAppliedMethod 8082 8106 +0.3% 1.00x (?)
ObserverUnappliedMethod 8416 8446 +0.4% 1.00x (?)
OpenClose 400 400 +0.0% 1.00x
Phonebook 24327 24315 -0.0% 1.00x
PolymorphicCalls 2901 2894 -0.2% 1.00x
PopFrontArray 7498 7508 +0.1% 1.00x (?)
PopFrontArrayGeneric 6445 6435 -0.2% 1.00x (?)
PopFrontUnsafePointer 97016 96987 -0.0% 1.00x (?)
PrefixAnyCollection 19306 19312 +0.0% 1.00x (?)
PrefixAnyCollectionLazy 137768 136641 -0.8% 1.01x (?)
PrefixAnySeqCRangeIter 24472 24471 -0.0% 1.00x (?)
PrefixAnySeqCRangeIterLazy 24407 24411 +0.0% 1.00x (?)
PrefixAnySeqCntRange 19422 19438 +0.1% 1.00x (?)
PrefixAnySeqCntRangeLazy 19467 19471 +0.0% 1.00x (?)
PrefixAnySequence 11945 11967 +0.2% 1.00x (?)
PrefixAnySequenceLazy 11786 11785 -0.0% 1.00x (?)
PrefixArray 6203 6203 +0.0% 1.00x
PrefixArrayLazy 44519 44528 +0.0% 1.00x (?)
PrefixCountableRange 339 339 +0.0% 1.00x
PrefixCountableRangeLazy 38266 38215 -0.1% 1.00x (?)
PrefixSequence 10854 10857 +0.0% 1.00x (?)
PrefixSequenceLazy 10714 10713 -0.0% 1.00x (?)
PrefixWhileAnyCollection 36735 36732 -0.0% 1.00x (?)
PrefixWhileAnyCollectionLazy 22714 22711 -0.0% 1.00x (?)
PrefixWhileAnySeqCRangeIter 40962 40928 -0.1% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 22418 22420 +0.0% 1.00x (?)
PrefixWhileAnySeqCntRange 37046 37232 +0.5% 1.00x (?)
PrefixWhileAnySeqCntRangeLazy 22554 22550 -0.0% 1.00x (?)
PrefixWhileAnySequence 29666 29646 -0.1% 1.00x
PrefixWhileAnySequenceLazy 11410 11429 +0.2% 1.00x (?)
PrefixWhileArray 17021 17018 -0.0% 1.00x (?)
PrefixWhileArrayLazy 14878 14828 -0.3% 1.00x
PrefixWhileCountableRange 17646 17651 +0.0% 1.00x (?)
PrefixWhileCountableRangeLazy 21877 21877 +0.0% 1.00x
PrefixWhileSequence 28429 28454 +0.1% 1.00x
PrefixWhileSequenceLazy 10675 10585 -0.8% 1.01x (?)
Prims 8904 8924 +0.2% 1.00x (?)
ProtocolDispatch 6949 6944 -0.1% 1.00x (?)
ProtocolDispatch2 488 488 +0.0% 1.00x
RC4 19368 19397 +0.1% 1.00x (?)
RGBHistogram 33912 33845 -0.2% 1.00x (?)
RGBHistogramOfObjects 99115 98790 -0.3% 1.00x (?)
RangeAssignment 5673 5685 +0.2% 1.00x (?)
RecursiveOwnedParameter 9650 9662 +0.1% 1.00x (?)
ReversedArray 590 590 +0.0% 1.00x
ReversedBidirectional 75799 75816 +0.0% 1.00x (?)
ReversedDictionary 26488 26478 -0.0% 1.00x (?)
SetExclusiveOr 21049 21075 +0.1% 1.00x
SetExclusiveOr_OfObjects 41368 41387 +0.0% 1.00x (?)
SetIntersect 10604 10603 -0.0% 1.00x (?)
SetIntersect_OfObjects 11128 11125 -0.0% 1.00x (?)
SetIsSubsetOf 1651 1651 +0.0% 1.00x
SetIsSubsetOf_OfObjects 1518 1518 +0.0% 1.00x
SetUnion 11989 12042 +0.4% 1.00x (?)
SetUnion_OfObjects 29662 29654 -0.0% 1.00x (?)
SevenBoom 1609 1612 +0.2% 1.00x (?)
Sim2DArray 30031 30035 +0.0% 1.00x (?)
SortLargeExistentials 17589 17628 +0.2% 1.00x
SortLettersInPlace 2855 2850 -0.2% 1.00x (?)
SortSortedStrings 1405 1404 -0.1% 1.00x (?)
SortStrings 2486 2487 +0.0% 1.00x (?)
SortStringsUnicode 9068 9059 -0.1% 1.00x (?)
StackPromo 104788 103751 -1.0% 1.01x
StaticArray 4670 4676 +0.1% 1.00x
StrComplexWalk 6930 6941 +0.2% 1.00x (?)
StrToInt 5246 5243 -0.1% 1.00x (?)
StringAdder 43 43 +0.0% 1.00x
StringBuilder 2773 2774 +0.0% 1.00x (?)
StringBuilderLong 1080 1082 +0.2% 1.00x (?)
StringEdits 487137 487531 +0.1% 1.00x (?)
StringEqualPointerComparison 9923 9920 -0.0% 1.00x (?)
StringHasPrefix 1808 1795 -0.7% 1.01x (?)
StringHasPrefixUnicode 16206 16179 -0.2% 1.00x (?)
StringHasSuffix 1953 1945 -0.4% 1.00x (?)
StringHasSuffixUnicode 63290 63343 +0.1% 1.00x (?)
StringInterpolation 12064 12032 -0.3% 1.00x (?)
StringMatch 30741 30730 -0.0% 1.00x (?)
StringUTF16Builder 3555 3603 +1.4% 0.99x (?)
StringWalk 21001 21023 +0.1% 1.00x (?)
StringWithCString 135600 135560 -0.0% 1.00x (?)
SuffixAnyCollection 6456 6455 -0.0% 1.00x
SuffixAnyCollectionLazy 46074 45715 -0.8% 1.01x (?)
SuffixAnySeqCRangeIter 41628 41574 -0.1% 1.00x
SuffixAnySeqCRangeIterLazy 41608 41601 -0.0% 1.00x (?)
SuffixAnySeqCntRange 6466 6477 +0.2% 1.00x (?)
SuffixAnySeqCntRangeLazy 6487 6483 -0.1% 1.00x
SuffixAnySequence 27156 27149 -0.0% 1.00x (?)
SuffixAnySequenceLazy 26871 26839 -0.1% 1.00x (?)
SuffixArray 2136 2136 +0.0% 1.00x
SuffixArrayLazy 14857 14855 -0.0% 1.00x (?)
SuffixCountableRange 118 118 +0.0% 1.00x
SuffixCountableRangeLazy 12595 12570 -0.2% 1.00x (?)
SuffixSequence 26373 26372 -0.0% 1.00x (?)
SuffixSequenceLazy 26481 26479 -0.0% 1.00x (?)
SuperChars 317300 316940 -0.1% 1.00x (?)
TwoSum 4283 4296 +0.3% 1.00x (?)
TypeFlood 166 165 -0.6% 1.01x (?)
UTF8Decode 37092 37080 -0.0% 1.00x (?)
Walsh 11925 11939 +0.1% 1.00x
XorLoop 23708 23710 +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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants