Skip to content

A set of small optimizer improvements in preparation for the early SIL module serialization #11561

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 6 commits into from
Aug 22, 2017

Conversation

swiftix
Copy link
Contributor

@swiftix swiftix commented Aug 22, 2017

  • Do not unroll loops if their bodies contain function calls of big functions. It is more profitable in most cases to inline the big callee rather than unroll the loop, because unrolling it would create a lot of calls which cannot be further optimized due to increased size of the function containing a loop.

  • Run the devirtualizer after the generic specializer. This is very beneficial because many class_method/witness_method instructions may get concrete types after specialization. Doing it this way improves compilation times.

  • Add another round of retain sinking, because not all of possible retains are sunk in one round.

  • [sil-inliner] It is always OK to inline a simple call. A simple call is an invocation of a function without any side-effects, where all passed parameters are constants.

  • [sil-constant-propagation] If an overflow/underflow would happen only in a specialized function, just don't perform the copy propagation in such a case. Do not report any constant propagation issues in (generic) function specializations, because these issues are eventually not visible in the original function and thus would be very misleading and difficult to understand.

…n calls of big functions

It is more profitable in most cases to inline the big callee rather than unroll the loop, because unrolling it would create a lot of calls which cannot be further optimized due to increased size of the function containing a loop.
This is very beneficial because many class_method/witness_method instructions may get concrete types after specialization. Doing it this way improves compilation times.
@swiftix
Copy link
Contributor Author

swiftix commented Aug 22, 2017

@swift-ci please smoke test

@swiftix
Copy link
Contributor Author

swiftix commented Aug 22, 2017

@swift-ci please smoke benchmark

@swiftix
Copy link
Contributor Author

swiftix commented Aug 22, 2017

@aschwaighofer Arnold, you may be interested in this change: 2e5b820

A simple call is an invocation of a function without any side-effects, where all passed parameters are constants.
…onstant for the purposes of the pure invocations checks
… in a specialized function, just don't perform the copy propagation in such a case

Do not report any constant propagation issues in (generic) function specializations, because these issues are eventually not visible in the original function and thus would be very misleading and difficult to understand.
@swift-ci
Copy link
Contributor

Build comment file:

Optimized (O)

Regression (1)
TEST OLD NEW DELTA SPEEDUP
FilterEvenUsingReduceInto 144 152 +5.6% 0.95x (?)
Improvement (2)
TEST OLD NEW DELTA SPEEDUP
PopFrontUnsafePointer 9537 9008 -5.5% 1.06x (?)
DropWhileCountableRange 20 19 -5.0% 1.05x
No Changes (324)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 2938 2938 +0.0% 1.00x
AnyHashableWithAClass 67141 67191 +0.1% 1.00x (?)
Array2D 1941 1942 +0.1% 1.00x (?)
ArrayAppend 1072 1074 +0.2% 1.00x (?)
ArrayAppendArrayOfInt 597 597 +0.0% 1.00x
ArrayAppendAscii 19809 19809 +0.0% 1.00x
ArrayAppendFromGeneric 598 598 +0.0% 1.00x
ArrayAppendGenericStructs 1219 1227 +0.7% 0.99x
ArrayAppendLatin1 40234 40431 +0.5% 1.00x (?)
ArrayAppendLazyMap 925 925 +0.0% 1.00x
ArrayAppendOptionals 1237 1242 +0.4% 1.00x (?)
ArrayAppendRepeatCol 998 998 +0.0% 1.00x
ArrayAppendReserved 841 842 +0.1% 1.00x (?)
ArrayAppendSequence 913 911 -0.2% 1.00x (?)
ArrayAppendStrings 13640 13657 +0.1% 1.00x (?)
ArrayAppendToFromGeneric 597 597 +0.0% 1.00x
ArrayAppendToGeneric 598 597 -0.2% 1.00x
ArrayAppendUTF16 40213 40207 -0.0% 1.00x (?)
ArrayInClass 61 61 +0.0% 1.00x
ArrayLiteral 1219 1222 +0.2% 1.00x
ArrayOfGenericPOD 230 230 +0.0% 1.00x
ArrayOfGenericRef 4027 4028 +0.0% 1.00x (?)
ArrayOfPOD 177 176 -0.6% 1.01x
ArrayOfRef 3887 3889 +0.1% 1.00x (?)
ArrayPlusEqualArrayOfInt 597 597 +0.0% 1.00x
ArrayPlusEqualFiveElementCollection 4806 4784 -0.5% 1.00x (?)
ArrayPlusEqualSingleElementCollection 1075 1075 +0.0% 1.00x
ArrayPlusEqualThreeElements 1620 1624 +0.2% 1.00x (?)
ArraySubscript 1471 1478 +0.5% 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 148 147 -0.7% 1.01x (?)
ByteSwap 115 115 +0.0% 1.00x
CStringLongAscii 4877 4861 -0.3% 1.00x (?)
CStringLongNonAscii 2204 2203 -0.0% 1.00x (?)
CStringShortAscii 4765 4770 +0.1% 1.00x (?)
Calculator 39 39 +0.0% 1.00x
CaptureProp 4852 4852 +0.0% 1.00x
CharIndexing_ascii_unicodeScalars 13043 13044 +0.0% 1.00x
CharIndexing_ascii_unicodeScalars_Backwards 11256 11256 +0.0% 1.00x
CharIndexing_chinese_unicodeScalars 9890 9891 +0.0% 1.00x (?)
CharIndexing_chinese_unicodeScalars_Backwards 8540 8541 +0.0% 1.00x (?)
CharIndexing_japanese_unicodeScalars 15611 15611 +0.0% 1.00x
CharIndexing_japanese_unicodeScalars_Backwards 13476 13474 -0.0% 1.00x (?)
CharIndexing_korean_unicodeScalars 12655 12654 -0.0% 1.00x (?)
CharIndexing_korean_unicodeScalars_Backwards 10928 10927 -0.0% 1.00x (?)
CharIndexing_punctuatedJapanese_unicodeScalars 2409 2409 +0.0% 1.00x
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 2084 2083 -0.0% 1.00x
CharIndexing_punctuated_unicodeScalars 2999 2999 +0.0% 1.00x
CharIndexing_punctuated_unicodeScalars_Backwards 2592 2592 +0.0% 1.00x
CharIndexing_russian_unicodeScalars 10875 10876 +0.0% 1.00x (?)
CharIndexing_russian_unicodeScalars_Backwards 9401 9401 +0.0% 1.00x
CharIndexing_tweet_unicodeScalars 25711 25706 -0.0% 1.00x (?)
CharIndexing_tweet_unicodeScalars_Backwards 22194 22216 +0.1% 1.00x (?)
CharIndexing_utf16_unicodeScalars 77573 77570 -0.0% 1.00x (?)
CharIndexing_utf16_unicodeScalars_Backwards 77572 77572 +0.0% 1.00x
CharIteration_ascii_unicodeScalars 15438 15453 +0.1% 1.00x (?)
CharIteration_ascii_unicodeScalars_Backwards 16373 16374 +0.0% 1.00x (?)
CharIteration_chinese_unicodeScalars 11685 11692 +0.1% 1.00x (?)
CharIteration_chinese_unicodeScalars_Backwards 12396 12396 +0.0% 1.00x
CharIteration_japanese_unicodeScalars 18513 18496 -0.1% 1.00x (?)
CharIteration_japanese_unicodeScalars_Backwards 19604 19604 +0.0% 1.00x
CharIteration_korean_unicodeScalars 15011 15016 +0.0% 1.00x (?)
CharIteration_korean_unicodeScalars_Backwards 15878 15880 +0.0% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars 2813 2812 -0.0% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 2956 2955 -0.0% 1.00x
CharIteration_punctuated_unicodeScalars 3499 3499 +0.0% 1.00x
CharIteration_punctuated_unicodeScalars_Backwards 3698 3698 +0.0% 1.00x
CharIteration_russian_unicodeScalars 12899 12886 -0.1% 1.00x (?)
CharIteration_russian_unicodeScalars_Backwards 13643 13639 -0.0% 1.00x (?)
CharIteration_tweet_unicodeScalars 30441 30430 -0.0% 1.00x (?)
CharIteration_tweet_unicodeScalars_Backwards 32369 32380 +0.0% 1.00x
CharIteration_utf16_unicodeScalars 89460 89474 +0.0% 1.00x (?)
CharIteration_utf16_unicodeScalars_Backwards 113788 113830 +0.0% 1.00x (?)
CharacterLiteralsLarge 6061 6062 +0.0% 1.00x (?)
CharacterLiteralsSmall 404 404 +0.0% 1.00x
Chars 423 423 +0.0% 1.00x
ClassArrayGetter 13 13 +0.0% 1.00x
DeadArray 182 182 +0.0% 1.00x
Dictionary 550 549 -0.2% 1.00x (?)
Dictionary2 1831 1831 +0.0% 1.00x
Dictionary2OfObjects 3309 3318 +0.3% 1.00x (?)
Dictionary3 438 439 +0.2% 1.00x (?)
Dictionary3OfObjects 885 884 -0.1% 1.00x (?)
DictionaryBridge 2547 2549 +0.1% 1.00x (?)
DictionaryGroup 275 275 +0.0% 1.00x
DictionaryGroupOfObjects 1779 1795 +0.9% 0.99x (?)
DictionaryLiteral 1484 1484 +0.0% 1.00x
DictionaryOfObjects 2322 2347 +1.1% 0.99x
DictionaryRemove 2534 2531 -0.1% 1.00x (?)
DictionaryRemoveOfObjects 23213 23198 -0.1% 1.00x (?)
DictionarySwap 417 417 +0.0% 1.00x
DictionarySwapOfObjects 7372 7381 +0.1% 1.00x (?)
DropFirstAnyCollection 55 55 +0.0% 1.00x
DropFirstAnyCollectionLazy 74631 74842 +0.3% 1.00x (?)
DropFirstAnySeqCRangeIter 26748 26760 +0.0% 1.00x (?)
DropFirstAnySeqCRangeIterLazy 26746 26747 +0.0% 1.00x (?)
DropFirstAnySeqCntRange 50 50 +0.0% 1.00x
DropFirstAnySeqCntRangeLazy 50 50 +0.0% 1.00x
DropFirstAnySequence 6209 6207 -0.0% 1.00x
DropFirstAnySequenceLazy 6209 6219 +0.2% 1.00x (?)
DropFirstArray 30 30 +0.0% 1.00x
DropFirstArrayLazy 30 30 +0.0% 1.00x
DropFirstCountableRange 18 18 +0.0% 1.00x
DropFirstCountableRangeLazy 18 18 +0.0% 1.00x
DropFirstSequence 2093 2094 +0.0% 1.00x (?)
DropFirstSequenceLazy 2019 2019 +0.0% 1.00x
DropLastAnyCollection 21 21 +0.0% 1.00x
DropLastAnyCollectionLazy 24903 24909 +0.0% 1.00x (?)
DropLastAnySeqCRangeIter 4728 4726 -0.0% 1.00x (?)
DropLastAnySeqCRangeIterLazy 4727 4725 -0.0% 1.00x (?)
DropLastAnySeqCntRange 12 12 +0.0% 1.00x
DropLastAnySeqCntRangeLazy 12 12 +0.0% 1.00x
DropLastAnySequence 6837 6828 -0.1% 1.00x (?)
DropLastAnySequenceLazy 6684 6684 +0.0% 1.00x
DropLastArray 10 10 +0.0% 1.00x
DropLastArrayLazy 10 10 +0.0% 1.00x
DropLastCountableRange 6 6 +0.0% 1.00x
DropLastCountableRangeLazy 6 6 +0.0% 1.00x
DropLastSequence 609 609 +0.0% 1.00x
DropLastSequenceLazy 607 608 +0.2% 1.00x (?)
DropWhileAnyCollection 68 68 +0.0% 1.00x
DropWhileAnyCollectionLazy 88 89 +1.1% 0.99x
DropWhileAnySeqCRangeIter 21329 21315 -0.1% 1.00x (?)
DropWhileAnySeqCRangeIterLazy 90 90 +0.0% 1.00x
DropWhileAnySeqCntRange 63 63 +0.0% 1.00x
DropWhileAnySeqCntRangeLazy 90 90 +0.0% 1.00x
DropWhileAnySequence 7283 7280 -0.0% 1.00x (?)
DropWhileAnySequenceLazy 2007 2007 +0.0% 1.00x
DropWhileArray 43 43 +0.0% 1.00x
DropWhileArrayLazy 82 82 +0.0% 1.00x
DropWhileCountableRangeLazy 70 70 +0.0% 1.00x
DropWhileSequence 1549 1549 +0.0% 1.00x
DropWhileSequenceLazy 47 47 +0.0% 1.00x
EqualStringSubstring 388 388 +0.0% 1.00x
EqualSubstringString 388 388 +0.0% 1.00x
EqualSubstringSubstring 388 387 -0.3% 1.00x (?)
EqualSubstringSubstringGenericEquatable 389 389 +0.0% 1.00x
ErrorHandling 2009 2029 +1.0% 0.99x
FilterEvenUsingReduce 1326 1328 +0.2% 1.00x (?)
FrequenciesUsingReduce 7209 7232 +0.3% 1.00x (?)
FrequenciesUsingReduceInto 4247 4249 +0.0% 1.00x (?)
Hanoi 3555 3590 +1.0% 0.99x (?)
HashTest 1703 1711 +0.5% 1.00x
Histogram 284 284 +0.0% 1.00x
Integrate 262 262 +0.0% 1.00x
IterateData 756 757 +0.1% 1.00x (?)
Join 381 381 +0.0% 1.00x
LazilyFilteredArrays 64581 64555 -0.0% 1.00x (?)
LazilyFilteredRange 3624 3621 -0.1% 1.00x (?)
LessSubstringSubstring 383 383 +0.0% 1.00x
LessSubstringSubstringGenericComparable 386 386 +0.0% 1.00x
LinkedList 7052 7052 +0.0% 1.00x
MapReduce 361 361 +0.0% 1.00x
MapReduceAnyCollection 363 362 -0.3% 1.00x (?)
MapReduceAnyCollectionShort 2090 2094 +0.2% 1.00x (?)
MapReduceClass 3059 3064 +0.2% 1.00x (?)
MapReduceClassShort 4536 4539 +0.1% 1.00x (?)
MapReduceLazyCollection 12 12 +0.0% 1.00x
MapReduceLazyCollectionShort 36 36 +0.0% 1.00x
MapReduceLazySequence 90 90 +0.0% 1.00x
MapReduceSequence 440 443 +0.7% 0.99x
MapReduceShort 1982 1982 +0.0% 1.00x
MapReduceShortString 22 21 -4.5% 1.05x
MapReduceString 105 105 +0.0% 1.00x
Memset 234 234 +0.0% 1.00x
MonteCarloE 10330 10332 +0.0% 1.00x (?)
MonteCarloPi 44002 44003 +0.0% 1.00x (?)
NSDictionaryCastToSwift 5696 5747 +0.9% 0.99x (?)
NSError 292 292 +0.0% 1.00x
NSStringConversion 358 357 -0.3% 1.00x (?)
NopDeinit 21374 21386 +0.1% 1.00x
ObjectAllocation 178 180 +1.1% 0.99x
ObjectiveCBridgeFromNSArrayAnyObject 22552 22467 -0.4% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 3445 3450 +0.1% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 39077 39666 +1.5% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 33073 32960 -0.3% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 118937 119784 +0.7% 0.99x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 5120 5097 -0.4% 1.00x
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 93657 95210 +1.7% 0.98x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 100491 99152 -1.3% 1.01x (?)
ObjectiveCBridgeFromNSSetAnyObject 64988 64778 -0.3% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 4269 4229 -0.9% 1.01x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 67986 67543 -0.7% 1.01x (?)
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 68676 68219 -0.7% 1.01x (?)
ObjectiveCBridgeFromNSString 988 988 +0.0% 1.00x
ObjectiveCBridgeFromNSStringForced 1817 1817 +0.0% 1.00x
ObjectiveCBridgeStubDataAppend 3686 3675 -0.3% 1.00x (?)
ObjectiveCBridgeStubDateAccess 181 181 +0.0% 1.00x
ObjectiveCBridgeStubDateMutation 272 272 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 24764 24779 +0.1% 1.00x (?)
ObjectiveCBridgeStubFromNSDate 3800 3792 -0.2% 1.00x (?)
ObjectiveCBridgeStubFromNSDateRef 4063 4067 +0.1% 1.00x (?)
ObjectiveCBridgeStubFromNSString 541 543 +0.4% 1.00x (?)
ObjectiveCBridgeStubFromNSStringRef 140 140 +0.0% 1.00x
ObjectiveCBridgeStubNSDataAppend 2432 2448 +0.7% 0.99x (?)
ObjectiveCBridgeStubNSDateMutationRef 12551 13002 +3.6% 0.97x (?)
ObjectiveCBridgeStubNSDateRefAccess 338 338 +0.0% 1.00x
ObjectiveCBridgeStubToArrayOfNSString 29172 29915 +2.5% 0.98x
ObjectiveCBridgeStubToNSDate 14965 14998 +0.2% 1.00x (?)
ObjectiveCBridgeStubToNSDateRef 3268 3282 +0.4% 1.00x (?)
ObjectiveCBridgeStubToNSString 1495 1495 +0.0% 1.00x
ObjectiveCBridgeStubToNSStringRef 109 109 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 224318 221095 -1.4% 1.01x (?)
ObjectiveCBridgeStubURLAppendPathRef 218479 222355 +1.8% 0.98x (?)
ObjectiveCBridgeToNSArray 29739 29885 +0.5% 1.00x (?)
ObjectiveCBridgeToNSDictionary 45079 44844 -0.5% 1.01x (?)
ObjectiveCBridgeToNSSet 39357 39523 +0.4% 1.00x (?)
ObjectiveCBridgeToNSString 1272 1265 -0.6% 1.01x
ObserverClosure 2265 2260 -0.2% 1.00x (?)
ObserverForwarderStruct 1094 1109 +1.4% 0.99x
ObserverPartiallyAppliedMethod 3742 3743 +0.0% 1.00x (?)
ObserverUnappliedMethod 2614 2616 +0.1% 1.00x (?)
OpenClose 3 3 +0.0% 1.00x
Phonebook 6252 6251 -0.0% 1.00x (?)
PolymorphicCalls 17 17 +0.0% 1.00x
PopFrontArray 1224 1226 +0.2% 1.00x
PopFrontArrayGeneric 1222 1228 +0.5% 1.00x
PrefixAnyCollection 55 55 +0.0% 1.00x
PrefixAnyCollectionLazy 74545 74792 +0.3% 1.00x (?)
PrefixAnySeqCRangeIter 21019 21014 -0.0% 1.00x
PrefixAnySeqCRangeIterLazy 21015 21004 -0.1% 1.00x (?)
PrefixAnySeqCntRange 50 50 +0.0% 1.00x
PrefixAnySeqCntRangeLazy 50 50 +0.0% 1.00x
PrefixAnySequence 5592 5592 +0.0% 1.00x
PrefixAnySequenceLazy 5624 5613 -0.2% 1.00x (?)
PrefixArray 30 30 +0.0% 1.00x
PrefixArrayLazy 30 30 +0.0% 1.00x
PrefixCountableRange 19 19 +0.0% 1.00x
PrefixCountableRangeLazy 18 18 +0.0% 1.00x
PrefixSequence 1571 1571 +0.0% 1.00x
PrefixSequenceLazy 1515 1515 +0.0% 1.00x
PrefixWhileAnyCollection 93 93 +0.0% 1.00x
PrefixWhileAnyCollectionLazy 66 66 +0.0% 1.00x
PrefixWhileAnySeqCRangeIter 12925 12912 -0.1% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 57 57 +0.0% 1.00x
PrefixWhileAnySeqCntRange 88 88 +0.0% 1.00x
PrefixWhileAnySeqCntRangeLazy 57 57 +0.0% 1.00x
PrefixWhileAnySequence 14357 14372 +0.1% 1.00x (?)
PrefixWhileAnySequenceLazy 1492 1492 +0.0% 1.00x
PrefixWhileArray 74 74 +0.0% 1.00x
PrefixWhileArrayLazy 37 37 +0.0% 1.00x
PrefixWhileCountableRange 29 29 +0.0% 1.00x
PrefixWhileCountableRangeLazy 19 19 +0.0% 1.00x
PrefixWhileSequence 356 356 +0.0% 1.00x
PrefixWhileSequenceLazy 28 28 +0.0% 1.00x
Prims 765 765 +0.0% 1.00x
ProtocolDispatch 2734 2733 -0.0% 1.00x (?)
ProtocolDispatch2 161 161 +0.0% 1.00x
RC4 157 157 +0.0% 1.00x
RGBHistogram 2290 2278 -0.5% 1.01x (?)
RGBHistogramOfObjects 23422 23418 -0.0% 1.00x (?)
RangeAssignment 365 362 -0.8% 1.01x (?)
RecursiveOwnedParameter 2318 2314 -0.2% 1.00x (?)
ReversedArray 46 46 +0.0% 1.00x
ReversedBidirectional 29111 29151 +0.1% 1.00x (?)
ReversedDictionary 110 107 -2.7% 1.03x (?)
SetExclusiveOr 3084 3093 +0.3% 1.00x (?)
SetExclusiveOr_OfObjects 8019 7965 -0.7% 1.01x (?)
SetIntersect 262 262 +0.0% 1.00x
SetIntersect_OfObjects 1727 1726 -0.1% 1.00x (?)
SetIsSubsetOf 295 295 +0.0% 1.00x
SetIsSubsetOf_OfObjects 363 363 +0.0% 1.00x
SetUnion 2602 2613 +0.4% 1.00x
SetUnion_OfObjects 6623 6621 -0.0% 1.00x (?)
SevenBoom 1482 1481 -0.1% 1.00x (?)
Sim2DArray 348 348 +0.0% 1.00x
SortLargeExistentials 8150 8131 -0.2% 1.00x (?)
SortLettersInPlace 1143 1144 +0.1% 1.00x
SortSortedStrings 886 886 +0.0% 1.00x
SortStrings 1717 1717 +0.0% 1.00x
SortStringsUnicode 7895 7903 +0.1% 1.00x
StackPromo 22339 22335 -0.0% 1.00x (?)
StaticArray 18 18 +0.0% 1.00x
StrComplexWalk 715 715 +0.0% 1.00x
StrToInt 1824 1824 +0.0% 1.00x
StringAdder 3503 3573 +2.0% 0.98x (?)
StringBuilder 1026 1031 +0.5% 1.00x
StringBuilderLong 932 932 +0.0% 1.00x
StringEdits 114400 114390 -0.0% 1.00x (?)
StringEqualPointerComparison 272 272 +0.0% 1.00x
StringFromLongWholeSubstring 205 206 +0.5% 1.00x
StringFromLongWholeSubstringGeneric 23 23 +0.0% 1.00x
StringHasPrefix 9 9 +0.0% 1.00x
StringHasPrefixUnicode 14949 14956 +0.0% 1.00x (?)
StringHasSuffix 9 9 +0.0% 1.00x
StringHasSuffixUnicode 61290 61265 -0.0% 1.00x (?)
StringInterpolation 10738 10817 +0.7% 0.99x (?)
StringMatch 7610 7606 -0.1% 1.00x (?)
StringUTF16Builder 1927 1917 -0.5% 1.01x (?)
StringWalk 1339 1338 -0.1% 1.00x (?)
StringWithCString 62979 61231 -2.8% 1.03x (?)
SubstringComparable 1570 1572 +0.1% 1.00x
SubstringEqualString 1418 1419 +0.1% 1.00x (?)
SubstringEquatable 3438 3436 -0.1% 1.00x (?)
SubstringFromLongString 15 15 +0.0% 1.00x
SubstringFromLongStringGeneric 69 69 +0.0% 1.00x
SuffixAnyCollection 21 21 +0.0% 1.00x
SuffixAnyCollectionLazy 24922 25111 +0.8% 0.99x (?)
SuffixAnySeqCRangeIter 5031 5039 +0.2% 1.00x (?)
SuffixAnySeqCRangeIterLazy 5047 5033 -0.3% 1.00x
SuffixAnySeqCntRange 12 12 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 12 12 +0.0% 1.00x
SuffixAnySequence 6932 6932 +0.0% 1.00x
SuffixAnySequenceLazy 6724 6723 -0.0% 1.00x (?)
SuffixArray 10 10 +0.0% 1.00x
SuffixArrayLazy 10 10 +0.0% 1.00x
SuffixCountableRange 6 6 +0.0% 1.00x
SuffixCountableRangeLazy 6 6 +0.0% 1.00x
SuffixSequence 4658 4653 -0.1% 1.00x (?)
SuffixSequenceLazy 4688 4739 +1.1% 0.99x (?)
SumUsingReduce 96 96 +0.0% 1.00x
SumUsingReduceInto 97 97 +0.0% 1.00x
SuperChars 81250 81175 -0.1% 1.00x (?)
TwoSum 975 973 -0.2% 1.00x (?)
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode 258 258 +0.0% 1.00x
Walsh 381 381 +0.0% 1.00x
XorLoop 347 347 +0.0% 1.00x
accessGlobal 3 3 +0.0% 1.00x
accessInMatSet 18 18 +0.0% 1.00x
accessIndependent 2 2 +0.0% 1.00x

Unoptimized (Onone)

Regression (1)
TEST OLD NEW DELTA SPEEDUP
ObjectiveCBridgeFromNSSetAnyObjectToString 73478 77371 +5.3% 0.95x
No Changes (326)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 4962 4976 +0.3% 1.00x (?)
AnyHashableWithAClass 85646 85604 -0.0% 1.00x (?)
Array2D 638455 638445 -0.0% 1.00x (?)
ArrayAppend 4227 4228 +0.0% 1.00x (?)
ArrayAppendArrayOfInt 655 655 +0.0% 1.00x
ArrayAppendAscii 55476 55476 +0.0% 1.00x
ArrayAppendFromGeneric 659 659 +0.0% 1.00x
ArrayAppendGenericStructs 1309 1366 +4.4% 0.96x
ArrayAppendLatin1 82863 83768 +1.1% 0.99x (?)
ArrayAppendLazyMap 232533 232527 -0.0% 1.00x (?)
ArrayAppendOptionals 1356 1296 -4.4% 1.05x
ArrayAppendRepeatCol 217230 216981 -0.1% 1.00x
ArrayAppendReserved 4253 4255 +0.0% 1.00x (?)
ArrayAppendSequence 75436 75460 +0.0% 1.00x (?)
ArrayAppendStrings 13620 13659 +0.3% 1.00x (?)
ArrayAppendToFromGeneric 657 658 +0.2% 1.00x (?)
ArrayAppendToGeneric 659 659 +0.0% 1.00x
ArrayAppendUTF16 78511 78484 -0.0% 1.00x (?)
ArrayInClass 6399 6409 +0.2% 1.00x (?)
ArrayLiteral 1743 1743 +0.0% 1.00x
ArrayOfGenericPOD 1382 1382 +0.0% 1.00x
ArrayOfGenericRef 10058 10055 -0.0% 1.00x (?)
ArrayOfPOD 790 790 +0.0% 1.00x
ArrayOfRef 9209 9203 -0.1% 1.00x (?)
ArrayPlusEqualArrayOfInt 657 656 -0.2% 1.00x (?)
ArrayPlusEqualFiveElementCollection 309656 309136 -0.2% 1.00x (?)
ArrayPlusEqualSingleElementCollection 307417 307100 -0.1% 1.00x (?)
ArrayPlusEqualThreeElements 11268 11212 -0.5% 1.00x
ArraySubscript 4379 4356 -0.5% 1.01x
ArrayValueProp 3535 3543 +0.2% 1.00x (?)
ArrayValueProp2 18918 18925 +0.0% 1.00x (?)
ArrayValueProp3 3941 3939 -0.1% 1.00x (?)
ArrayValueProp4 3826 3828 +0.1% 1.00x (?)
BitCount 1682 1681 -0.1% 1.00x
ByteSwap 4142 4133 -0.2% 1.00x (?)
CStringLongAscii 4831 4824 -0.1% 1.00x (?)
CStringLongNonAscii 2380 2381 +0.0% 1.00x (?)
CStringShortAscii 8781 8757 -0.3% 1.00x (?)
Calculator 1206 1205 -0.1% 1.00x (?)
CaptureProp 126010 126021 +0.0% 1.00x (?)
CharIndexing_ascii_unicodeScalars 487631 487028 -0.1% 1.00x (?)
CharIndexing_ascii_unicodeScalars_Backwards 544954 544373 -0.1% 1.00x (?)
CharIndexing_chinese_unicodeScalars 370795 371569 +0.2% 1.00x (?)
CharIndexing_chinese_unicodeScalars_Backwards 412040 413813 +0.4% 1.00x (?)
CharIndexing_japanese_unicodeScalars 594578 587960 -1.1% 1.01x (?)
CharIndexing_japanese_unicodeScalars_Backwards 660306 654436 -0.9% 1.01x
CharIndexing_korean_unicodeScalars 476925 474048 -0.6% 1.01x (?)
CharIndexing_korean_unicodeScalars_Backwards 529888 525647 -0.8% 1.01x (?)
CharIndexing_punctuatedJapanese_unicodeScalars 85198 84536 -0.8% 1.01x (?)
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 95378 96721 +1.4% 0.99x (?)
CharIndexing_punctuated_unicodeScalars 106567 106777 +0.2% 1.00x (?)
CharIndexing_punctuated_unicodeScalars_Backwards 121387 120392 -0.8% 1.01x (?)
CharIndexing_russian_unicodeScalars 410683 406352 -1.1% 1.01x
CharIndexing_russian_unicodeScalars_Backwards 449887 455774 +1.3% 0.99x (?)
CharIndexing_tweet_unicodeScalars 967133 967174 +0.0% 1.00x (?)
CharIndexing_tweet_unicodeScalars_Backwards 1093255 1092416 -0.1% 1.00x (?)
CharIndexing_utf16_unicodeScalars 538068 538903 +0.2% 1.00x (?)
CharIndexing_utf16_unicodeScalars_Backwards 586621 593308 +1.1% 0.99x (?)
CharIteration_ascii_unicodeScalars 184268 184360 +0.0% 1.00x
CharIteration_ascii_unicodeScalars_Backwards 326698 326044 -0.2% 1.00x (?)
CharIteration_chinese_unicodeScalars 139368 139369 +0.0% 1.00x (?)
CharIteration_chinese_unicodeScalars_Backwards 247031 247686 +0.3% 1.00x (?)
CharIteration_japanese_unicodeScalars 220289 220180 -0.0% 1.00x
CharIteration_japanese_unicodeScalars_Backwards 390049 390309 +0.1% 1.00x (?)
CharIteration_korean_unicodeScalars 179243 178956 -0.2% 1.00x
CharIteration_korean_unicodeScalars_Backwards 315611 317105 +0.5% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars 32798 32797 -0.0% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 56906 56638 -0.5% 1.00x (?)
CharIteration_punctuated_unicodeScalars 41621 41601 -0.0% 1.00x (?)
CharIteration_punctuated_unicodeScalars_Backwards 71393 71429 +0.1% 1.00x (?)
CharIteration_russian_unicodeScalars 152784 152787 +0.0% 1.00x (?)
CharIteration_russian_unicodeScalars_Backwards 270898 271162 +0.1% 1.00x (?)
CharIteration_tweet_unicodeScalars 364709 364792 +0.0% 1.00x (?)
CharIteration_tweet_unicodeScalars_Backwards 643922 645594 +0.3% 1.00x (?)
CharIteration_utf16_unicodeScalars 213716 213510 -0.1% 1.00x
CharIteration_utf16_unicodeScalars_Backwards 403267 403573 +0.1% 1.00x (?)
CharacterLiteralsLarge 6167 6186 +0.3% 1.00x
CharacterLiteralsSmall 656 656 +0.0% 1.00x
Chars 50640 50630 -0.0% 1.00x (?)
ClassArrayGetter 1026 1026 +0.0% 1.00x
DeadArray 116112 114243 -1.6% 1.02x (?)
Dictionary 3098 3096 -0.1% 1.00x (?)
Dictionary2 3456 3455 -0.0% 1.00x (?)
Dictionary2OfObjects 6036 6064 +0.5% 1.00x (?)
Dictionary3 1302 1302 +0.0% 1.00x
Dictionary3OfObjects 2319 2311 -0.3% 1.00x (?)
DictionaryBridge 2641 2637 -0.2% 1.00x (?)
DictionaryGroup 5207 5205 -0.0% 1.00x (?)
DictionaryGroupOfObjects 8312 8316 +0.0% 1.00x (?)
DictionaryLiteral 8669 8661 -0.1% 1.00x (?)
DictionaryOfObjects 6602 6608 +0.1% 1.00x (?)
DictionaryRemove 22456 22488 +0.1% 1.00x (?)
DictionaryRemoveOfObjects 59997 59151 -1.4% 1.01x (?)
DictionarySwap 5393 5370 -0.4% 1.00x (?)
DictionarySwapOfObjects 23213 23230 +0.1% 1.00x (?)
DropFirstAnyCollection 19224 19237 +0.1% 1.00x (?)
DropFirstAnyCollectionLazy 138158 138657 +0.4% 1.00x (?)
DropFirstAnySeqCRangeIter 28763 28761 -0.0% 1.00x (?)
DropFirstAnySeqCRangeIterLazy 29476 29466 -0.0% 1.00x (?)
DropFirstAnySeqCntRange 19342 19343 +0.0% 1.00x (?)
DropFirstAnySeqCntRangeLazy 18915 18924 +0.0% 1.00x
DropFirstAnySequence 14668 14665 -0.0% 1.00x (?)
DropFirstAnySequenceLazy 14892 14888 -0.0% 1.00x
DropFirstArray 6250 6250 +0.0% 1.00x
DropFirstArrayLazy 44878 44884 +0.0% 1.00x (?)
DropFirstCountableRange 338 339 +0.3% 1.00x
DropFirstCountableRangeLazy 37212 37300 +0.2% 1.00x (?)
DropFirstSequence 13528 13529 +0.0% 1.00x (?)
DropFirstSequenceLazy 13520 13522 +0.0% 1.00x (?)
DropLastAnyCollection 6421 6420 -0.0% 1.00x (?)
DropLastAnyCollectionLazy 45904 45928 +0.1% 1.00x (?)
DropLastAnySeqCRangeIter 46069 46021 -0.1% 1.00x
DropLastAnySeqCRangeIterLazy 45585 45602 +0.0% 1.00x (?)
DropLastAnySeqCntRange 6450 6452 +0.0% 1.00x
DropLastAnySeqCntRangeLazy 6301 6301 +0.0% 1.00x
DropLastAnySequence 32407 32434 +0.1% 1.00x (?)
DropLastAnySequenceLazy 32472 32469 -0.0% 1.00x (?)
DropLastArray 2092 2092 +0.0% 1.00x
DropLastArrayLazy 14985 14986 +0.0% 1.00x (?)
DropLastCountableRange 118 118 +0.0% 1.00x
DropLastCountableRangeLazy 12407 12375 -0.3% 1.00x (?)
DropLastSequence 32158 32629 +1.5% 0.99x (?)
DropLastSequenceLazy 32341 32922 +1.8% 0.98x (?)
DropWhileAnyCollection 25079 25066 -0.1% 1.00x (?)
DropWhileAnyCollectionLazy 27357 27296 -0.2% 1.00x
DropWhileAnySeqCRangeIter 30582 30598 +0.1% 1.00x (?)
DropWhileAnySeqCRangeIterLazy 27916 27929 +0.0% 1.00x (?)
DropWhileAnySeqCntRange 24828 24824 -0.0% 1.00x (?)
DropWhileAnySeqCntRangeLazy 27355 27313 -0.2% 1.00x (?)
DropWhileAnySequence 17605 17607 +0.0% 1.00x (?)
DropWhileAnySequenceLazy 14259 14259 +0.0% 1.00x
DropWhileArray 10037 10033 -0.0% 1.00x
DropWhileArrayLazy 18011 18017 +0.0% 1.00x
DropWhileCountableRange 6222 6222 +0.0% 1.00x
DropWhileCountableRangeLazy 26953 26952 -0.0% 1.00x (?)
DropWhileSequence 16498 16499 +0.0% 1.00x (?)
DropWhileSequenceLazy 12664 12666 +0.0% 1.00x (?)
EqualStringSubstring 674 676 +0.3% 1.00x (?)
EqualSubstringString 672 672 +0.0% 1.00x
EqualSubstringSubstring 785 785 +0.0% 1.00x
EqualSubstringSubstringGenericEquatable 425 425 +0.0% 1.00x
ErrorHandling 6836 6771 -1.0% 1.01x (?)
FilterEvenUsingReduce 4333 4334 +0.0% 1.00x (?)
FilterEvenUsingReduceInto 2510 2513 +0.1% 1.00x (?)
FrequenciesUsingReduce 16162 16111 -0.3% 1.00x (?)
FrequenciesUsingReduceInto 9373 9323 -0.5% 1.01x (?)
Hanoi 19387 19415 +0.1% 1.00x (?)
HashTest 17582 17558 -0.1% 1.00x (?)
Histogram 9079 9112 +0.4% 1.00x (?)
Integrate 715 714 -0.1% 1.00x (?)
IterateData 13294 13292 -0.0% 1.00x (?)
Join 1513 1515 +0.1% 1.00x (?)
LazilyFilteredArrays 1734359 1732216 -0.1% 1.00x (?)
LazilyFilteredRange 672350 672368 +0.0% 1.00x (?)
LessSubstringSubstring 795 796 +0.1% 1.00x
LessSubstringSubstringGenericComparable 439 438 -0.2% 1.00x
LinkedList 40052 40047 -0.0% 1.00x (?)
MapReduce 39346 39393 +0.1% 1.00x
MapReduceAnyCollection 39149 39118 -0.1% 1.00x (?)
MapReduceAnyCollectionShort 51780 51810 +0.1% 1.00x (?)
MapReduceClass 44353 44365 +0.0% 1.00x (?)
MapReduceClassShort 55648 55874 +0.4% 1.00x (?)
MapReduceLazyCollection 35900 35736 -0.5% 1.00x (?)
MapReduceLazyCollectionShort 46809 46821 +0.0% 1.00x (?)
MapReduceLazySequence 28797 28785 -0.0% 1.00x (?)
MapReduceSequence 44761 44738 -0.1% 1.00x (?)
MapReduceShort 51823 52020 +0.4% 1.00x (?)
MapReduceShortString 289 286 -1.0% 1.01x (?)
MapReduceString 2759 2761 +0.1% 1.00x (?)
Memset 44670 44671 +0.0% 1.00x (?)
MonteCarloE 134986 134947 -0.0% 1.00x (?)
MonteCarloPi 52521 52506 -0.0% 1.00x
NSDictionaryCastToSwift 6748 6768 +0.3% 1.00x (?)
NSError 710 699 -1.5% 1.02x (?)
NSStringConversion 391 390 -0.3% 1.00x (?)
NopDeinit 168555 168567 +0.0% 1.00x (?)
ObjectAllocation 1458 1461 +0.2% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObject 24358 24524 +0.7% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 6783 6856 +1.1% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 40737 40091 -1.6% 1.02x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 33687 34730 +3.1% 0.97x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 123508 122248 -1.0% 1.01x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 7367 7352 -0.2% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 99953 99090 -0.9% 1.01x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 103959 101628 -2.2% 1.02x (?)
ObjectiveCBridgeFromNSSetAnyObject 69485 69341 -0.2% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 7534 7541 +0.1% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 72338 73380 +1.4% 0.99x (?)
ObjectiveCBridgeFromNSString 3970 3979 +0.2% 1.00x (?)
ObjectiveCBridgeFromNSStringForced 2202 2203 +0.0% 1.00x (?)
ObjectiveCBridgeStubDataAppend 3977 3923 -1.4% 1.01x (?)
ObjectiveCBridgeStubDateAccess 1031 1030 -0.1% 1.00x (?)
ObjectiveCBridgeStubDateMutation 515 515 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 25513 24946 -2.2% 1.02x (?)
ObjectiveCBridgeStubFromNSDate 4418 4413 -0.1% 1.00x
ObjectiveCBridgeStubFromNSDateRef 4530 4529 -0.0% 1.00x (?)
ObjectiveCBridgeStubFromNSString 579 580 +0.2% 1.00x (?)
ObjectiveCBridgeStubFromNSStringRef 194 194 +0.0% 1.00x
ObjectiveCBridgeStubNSDataAppend 2902 2841 -2.1% 1.02x (?)
ObjectiveCBridgeStubNSDateMutationRef 15860 15992 +0.8% 0.99x (?)
ObjectiveCBridgeStubNSDateRefAccess 1211 1211 +0.0% 1.00x
ObjectiveCBridgeStubToArrayOfNSString 29362 29938 +2.0% 0.98x (?)
ObjectiveCBridgeStubToNSDate 15802 15164 -4.0% 1.04x (?)
ObjectiveCBridgeStubToNSDateRef 3367 3338 -0.9% 1.01x (?)
ObjectiveCBridgeStubToNSString 1553 1554 +0.1% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 155 155 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 225692 222125 -1.6% 1.02x (?)
ObjectiveCBridgeStubURLAppendPathRef 223334 222696 -0.3% 1.00x (?)
ObjectiveCBridgeToNSArray 29664 29641 -0.1% 1.00x (?)
ObjectiveCBridgeToNSDictionary 45244 45413 +0.4% 1.00x (?)
ObjectiveCBridgeToNSSet 40100 40037 -0.2% 1.00x (?)
ObjectiveCBridgeToNSString 1301 1302 +0.1% 1.00x (?)
ObserverClosure 7025 7025 +0.0% 1.00x
ObserverForwarderStruct 5025 5026 +0.0% 1.00x (?)
ObserverPartiallyAppliedMethod 8394 8396 +0.0% 1.00x (?)
ObserverUnappliedMethod 8797 8761 -0.4% 1.00x (?)
OpenClose 408 405 -0.7% 1.01x (?)
Phonebook 22472 22453 -0.1% 1.00x (?)
PolymorphicCalls 5159 5155 -0.1% 1.00x (?)
PopFrontArray 10259 10261 +0.0% 1.00x (?)
PopFrontArrayGeneric 9099 9103 +0.0% 1.00x (?)
PopFrontUnsafePointer 97080 97084 +0.0% 1.00x (?)
PrefixAnyCollection 19253 19259 +0.0% 1.00x (?)
PrefixAnyCollectionLazy 137298 138034 +0.5% 0.99x (?)
PrefixAnySeqCRangeIter 22733 22748 +0.1% 1.00x (?)
PrefixAnySeqCRangeIterLazy 23179 23169 -0.0% 1.00x (?)
PrefixAnySeqCntRange 19311 19308 -0.0% 1.00x (?)
PrefixAnySeqCntRangeLazy 18945 18936 -0.0% 1.00x (?)
PrefixAnySequence 12078 12077 -0.0% 1.00x (?)
PrefixAnySequenceLazy 12069 12076 +0.1% 1.00x (?)
PrefixArray 6248 6248 +0.0% 1.00x
PrefixArrayLazy 45426 45433 +0.0% 1.00x (?)
PrefixCountableRange 339 339 +0.0% 1.00x
PrefixCountableRangeLazy 37144 37187 +0.1% 1.00x (?)
PrefixSequence 10924 10926 +0.0% 1.00x (?)
PrefixSequenceLazy 10912 10909 -0.0% 1.00x (?)
PrefixWhileAnyCollection 36338 36331 -0.0% 1.00x (?)
PrefixWhileAnyCollectionLazy 22757 22556 -0.9% 1.01x (?)
PrefixWhileAnySeqCRangeIter 41942 42000 +0.1% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 22835 22835 +0.0% 1.00x
PrefixWhileAnySeqCntRange 36055 36055 +0.0% 1.00x
PrefixWhileAnySeqCntRangeLazy 22547 22526 -0.1% 1.00x (?)
PrefixWhileAnySequence 32133 32071 -0.2% 1.00x (?)
PrefixWhileAnySequenceLazy 12592 12591 -0.0% 1.00x (?)
PrefixWhileArray 17337 17338 +0.0% 1.00x (?)
PrefixWhileArrayLazy 15331 15333 +0.0% 1.00x (?)
PrefixWhileCountableRange 17647 17645 -0.0% 1.00x (?)
PrefixWhileCountableRangeLazy 21640 21633 -0.0% 1.00x (?)
PrefixWhileSequence 30889 30879 -0.0% 1.00x (?)
PrefixWhileSequenceLazy 12151 12146 -0.0% 1.00x (?)
Prims 10593 10603 +0.1% 1.00x (?)
ProtocolDispatch 6957 6952 -0.1% 1.00x (?)
ProtocolDispatch2 489 489 +0.0% 1.00x
RC4 18728 18725 -0.0% 1.00x (?)
RGBHistogram 34777 34783 +0.0% 1.00x (?)
RGBHistogramOfObjects 108381 108183 -0.2% 1.00x (?)
RangeAssignment 5795 5927 +2.3% 0.98x (?)
RecursiveOwnedParameter 11193 11192 -0.0% 1.00x (?)
ReversedArray 44692 44700 +0.0% 1.00x (?)
ReversedBidirectional 75917 75975 +0.1% 1.00x (?)
ReversedDictionary 29491 29491 +0.0% 1.00x
SetExclusiveOr 23462 23460 -0.0% 1.00x (?)
SetExclusiveOr_OfObjects 48219 48211 -0.0% 1.00x (?)
SetIntersect 12726 12718 -0.1% 1.00x (?)
SetIntersect_OfObjects 12987 12982 -0.0% 1.00x (?)
SetIsSubsetOf 1923 1922 -0.1% 1.00x (?)
SetIsSubsetOf_OfObjects 1607 1607 +0.0% 1.00x
SetUnion 12295 12284 -0.1% 1.00x (?)
SetUnion_OfObjects 33724 33800 +0.2% 1.00x (?)
SevenBoom 1595 1596 +0.1% 1.00x (?)
Sim2DArray 44177 44178 +0.0% 1.00x (?)
SortLargeExistentials 18018 18002 -0.1% 1.00x (?)
SortLettersInPlace 3171 3185 +0.4% 1.00x (?)
SortSortedStrings 1436 1437 +0.1% 1.00x
SortStrings 2485 2485 +0.0% 1.00x
SortStringsUnicode 9178 9180 +0.0% 1.00x (?)
StackPromo 105123 103985 -1.1% 1.01x (?)
StaticArray 4679 4673 -0.1% 1.00x
StrComplexWalk 6973 6982 +0.1% 1.00x (?)
StrToInt 123778 123571 -0.2% 1.00x (?)
StringAdder 3790 3763 -0.7% 1.01x
StringBuilder 7112 7176 +0.9% 0.99x (?)
StringBuilderLong 1097 1095 -0.2% 1.00x (?)
StringEdits 382494 380945 -0.4% 1.00x (?)
StringEqualPointerComparison 2676 2671 -0.2% 1.00x (?)
StringFromLongWholeSubstring 208 208 +0.0% 1.00x
StringFromLongWholeSubstringGeneric 214 213 -0.5% 1.00x
StringHasPrefix 1728 1723 -0.3% 1.00x
StringHasPrefixUnicode 16387 16379 -0.0% 1.00x (?)
StringHasSuffix 1839 1839 +0.0% 1.00x
StringHasSuffixUnicode 63133 63081 -0.1% 1.00x (?)
StringInterpolation 13686 14174 +3.6% 0.97x (?)
StringMatch 29431 29501 +0.2% 1.00x (?)
StringUTF16Builder 7921 7932 +0.1% 1.00x (?)
StringWalk 12475 12481 +0.0% 1.00x (?)
StringWithCString 57910 57914 +0.0% 1.00x (?)
SubstringComparable 4251 4253 +0.0% 1.00x (?)
SubstringEqualString 6510 6533 +0.4% 1.00x (?)
SubstringEquatable 8477 8468 -0.1% 1.00x (?)
SubstringFromLongString 16 16 +0.0% 1.00x
SubstringFromLongStringGeneric 118 118 +0.0% 1.00x
SuffixAnyCollection 6428 6424 -0.1% 1.00x
SuffixAnyCollectionLazy 46140 46042 -0.2% 1.00x (?)
SuffixAnySeqCRangeIter 43163 43226 +0.1% 1.00x (?)
SuffixAnySeqCRangeIterLazy 42815 42809 -0.0% 1.00x (?)
SuffixAnySeqCntRange 6451 6451 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 6308 6311 +0.0% 1.00x (?)
SuffixAnySequence 29987 29988 +0.0% 1.00x (?)
SuffixAnySequenceLazy 29978 29949 -0.1% 1.00x (?)
SuffixArray 2092 2093 +0.0% 1.00x
SuffixArrayLazy 15197 15197 +0.0% 1.00x
SuffixCountableRange 118 118 +0.0% 1.00x
SuffixCountableRangeLazy 12399 12357 -0.3% 1.00x
SuffixSequence 30409 29679 -2.4% 1.02x (?)
SuffixSequenceLazy 29582 29604 +0.1% 1.00x (?)
SumUsingReduce 230944 230946 +0.0% 1.00x (?)
SumUsingReduceInto 226848 226876 +0.0% 1.00x
SuperChars 192983 192731 -0.1% 1.00x (?)
TwoSum 4328 4328 +0.0% 1.00x
TypeFlood 155 159 +2.6% 0.97x (?)
UTF8Decode 38440 38446 +0.0% 1.00x (?)
Walsh 12006 12009 +0.0% 1.00x (?)
XorLoop 24010 24011 +0.0% 1.00x (?)
accessGlobal 177 176 -0.6% 1.01x
accessInMatSet 325 326 +0.3% 1.00x
accessIndependent 134 134 +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 force-pushed the optimizer-improvements branch from 9d6b906 to 7bda199 Compare August 22, 2017 23:01
@swiftix
Copy link
Contributor Author

swiftix commented Aug 22, 2017

@swift-ci please smoke test

1 similar comment
@swiftix
Copy link
Contributor Author

swiftix commented Aug 22, 2017

@swift-ci please smoke test

@swiftix swiftix merged commit 9edef03 into swiftlang:master Aug 22, 2017
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