Skip to content

[sil-generic-specializer] Add @_semantics("optimize.sil.specialize.generic.partial.never") to disable partial specialization on specific functions #10040

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 2 commits into from
Jun 2, 2017

Conversation

swiftix
Copy link
Contributor

@swiftix swiftix commented Jun 1, 2017

This new @_semantics is used to annotate some very big functions in the standard library. It reduced the code size of the stdlib by 2%.

The inliner was skipping even non-array related @_semantics by mistake.
@swiftix
Copy link
Contributor Author

swiftix commented Jun 1, 2017

@swift-ci please smoke test

…neric.partial.never") to disable partial specialization on functions

This new @_semantics is used to annotate some very big functions in the standard library. It reduced the code size of the stdlib by 2%.
@swiftix swiftix force-pushed the inliner-improvements2 branch from 8c19d29 to 00d663d Compare June 1, 2017 23:33
@swiftix
Copy link
Contributor Author

swiftix commented Jun 1, 2017

@swift-ci please smoke test

1 similar comment
@swiftix
Copy link
Contributor Author

swiftix commented Jun 1, 2017

@swift-ci please smoke test

@swiftix
Copy link
Contributor Author

swiftix commented Jun 1, 2017

@swift-ci please smoke benchmark

4 similar comments
@swiftix
Copy link
Contributor Author

swiftix commented Jun 1, 2017

@swift-ci please smoke benchmark

@swiftix
Copy link
Contributor Author

swiftix commented Jun 1, 2017

@swift-ci please smoke benchmark

@swiftix
Copy link
Contributor Author

swiftix commented Jun 1, 2017

@swift-ci please smoke benchmark

@swiftix
Copy link
Contributor Author

swiftix commented Jun 1, 2017

@swift-ci please smoke benchmark

@swift-ci
Copy link
Contributor

swift-ci commented Jun 2, 2017

Build comment file:

Optimized (O)

No Changes (281)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 3087 3078 -0.3% 1.00x (?)
AnyHashableWithAClass 66731 66767 +0.1% 1.00x (?)
Array2D 2071 2041 -1.4% 1.01x (?)
ArrayAppend 774 772 -0.3% 1.00x
ArrayAppendArrayOfInt 597 597 +0.0% 1.00x
ArrayAppendAscii 23594 23861 +1.1% 0.99x (?)
ArrayAppendFromGeneric 596 597 +0.2% 1.00x
ArrayAppendGenericStructs 1228 1224 -0.3% 1.00x (?)
ArrayAppendLatin1 43176 43071 -0.2% 1.00x (?)
ArrayAppendLazyMap 940 946 +0.6% 0.99x (?)
ArrayAppendOptionals 1225 1245 +1.6% 0.98x (?)
ArrayAppendRepeatCol 838 838 +0.0% 1.00x
ArrayAppendReserved 533 534 +0.2% 1.00x (?)
ArrayAppendSequence 945 944 -0.1% 1.00x (?)
ArrayAppendStrings 13787 13799 +0.1% 1.00x (?)
ArrayAppendToFromGeneric 596 596 +0.0% 1.00x
ArrayAppendToGeneric 596 597 +0.2% 1.00x
ArrayAppendUTF16 41017 41093 +0.2% 1.00x (?)
ArrayInClass 65 68 +4.6% 0.96x (?)
ArrayLiteral 1223 1224 +0.1% 1.00x (?)
ArrayOfGenericPOD 219 219 +0.0% 1.00x
ArrayOfGenericRef 4041 4023 -0.4% 1.00x
ArrayOfPOD 166 166 +0.0% 1.00x
ArrayOfRef 3890 3889 -0.0% 1.00x (?)
ArrayPlusEqualArrayOfInt 597 597 +0.0% 1.00x
ArrayPlusEqualFiveElementCollection 4718 4736 +0.4% 1.00x (?)
ArrayPlusEqualSingleElementCollection 773 772 -0.1% 1.00x
ArrayPlusEqualThreeElements 1609 1607 -0.1% 1.00x (?)
ArraySubscript 1482 1476 -0.4% 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 14 14 +0.0% 1.00x
ByteSwap 0 0 +0.0% 1.00x
CStringLongAscii 5121 5127 +0.1% 1.00x (?)
CStringLongNonAscii 2186 2187 +0.0% 1.00x (?)
CStringShortAscii 5622 5634 +0.2% 1.00x (?)
Calculator 30 30 +0.0% 1.00x
CaptureProp 4492 4487 -0.1% 1.00x (?)
CharacterLiteralsLarge 8756 8738 -0.2% 1.00x (?)
CharacterLiteralsSmall 273 273 +0.0% 1.00x
Chars 1915 1915 +0.0% 1.00x
ClassArrayGetter 13 13 +0.0% 1.00x
DeadArray 184 182 -1.1% 1.01x (?)
Dictionary 549 547 -0.4% 1.00x (?)
Dictionary2 1821 1823 +0.1% 1.00x (?)
Dictionary2OfObjects 3342 3341 -0.0% 1.00x (?)
Dictionary3 449 448 -0.2% 1.00x (?)
Dictionary3OfObjects 890 890 +0.0% 1.00x
DictionaryBridge 2627 2677 +1.9% 0.98x (?)
DictionaryLiteral 1484 1489 +0.3% 1.00x (?)
DictionaryOfObjects 2313 2319 +0.3% 1.00x (?)
DictionaryRemove 2394 2392 -0.1% 1.00x (?)
DictionaryRemoveOfObjects 23455 23452 -0.0% 1.00x (?)
DictionarySwap 429 429 +0.0% 1.00x
DictionarySwapOfObjects 6952 7031 +1.1% 0.99x (?)
DropFirstAnyCollection 56 56 +0.0% 1.00x
DropFirstAnyCollectionLazy 44832 44830 -0.0% 1.00x (?)
DropFirstAnySeqCRangeIter 26492 26490 -0.0% 1.00x (?)
DropFirstAnySeqCRangeIterLazy 26474 26480 +0.0% 1.00x (?)
DropFirstAnySeqCntRange 50 50 +0.0% 1.00x
DropFirstAnySeqCntRangeLazy 50 50 +0.0% 1.00x
DropFirstAnySequence 5845 5849 +0.1% 1.00x (?)
DropFirstAnySequenceLazy 5850 5839 -0.2% 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 2095 2094 -0.0% 1.00x (?)
DropFirstSequenceLazy 2117 2118 +0.0% 1.00x (?)
DropLastAnyCollection 22 22 +0.0% 1.00x
DropLastAnyCollectionLazy 14915 14887 -0.2% 1.00x
DropLastAnySeqCRangeIter 4651 4652 +0.0% 1.00x
DropLastAnySeqCRangeIterLazy 4605 4608 +0.1% 1.00x (?)
DropLastAnySeqCntRange 16 16 +0.0% 1.00x
DropLastAnySeqCntRangeLazy 16 16 +0.0% 1.00x
DropLastAnySequence 6792 6812 +0.3% 1.00x (?)
DropLastAnySequenceLazy 6529 6544 +0.2% 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 600 601 +0.2% 1.00x (?)
DropLastSequenceLazy 600 601 +0.2% 1.00x (?)
DropWhileAnyCollection 69 69 +0.0% 1.00x
DropWhileAnyCollectionLazy 103 103 +0.0% 1.00x
DropWhileAnySeqCRangeIter 21446 21455 +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 6852 6854 +0.0% 1.00x (?)
DropWhileAnySequenceLazy 2007 2007 +0.0% 1.00x
DropWhileArray 37 37 +0.0% 1.00x
DropWhileArrayLazy 78 78 +0.0% 1.00x
DropWhileCountableRange 35 35 +0.0% 1.00x
DropWhileCountableRangeLazy 68 68 +0.0% 1.00x
DropWhileSequence 1771 1771 +0.0% 1.00x
DropWhileSequenceLazy 65 65 +0.0% 1.00x
EqualStringSubstring 11242 11201 -0.4% 1.00x (?)
EqualSubstringString 11238 11244 +0.1% 1.00x (?)
EqualSubstringSubstring 22522 22585 +0.3% 1.00x (?)
EqualSubstringSubstringGenericEquatable 22342 22386 +0.2% 1.00x (?)
ErrorHandling 2881 2862 -0.7% 1.01x (?)
GlobalClass 0 0 +0.0% 1.00x
Hanoi 3284 3271 -0.4% 1.00x (?)
HashTest 1641 1638 -0.2% 1.00x (?)
Histogram 299 299 +0.0% 1.00x
Integrate 262 262 +0.0% 1.00x
IterateData 752 752 +0.0% 1.00x
Join 369 381 +3.3% 0.97x (?)
LazilyFilteredArrays 64850 67944 +4.8% 0.95x (?)
LazilyFilteredRange 3891 3889 -0.1% 1.00x (?)
LessSubstringSubstring 21978 22008 +0.1% 1.00x
LessSubstringSubstringGenericComparable 22034 22006 -0.1% 1.00x (?)
LinkedList 7044 7044 +0.0% 1.00x
MapReduce 304 302 -0.7% 1.01x (?)
MapReduceAnyCollection 334 333 -0.3% 1.00x
MapReduceAnyCollectionShort 1997 1992 -0.3% 1.00x (?)
MapReduceClass 3060 3059 -0.0% 1.00x (?)
MapReduceClassShort 4540 4542 +0.0% 1.00x (?)
MapReduceLazyCollection 15 15 +0.0% 1.00x
MapReduceLazyCollectionShort 44 44 +0.0% 1.00x
MapReduceLazySequence 90 90 +0.0% 1.00x
MapReduceSequence 448 458 +2.2% 0.98x
MapReduceShort 1898 1898 +0.0% 1.00x
MapReduceShortString 21 21 +0.0% 1.00x
MapReduceString 113 113 +0.0% 1.00x
Memset 234 234 +0.0% 1.00x
MonteCarloE 10237 10226 -0.1% 1.00x
MonteCarloPi 44054 44057 +0.0% 1.00x (?)
NSDictionaryCastToSwift 5572 5423 -2.7% 1.03x (?)
NSError 291 292 +0.3% 1.00x (?)
NSStringConversion 724 734 +1.4% 0.99x
NopDeinit 27441 27426 -0.1% 1.00x (?)
ObjectAllocation 181 184 +1.7% 0.98x (?)
ObjectiveCBridgeFromNSArrayAnyObject 24100 24376 +1.1% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 4511 4499 -0.3% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 44649 44249 -0.9% 1.01x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 38172 38396 +0.6% 0.99x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 119306 118420 -0.7% 1.01x
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 5269 5160 -2.1% 1.02x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 101473 101511 +0.0% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 91763 91956 +0.2% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObject 64410 64809 +0.6% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 4158 4130 -0.7% 1.01x
ObjectiveCBridgeFromNSSetAnyObjectToString 73195 71893 -1.8% 1.02x (?)
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 63029 63671 +1.0% 0.99x (?)
ObjectiveCBridgeFromNSString 1447 1449 +0.1% 1.00x (?)
ObjectiveCBridgeFromNSStringForced 2352 2350 -0.1% 1.00x (?)
ObjectiveCBridgeStubDataAppend 3768 3689 -2.1% 1.02x (?)
ObjectiveCBridgeStubDateAccess 181 181 +0.0% 1.00x
ObjectiveCBridgeStubDateMutation 272 272 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 28754 28439 -1.1% 1.01x (?)
ObjectiveCBridgeStubFromNSDate 3639 3643 +0.1% 1.00x (?)
ObjectiveCBridgeStubFromNSDateRef 3581 3581 +0.0% 1.00x
ObjectiveCBridgeStubFromNSString 898 895 -0.3% 1.00x (?)
ObjectiveCBridgeStubFromNSStringRef 180 182 +1.1% 0.99x
ObjectiveCBridgeStubNSDataAppend 2275 2298 +1.0% 0.99x (?)
ObjectiveCBridgeStubNSDateMutationRef 12667 12193 -3.7% 1.04x (?)
ObjectiveCBridgeStubNSDateRefAccess 346 347 +0.3% 1.00x
ObjectiveCBridgeStubToArrayOfNSString 29100 29013 -0.3% 1.00x (?)
ObjectiveCBridgeStubToNSDate 15061 15526 +3.1% 0.97x (?)
ObjectiveCBridgeStubToNSDateRef 3460 3440 -0.6% 1.01x
ObjectiveCBridgeStubToNSString 1514 1515 +0.1% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 108 108 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 227055 220272 -3.0% 1.03x (?)
ObjectiveCBridgeStubURLAppendPathRef 227261 220949 -2.8% 1.03x (?)
ObjectiveCBridgeToNSArray 29696 29456 -0.8% 1.01x (?)
ObjectiveCBridgeToNSDictionary 45598 45674 +0.2% 1.00x (?)
ObjectiveCBridgeToNSSet 39292 39466 +0.4% 1.00x (?)
ObjectiveCBridgeToNSString 1272 1272 +0.0% 1.00x
ObserverClosure 2282 2279 -0.1% 1.00x (?)
ObserverForwarderStruct 1131 1135 +0.4% 1.00x (?)
ObserverPartiallyAppliedMethod 3823 3828 +0.1% 1.00x (?)
ObserverUnappliedMethod 2651 2646 -0.2% 1.00x (?)
OpenClose 52 53 +1.9% 0.98x
Phonebook 5867 5868 +0.0% 1.00x (?)
PolymorphicCalls 21 21 +0.0% 1.00x
PopFrontArray 1066 1068 +0.2% 1.00x (?)
PopFrontArrayGeneric 1073 1073 +0.0% 1.00x
PopFrontUnsafePointer 8845 8847 +0.0% 1.00x (?)
PrefixAnyCollection 56 56 +0.0% 1.00x
PrefixAnyCollectionLazy 44690 44705 +0.0% 1.00x (?)
PrefixAnySeqCRangeIter 20684 20681 -0.0% 1.00x (?)
PrefixAnySeqCRangeIterLazy 20670 20668 -0.0% 1.00x (?)
PrefixAnySeqCntRange 50 50 +0.0% 1.00x
PrefixAnySeqCntRangeLazy 50 50 +0.0% 1.00x
PrefixAnySequence 5179 5186 +0.1% 1.00x
PrefixAnySequenceLazy 5185 5182 -0.1% 1.00x (?)
PrefixArray 25 25 +0.0% 1.00x
PrefixArrayLazy 25 24 -4.0% 1.04x
PrefixCountableRange 32 32 +0.0% 1.00x
PrefixCountableRangeLazy 32 32 +0.0% 1.00x
PrefixSequence 1571 1571 +0.0% 1.00x
PrefixSequenceLazy 1515 1515 +0.0% 1.00x
PrefixWhileAnyCollection 96 96 +0.0% 1.00x
PrefixWhileAnyCollectionLazy 75 75 +0.0% 1.00x
PrefixWhileAnySeqCRangeIter 12501 12494 -0.1% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 75 75 +0.0% 1.00x
PrefixWhileAnySeqCntRange 92 90 -2.2% 1.02x
PrefixWhileAnySeqCntRangeLazy 75 75 +0.0% 1.00x
PrefixWhileAnySequence 14475 14343 -0.9% 1.01x (?)
PrefixWhileAnySequenceLazy 1939 1939 +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 313 313 +0.0% 1.00x
PrefixWhileSequenceLazy 28 28 +0.0% 1.00x
Prims 775 771 -0.5% 1.01x
ProtocolDispatch 2727 2727 +0.0% 1.00x
ProtocolDispatch2 169 169 +0.0% 1.00x
RC4 160 160 +0.0% 1.00x
RGBHistogram 2377 2373 -0.2% 1.00x (?)
RGBHistogramOfObjects 24405 24413 +0.0% 1.00x (?)
RangeAssignment 301 302 +0.3% 1.00x
RecursiveOwnedParameter 2329 2331 +0.1% 1.00x (?)
ReversedArray 53 52 -1.9% 1.02x
ReversedBidirectional 29110 29112 +0.0% 1.00x (?)
ReversedDictionary 119 119 +0.0% 1.00x
SetExclusiveOr 3078 3032 -1.5% 1.02x (?)
SetExclusiveOr_OfObjects 9580 9568 -0.1% 1.00x (?)
SetIntersect 280 283 +1.1% 0.99x
SetIntersect_OfObjects 1719 1719 +0.0% 1.00x
SetIsSubsetOf 286 286 +0.0% 1.00x
SetIsSubsetOf_OfObjects 359 359 +0.0% 1.00x
SetUnion 2739 2727 -0.4% 1.00x (?)
SetUnion_OfObjects 8221 8159 -0.8% 1.01x (?)
SevenBoom 1489 1483 -0.4% 1.00x (?)
Sim2DArray 276 276 +0.0% 1.00x
SortLargeExistentials 7797 7796 -0.0% 1.00x (?)
SortLettersInPlace 1145 1144 -0.1% 1.00x (?)
SortSortedStrings 807 808 +0.1% 1.00x (?)
SortStrings 1579 1581 +0.1% 1.00x (?)
SortStringsUnicode 7745 7743 -0.0% 1.00x (?)
StackPromo 22228 22234 +0.0% 1.00x (?)
StaticArray 18 18 +0.0% 1.00x
StrComplexWalk 720 719 -0.1% 1.00x
StrToInt 2288 2290 +0.1% 1.00x (?)
StringAdder 0 0 +0.0% 1.00x
StringBuilder 990 983 -0.7% 1.01x (?)
StringBuilderLong 921 938 +1.8% 0.98x
StringEdits 109705 109241 -0.4% 1.00x (?)
StringEqualPointerComparison 333 333 +0.0% 1.00x
StringFromLongWholeSubstring 11019 11036 +0.2% 1.00x (?)
StringFromLongWholeSubstringGeneric 33 33 +0.0% 1.00x
StringHasPrefix 16 16 +0.0% 1.00x
StringHasPrefixUnicode 14480 14457 -0.2% 1.00x (?)
StringHasSuffix 16 16 +0.0% 1.00x
StringHasSuffixUnicode 61786 61859 +0.1% 1.00x (?)
StringInterpolation 10776 10767 -0.1% 1.00x (?)
StringMatch 6989 6995 +0.1% 1.00x
StringUTF16Builder 1840 1836 -0.2% 1.00x (?)
StringWalk 1260 1260 +0.0% 1.00x
StringWithCString 68498 68502 +0.0% 1.00x (?)
SubstringComparable 16835 16876 +0.2% 1.00x (?)
SubstringEqualString 8227 8209 -0.2% 1.00x (?)
SubstringEquatable 33118 33387 +0.8% 0.99x (?)
SubstringFromLongString 98 98 +0.0% 1.00x
SubstringFromLongStringGeneric 170 170 +0.0% 1.00x
SuffixAnyCollection 22 22 +0.0% 1.00x
SuffixAnyCollectionLazy 14925 14924 -0.0% 1.00x (?)
SuffixAnySeqCRangeIter 4975 4973 -0.0% 1.00x (?)
SuffixAnySeqCRangeIterLazy 4928 4930 +0.0% 1.00x
SuffixAnySeqCntRange 16 16 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 16 16 +0.0% 1.00x
SuffixAnySequence 6700 6698 -0.0% 1.00x (?)
SuffixAnySequenceLazy 6602 6602 +0.0% 1.00x
SuffixArray 8 8 +0.0% 1.00x
SuffixArrayLazy 8 8 +0.0% 1.00x
SuffixCountableRange 11 11 +0.0% 1.00x
SuffixCountableRangeLazy 10 10 +0.0% 1.00x
SuffixSequence 4492 4491 -0.0% 1.00x
SuffixSequenceLazy 4484 4494 +0.2% 1.00x (?)
SuperChars 104604 104493 -0.1% 1.00x (?)
TwoSum 968 968 +0.0% 1.00x
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode 257 257 +0.0% 1.00x
Walsh 352 352 +0.0% 1.00x
XorLoop 347 347 +0.0% 1.00x

Unoptimized (Onone)

Regression (2)
TEST OLD NEW DELTA SPEEDUP
TypeFlood 160 173 +8.1% 0.92x (?)
ObjectiveCBridgeStubNSDateMutationRef 15188 16003 +5.4% 0.95x
No Changes (279)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 4927 4913 -0.3% 1.00x (?)
AnyHashableWithAClass 84491 84468 -0.0% 1.00x (?)
Array2D 605473 608247 +0.5% 1.00x (?)
ArrayAppend 3908 3909 +0.0% 1.00x (?)
ArrayAppendArrayOfInt 651 650 -0.2% 1.00x
ArrayAppendAscii 60141 60448 +0.5% 0.99x
ArrayAppendFromGeneric 653 653 +0.0% 1.00x
ArrayAppendGenericStructs 1292 1283 -0.7% 1.01x (?)
ArrayAppendLatin1 82116 82100 -0.0% 1.00x (?)
ArrayAppendLazyMap 212467 212496 +0.0% 1.00x (?)
ArrayAppendOptionals 1297 1310 +1.0% 0.99x (?)
ArrayAppendRepeatCol 216070 215996 -0.0% 1.00x (?)
ArrayAppendReserved 3437 3437 +0.0% 1.00x
ArrayAppendSequence 78659 78672 +0.0% 1.00x (?)
ArrayAppendStrings 13717 13798 +0.6% 0.99x (?)
ArrayAppendToFromGeneric 653 652 -0.2% 1.00x (?)
ArrayAppendToGeneric 655 654 -0.2% 1.00x (?)
ArrayAppendUTF16 81868 81843 -0.0% 1.00x (?)
ArrayInClass 6877 6878 +0.0% 1.00x (?)
ArrayLiteral 1738 1749 +0.6% 0.99x (?)
ArrayOfGenericPOD 3249 3250 +0.0% 1.00x (?)
ArrayOfGenericRef 10188 10176 -0.1% 1.00x (?)
ArrayOfPOD 1892 1892 +0.0% 1.00x
ArrayOfRef 9532 9540 +0.1% 1.00x (?)
ArrayPlusEqualArrayOfInt 651 651 +0.0% 1.00x
ArrayPlusEqualFiveElementCollection 294636 296605 +0.7% 0.99x (?)
ArrayPlusEqualSingleElementCollection 292323 291026 -0.4% 1.00x (?)
ArrayPlusEqualThreeElements 10538 10525 -0.1% 1.00x (?)
ArraySubscript 4169 4151 -0.4% 1.00x
ArrayValueProp 3545 3533 -0.3% 1.00x
ArrayValueProp2 18260 18258 -0.0% 1.00x (?)
ArrayValueProp3 3930 3934 +0.1% 1.00x
ArrayValueProp4 3838 3847 +0.2% 1.00x (?)
BitCount 174 175 +0.6% 0.99x (?)
ByteSwap 26 26 +0.0% 1.00x
CStringLongAscii 5443 5424 -0.3% 1.00x (?)
CStringLongNonAscii 2416 2401 -0.6% 1.01x (?)
CStringShortAscii 9550 9541 -0.1% 1.00x (?)
Calculator 1150 1150 +0.0% 1.00x
CaptureProp 110695 110657 -0.0% 1.00x
CharacterLiteralsLarge 10075 10087 +0.1% 1.00x (?)
CharacterLiteralsSmall 994 994 +0.0% 1.00x
Chars 51270 50290 -1.9% 1.02x (?)
ClassArrayGetter 1012 1012 +0.0% 1.00x
DeadArray 115533 116566 +0.9% 0.99x (?)
Dictionary 2975 3010 +1.2% 0.99x (?)
Dictionary2 3485 3491 +0.2% 1.00x (?)
Dictionary2OfObjects 6275 6249 -0.4% 1.00x
Dictionary3 1311 1311 +0.0% 1.00x
Dictionary3OfObjects 2406 2407 +0.0% 1.00x (?)
DictionaryBridge 2721 2715 -0.2% 1.00x (?)
DictionaryLiteral 8285 8267 -0.2% 1.00x (?)
DictionaryOfObjects 6655 6670 +0.2% 1.00x (?)
DictionaryRemove 20954 20955 +0.0% 1.00x (?)
DictionaryRemoveOfObjects 60312 60135 -0.3% 1.00x (?)
DictionarySwap 5456 5449 -0.1% 1.00x (?)
DictionarySwapOfObjects 23862 23847 -0.1% 1.00x (?)
DropFirstAnyCollection 19155 19154 -0.0% 1.00x (?)
DropFirstAnyCollectionLazy 134630 135154 +0.4% 1.00x (?)
DropFirstAnySeqCRangeIter 29386 29385 -0.0% 1.00x (?)
DropFirstAnySeqCRangeIterLazy 29489 29512 +0.1% 1.00x (?)
DropFirstAnySeqCntRange 19193 19188 -0.0% 1.00x (?)
DropFirstAnySeqCntRangeLazy 19294 19300 +0.0% 1.00x (?)
DropFirstAnySequence 13406 13410 +0.0% 1.00x
DropFirstAnySequenceLazy 13250 13249 -0.0% 1.00x (?)
DropFirstArray 6191 6191 +0.0% 1.00x
DropFirstArrayLazy 45445 45406 -0.1% 1.00x (?)
DropFirstCountableRange 337 336 -0.3% 1.00x
DropFirstCountableRangeLazy 38981 38980 -0.0% 1.00x (?)
DropFirstSequence 12414 12502 +0.7% 0.99x (?)
DropFirstSequenceLazy 13934 13930 -0.0% 1.00x (?)
DropLastAnyCollection 6412 6409 -0.0% 1.00x (?)
DropLastAnyCollectionLazy 44919 45190 +0.6% 0.99x (?)
DropLastAnySeqCRangeIter 44172 44142 -0.1% 1.00x
DropLastAnySeqCRangeIterLazy 44127 44054 -0.2% 1.00x (?)
DropLastAnySeqCntRange 6418 6423 +0.1% 1.00x
DropLastAnySeqCntRangeLazy 6403 6410 +0.1% 1.00x
DropLastAnySequence 29425 29351 -0.3% 1.00x (?)
DropLastAnySequenceLazy 29214 29222 +0.0% 1.00x (?)
DropLastArray 2071 2070 -0.0% 1.00x
DropLastArrayLazy 15147 15117 -0.2% 1.00x (?)
DropLastCountableRange 118 118 +0.0% 1.00x
DropLastCountableRangeLazy 12917 12870 -0.4% 1.00x (?)
DropLastSequence 28978 29000 +0.1% 1.00x (?)
DropLastSequenceLazy 28934 28855 -0.3% 1.00x
DropWhileAnyCollection 24974 24954 -0.1% 1.00x (?)
DropWhileAnyCollectionLazy 27569 27554 -0.1% 1.00x (?)
DropWhileAnySeqCRangeIter 31542 31541 -0.0% 1.00x (?)
DropWhileAnySeqCRangeIterLazy 27459 27440 -0.1% 1.00x
DropWhileAnySeqCntRange 25006 25013 +0.0% 1.00x (?)
DropWhileAnySeqCntRangeLazy 27400 27401 +0.0% 1.00x (?)
DropWhileAnySequence 15435 15423 -0.1% 1.00x (?)
DropWhileAnySequenceLazy 12694 12698 +0.0% 1.00x
DropWhileArray 9803 9782 -0.2% 1.00x (?)
DropWhileArrayLazy 17045 17031 -0.1% 1.00x (?)
DropWhileCountableRange 6200 6200 +0.0% 1.00x
DropWhileCountableRangeLazy 26474 26468 -0.0% 1.00x (?)
DropWhileSequence 15948 15948 +0.0% 1.00x
DropWhileSequenceLazy 11691 11695 +0.0% 1.00x (?)
EqualStringSubstring 11366 11294 -0.6% 1.01x (?)
EqualSubstringString 11263 11240 -0.2% 1.00x (?)
EqualSubstringSubstring 22112 22072 -0.2% 1.00x (?)
EqualSubstringSubstringGenericEquatable 22088 22067 -0.1% 1.00x (?)
ErrorHandling 6738 6677 -0.9% 1.01x (?)
GlobalClass 0 0 +0.0% 1.00x
Hanoi 19133 19137 +0.0% 1.00x (?)
HashTest 18313 18304 -0.0% 1.00x (?)
Histogram 8655 8657 +0.0% 1.00x (?)
Integrate 746 749 +0.4% 1.00x (?)
IterateData 12815 12789 -0.2% 1.00x
Join 1202 1201 -0.1% 1.00x (?)
LazilyFilteredArrays 1733192 1732907 -0.0% 1.00x (?)
LazilyFilteredRange 674998 675319 +0.0% 1.00x (?)
LessSubstringSubstring 22060 22065 +0.0% 1.00x (?)
LessSubstringSubstringGenericComparable 22081 22067 -0.1% 1.00x (?)
LinkedList 43643 43647 +0.0% 1.00x (?)
MapReduce 37891 37893 +0.0% 1.00x (?)
MapReduceAnyCollection 38270 38273 +0.0% 1.00x (?)
MapReduceAnyCollectionShort 50472 50473 +0.0% 1.00x (?)
MapReduceClass 43736 43732 -0.0% 1.00x (?)
MapReduceClassShort 54707 54694 -0.0% 1.00x (?)
MapReduceLazyCollection 32985 33026 +0.1% 1.00x (?)
MapReduceLazyCollectionShort 44212 44493 +0.6% 0.99x (?)
MapReduceLazySequence 25797 25792 -0.0% 1.00x (?)
MapReduceSequence 41983 41993 +0.0% 1.00x
MapReduceShort 49915 49976 +0.1% 1.00x (?)
MapReduceShortString 273 273 +0.0% 1.00x
MapReduceString 2566 2566 +0.0% 1.00x
Memset 43949 43937 -0.0% 1.00x (?)
MonteCarloE 133831 133841 +0.0% 1.00x (?)
MonteCarloPi 53451 53451 +0.0% 1.00x
NSDictionaryCastToSwift 6718 6687 -0.5% 1.00x (?)
NSError 698 732 +4.9% 0.95x (?)
NSStringConversion 1325 1325 +0.0% 1.00x
NopDeinit 190216 190450 +0.1% 1.00x (?)
ObjectAllocation 1468 1471 +0.2% 1.00x
ObjectiveCBridgeFromNSArrayAnyObject 25866 25964 +0.4% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 7845 8116 +3.5% 0.97x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 45564 45517 -0.1% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 39005 39409 +1.0% 0.99x
ObjectiveCBridgeFromNSDictionaryAnyObject 122821 121639 -1.0% 1.01x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 7370 7714 +4.7% 0.96x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 109587 109336 -0.2% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 92593 94202 +1.7% 0.98x (?)
ObjectiveCBridgeFromNSSetAnyObject 67929 67819 -0.2% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 7173 7455 +3.9% 0.96x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 76392 78809 +3.2% 0.97x
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 67268 67435 +0.2% 1.00x (?)
ObjectiveCBridgeFromNSString 4033 4027 -0.1% 1.00x (?)
ObjectiveCBridgeFromNSStringForced 2719 2723 +0.1% 1.00x (?)
ObjectiveCBridgeStubDataAppend 3759 3752 -0.2% 1.00x (?)
ObjectiveCBridgeStubDateAccess 1030 1030 +0.0% 1.00x
ObjectiveCBridgeStubDateMutation 515 515 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 28842 28858 +0.1% 1.00x (?)
ObjectiveCBridgeStubFromNSDate 3977 3977 +0.0% 1.00x
ObjectiveCBridgeStubFromNSDateRef 4174 4168 -0.1% 1.00x (?)
ObjectiveCBridgeStubFromNSString 937 939 +0.2% 1.00x (?)
ObjectiveCBridgeStubFromNSStringRef 207 208 +0.5% 1.00x (?)
ObjectiveCBridgeStubNSDataAppend 2761 2716 -1.6% 1.02x (?)
ObjectiveCBridgeStubNSDateRefAccess 1218 1228 +0.8% 0.99x (?)
ObjectiveCBridgeStubToArrayOfNSString 29314 28976 -1.2% 1.01x (?)
ObjectiveCBridgeStubToNSDate 14881 15476 +4.0% 0.96x
ObjectiveCBridgeStubToNSDateRef 3437 3370 -1.9% 1.02x
ObjectiveCBridgeStubToNSString 1568 1567 -0.1% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 149 149 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 224101 226744 +1.2% 0.99x (?)
ObjectiveCBridgeStubURLAppendPathRef 222609 223911 +0.6% 0.99x (?)
ObjectiveCBridgeToNSArray 29611 29609 -0.0% 1.00x (?)
ObjectiveCBridgeToNSDictionary 45308 45624 +0.7% 0.99x (?)
ObjectiveCBridgeToNSSet 39741 39871 +0.3% 1.00x (?)
ObjectiveCBridgeToNSString 1308 1308 +0.0% 1.00x
ObserverClosure 6874 6799 -1.1% 1.01x (?)
ObserverForwarderStruct 4836 4838 +0.0% 1.00x (?)
ObserverPartiallyAppliedMethod 8280 8258 -0.3% 1.00x
ObserverUnappliedMethod 9062 9072 +0.1% 1.00x (?)
OpenClose 398 398 +0.0% 1.00x
Phonebook 21453 21490 +0.2% 1.00x (?)
PolymorphicCalls 5328 5327 -0.0% 1.00x (?)
PopFrontArray 7409 7407 -0.0% 1.00x (?)
PopFrontArrayGeneric 6377 6373 -0.1% 1.00x (?)
PopFrontUnsafePointer 97006 99767 +2.8% 0.97x
PrefixAnyCollection 19136 19142 +0.0% 1.00x (?)
PrefixAnyCollectionLazy 134897 137678 +2.1% 0.98x (?)
PrefixAnySeqCRangeIter 23761 23760 -0.0% 1.00x (?)
PrefixAnySeqCRangeIterLazy 23964 23965 +0.0% 1.00x (?)
PrefixAnySeqCntRange 19146 19123 -0.1% 1.00x (?)
PrefixAnySeqCntRangeLazy 19312 19313 +0.0% 1.00x (?)
PrefixAnySequence 10798 11142 +3.2% 0.97x (?)
PrefixAnySequenceLazy 11125 11126 +0.0% 1.00x (?)
PrefixArray 6191 6191 +0.0% 1.00x
PrefixArrayLazy 45524 45531 +0.0% 1.00x (?)
PrefixCountableRange 336 336 +0.0% 1.00x
PrefixCountableRangeLazy 38980 39007 +0.1% 1.00x (?)
PrefixSequence 9790 9789 -0.0% 1.00x (?)
PrefixSequenceLazy 10268 10272 +0.0% 1.00x (?)
PrefixWhileAnyCollection 36589 36614 +0.1% 1.00x (?)
PrefixWhileAnyCollectionLazy 22718 22714 -0.0% 1.00x (?)
PrefixWhileAnySeqCRangeIter 40749 40728 -0.1% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 22533 22525 -0.0% 1.00x (?)
PrefixWhileAnySeqCntRange 36377 36383 +0.0% 1.00x (?)
PrefixWhileAnySeqCntRangeLazy 22634 22628 -0.0% 1.00x (?)
PrefixWhileAnySequence 29807 29968 +0.5% 0.99x (?)
PrefixWhileAnySequenceLazy 11501 11500 -0.0% 1.00x (?)
PrefixWhileArray 16836 16851 +0.1% 1.00x (?)
PrefixWhileArrayLazy 14982 14743 -1.6% 1.02x (?)
PrefixWhileCountableRange 17808 17801 -0.0% 1.00x
PrefixWhileCountableRangeLazy 22007 22000 -0.0% 1.00x (?)
PrefixWhileSequence 28537 28681 +0.5% 0.99x (?)
PrefixWhileSequenceLazy 10453 10637 +1.8% 0.98x (?)
Prims 10170 10168 -0.0% 1.00x (?)
ProtocolDispatch 6975 7052 +1.1% 0.99x (?)
ProtocolDispatch2 491 491 +0.0% 1.00x
RC4 19320 19291 -0.2% 1.00x (?)
RGBHistogram 33748 34022 +0.8% 0.99x (?)
RGBHistogramOfObjects 113238 114064 +0.7% 0.99x (?)
RangeAssignment 5711 5701 -0.2% 1.00x (?)
RecursiveOwnedParameter 11661 11660 -0.0% 1.00x (?)
ReversedArray 46255 45559 -1.5% 1.02x
ReversedBidirectional 77018 76741 -0.4% 1.00x (?)
ReversedDictionary 31286 31646 +1.2% 0.99x (?)
SetExclusiveOr 21241 21203 -0.2% 1.00x (?)
SetExclusiveOr_OfObjects 49284 49068 -0.4% 1.00x (?)
SetIntersect 10849 10851 +0.0% 1.00x (?)
SetIntersect_OfObjects 12776 12770 -0.0% 1.00x (?)
SetIsSubsetOf 1646 1647 +0.1% 1.00x
SetIsSubsetOf_OfObjects 1597 1597 +0.0% 1.00x
SetUnion 12090 12048 -0.3% 1.00x (?)
SetUnion_OfObjects 34266 34338 +0.2% 1.00x
SevenBoom 1598 1609 +0.7% 0.99x
Sim2DArray 30034 30029 -0.0% 1.00x (?)
SortLargeExistentials 17812 17841 +0.2% 1.00x (?)
SortLettersInPlace 3208 3209 +0.0% 1.00x (?)
SortSortedStrings 1414 1415 +0.1% 1.00x (?)
SortStrings 2484 2487 +0.1% 1.00x (?)
SortStringsUnicode 8975 8982 +0.1% 1.00x (?)
StackPromo 101473 102517 +1.0% 0.99x (?)
StaticArray 4578 4575 -0.1% 1.00x (?)
StrComplexWalk 6871 6861 -0.1% 1.00x (?)
StrToInt 98527 98116 -0.4% 1.00x
StringAdder 46 46 +0.0% 1.00x
StringBuilder 7071 7049 -0.3% 1.00x (?)
StringBuilderLong 1071 1120 +4.6% 0.96x (?)
StringEdits 383748 384439 +0.2% 1.00x (?)
StringEqualPointerComparison 2400 2398 -0.1% 1.00x (?)
StringFromLongWholeSubstring 11227 11242 +0.1% 1.00x (?)
StringFromLongWholeSubstringGeneric 212 212 +0.0% 1.00x
StringHasPrefix 1781 1779 -0.1% 1.00x (?)
StringHasPrefixUnicode 16277 16265 -0.1% 1.00x (?)
StringHasSuffix 1869 1869 +0.0% 1.00x
StringHasSuffixUnicode 63465 63514 +0.1% 1.00x
StringInterpolation 13881 13891 +0.1% 1.00x (?)
StringMatch 29637 29787 +0.5% 0.99x (?)
StringUTF16Builder 7789 8034 +3.1% 0.97x (?)
StringWalk 13128 13127 -0.0% 1.00x (?)
StringWithCString 68487 68535 +0.1% 1.00x (?)
SubstringComparable 19204 19584 +2.0% 0.98x
SubstringEqualString 9958 9921 -0.4% 1.00x (?)
SubstringEquatable 39330 38962 -0.9% 1.01x (?)
SubstringFromLongString 116 116 +0.0% 1.00x
SubstringFromLongStringGeneric 212 212 +0.0% 1.00x
SuffixAnyCollection 6412 6415 +0.0% 1.00x (?)
SuffixAnyCollectionLazy 45084 45301 +0.5% 1.00x (?)
SuffixAnySeqCRangeIter 41762 41745 -0.0% 1.00x (?)
SuffixAnySeqCRangeIterLazy 41499 41377 -0.3% 1.00x (?)
SuffixAnySeqCntRange 6380 6382 +0.0% 1.00x (?)
SuffixAnySeqCntRangeLazy 6425 6425 +0.0% 1.00x
SuffixAnySequence 27538 27414 -0.5% 1.00x (?)
SuffixAnySequenceLazy 27025 27179 +0.6% 0.99x (?)
SuffixArray 2072 2072 +0.0% 1.00x
SuffixArrayLazy 15178 15120 -0.4% 1.00x
SuffixCountableRange 118 118 +0.0% 1.00x
SuffixCountableRangeLazy 12886 12890 +0.0% 1.00x (?)
SuffixSequence 26733 26699 -0.1% 1.00x (?)
SuffixSequenceLazy 26790 26696 -0.4% 1.00x (?)
SuperChars 208824 211002 +1.0% 0.99x (?)
TwoSum 4324 4325 +0.0% 1.00x (?)
UTF8Decode 36971 37196 +0.6% 0.99x (?)
Walsh 11901 11906 +0.0% 1.00x (?)
XorLoop 23709 23707 -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

@swiftix swiftix merged commit d6bddd2 into swiftlang:master Jun 2, 2017
@atrick
Copy link
Contributor

atrick commented Jun 2, 2017

@swiftix please add this (and any other missing attributes) to HighLevelSILOptimizations.rst.

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