Skip to content

ClosureSpecializer: extend the benefit-analysis so that specialization is also done in case a closure is passed through multiple call-levels. #18077

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 1 commit into from
Jul 19, 2018

Conversation

eeckstein
Copy link
Contributor

This fixes a performance regression for stdlib's sort.

SR-8267
rdar://problem/42246895

…n is also done in case a closure is passed through multiple call-levels.

This fixes a performance regression for stdlib's sort.

SR-8267
rdar://problem/42246895
@eeckstein
Copy link
Contributor Author

@swift-ci smoke test

@eeckstein
Copy link
Contributor Author

@swift-ci smoke benchmark

@eeckstein
Copy link
Contributor Author

@swift-ci test compiler performance

@swift-ci
Copy link
Contributor

Build comment file:

Optimized (O)

Regression (10)
TEST OLD NEW DELTA SPEEDUP
DictionaryBridgeToObjC_Access 954 1111 +16.5% 0.86x (?)
StringBuilderLong 1298 1464 +12.8% 0.89x (?)
StringBuilderWithLongSubstring 1749 1972 +12.8% 0.89x (?)
NSDictionaryCastToSwift 7019 7879 +12.3% 0.89x
StringEqualPointerComparison 286 314 +9.8% 0.91x
DataReplaceMediumBuffer 11450 12453 +8.8% 0.92x (?)
DictionaryKeysContainsCocoa 40 43 +7.5% 0.93x (?)
DictionaryBridge 1175 1246 +6.0% 0.94x (?)
SetIntersect_OfObjects 1775 1870 +5.4% 0.95x
StringAdder 548 577 +5.3% 0.95x
Improvement (39)
TEST OLD NEW DELTA SPEEDUP
NibbleSort 4817 3461 -28.2% 1.39x
NSError 221 165 -25.3% 1.34x
Phonebook 9300 7300 -21.5% 1.27x
SortStringsUnicode 2629 2115 -19.6% 1.24x
SortSortedStrings 859 700 -18.5% 1.23x
StaticArray 11 9 -18.2% 1.22x
SortStrings 1783 1503 -15.7% 1.19x
WordCountHistogramASCII 8194 7006 -14.5% 1.17x
RGBHistogramOfObjects 23681 20339 -14.1% 1.16x
RGBHistogram 2984 2577 -13.6% 1.16x
ObjectiveCBridgeFromNSArrayAnyObjectForced 5174 4558 -11.9% 1.14x (?)
WordCountHistogramUTF16 11570 10331 -10.7% 1.12x
Sim2DArray 666 600 -9.9% 1.11x
IterateData 1615 1455 -9.9% 1.11x
AnyHashableWithAClass 99835 91084 -8.8% 1.10x (?)
CharIteration_utf16_unicodeScalars_Backwards 19510 17878 -8.4% 1.09x
SubstringComparable 14 13 -7.1% 1.08x
DataSetCount 613 571 -6.9% 1.07x (?)
NopDeinit 32368 30158 -6.8% 1.07x
DataCopyBytes 481 449 -6.7% 1.07x (?)
ObjectiveCBridgeToNSString 481 453 -5.8% 1.06x
SetIsSubsetOf_OfObjects 468 441 -5.8% 1.06x
CharIteration_russian_unicodeScalars_Backwards 12997 12281 -5.5% 1.06x
CharIteration_ascii_unicodeScalars_Backwards 15587 14740 -5.4% 1.06x
CharIteration_korean_unicodeScalars_Backwards 15117 14300 -5.4% 1.06x
CharIteration_japanese_unicodeScalars_Backwards 18656 17651 -5.4% 1.06x
CharIteration_chinese_unicodeScalars_Backwards 11809 11177 -5.4% 1.06x
CharIteration_tweet_unicodeScalars_Backwards 30763 29117 -5.4% 1.06x
CharIndexing_japanese_unicodeScalars 20560 19461 -5.3% 1.06x
ObjectiveCBridgeStubNSDataAppend 2711 2567 -5.3% 1.06x
CharIteration_punctuated_unicodeScalars_Backwards 3533 3349 -5.2% 1.05x
CharIteration_korean_unicodeScalars 20917 19835 -5.2% 1.05x
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 2825 2679 -5.2% 1.05x
CharIndexing_ascii_unicodeScalars 17154 16275 -5.1% 1.05x
CharIndexing_korean_unicodeScalars 16643 15796 -5.1% 1.05x
CharIndexing_russian_unicodeScalars 14288 13566 -5.1% 1.05x
CharIndexing_chinese_unicodeScalars 12986 12333 -5.0% 1.05x
ObjectiveCBridgeFromNSString 1258 1197 -4.8% 1.05x
CharIteration_punctuated_unicodeScalars 4822 4591 -4.8% 1.05x
No Changes (411)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 3593 3714 +3.4% 0.97x (?)
Array2D 2861 2842 -0.7% 1.01x (?)
ArrayAppend 1079 1078 -0.1% 1.00x
ArrayAppendArrayOfInt 801 809 +1.0% 0.99x (?)
ArrayAppendAscii 3864 3888 +0.6% 0.99x (?)
ArrayAppendAsciiSubstring 25007 25026 +0.1% 1.00x (?)
ArrayAppendFromGeneric 800 803 +0.4% 1.00x (?)
ArrayAppendGenericStructs 1431 1433 +0.1% 1.00x (?)
ArrayAppendLatin1 41941 41513 -1.0% 1.01x
ArrayAppendLatin1Substring 143468 141964 -1.0% 1.01x
ArrayAppendLazyMap 1343 1340 -0.2% 1.00x
ArrayAppendOptionals 1430 1429 -0.1% 1.00x (?)
ArrayAppendRepeatCol 1341 1341 +0.0% 1.00x
ArrayAppendReserved 811 808 -0.4% 1.00x (?)
ArrayAppendSequence 1119 1123 +0.4% 1.00x (?)
ArrayAppendStrings 6231 6237 +0.1% 1.00x (?)
ArrayAppendToFromGeneric 801 801 +0.0% 1.00x
ArrayAppendToGeneric 801 800 -0.1% 1.00x (?)
ArrayAppendUTF16 42021 41045 -2.3% 1.02x
ArrayAppendUTF16Substring 141884 139481 -1.7% 1.02x
ArrayInClass 85 85 +0.0% 1.00x
ArrayLiteral 0 0 +0.0% 1.00x
ArrayOfGenericPOD2 152 152 +0.0% 1.00x
ArrayOfGenericRef 4376 4370 -0.1% 1.00x (?)
ArrayOfPOD 184 185 +0.5% 0.99x (?)
ArrayOfRef 4374 4375 +0.0% 1.00x (?)
ArrayPlusEqualArrayOfInt 795 793 -0.3% 1.00x (?)
ArrayPlusEqualFiveElementCollection 5440 5484 +0.8% 0.99x
ArrayPlusEqualSingleElementCollection 1077 1079 +0.2% 1.00x (?)
ArrayPlusEqualThreeElements 1675 1665 -0.6% 1.01x (?)
ArraySubscript 1569 1576 +0.4% 1.00x (?)
ArrayValueProp 8 8 +0.0% 1.00x
ArrayValueProp2 8 8 +0.0% 1.00x
ArrayValueProp3 8 8 +0.0% 1.00x
ArrayValueProp4 8 8 +0.0% 1.00x
BinaryFloatingPointPropertiesBinade 31 31 +0.0% 1.00x
BinaryFloatingPointPropertiesNextUp 28 28 +0.0% 1.00x
BinaryFloatingPointPropertiesUlp 35 35 +0.0% 1.00x
BitCount 211 211 +0.0% 1.00x
ByteSwap 107 110 +2.8% 0.97x
COWArrayGuaranteedParameterOverhead 10088 9994 -0.9% 1.01x (?)
COWTree 3801 3626 -4.6% 1.05x (?)
CSVParsing 655241 655098 -0.0% 1.00x (?)
CSVParsingAlt 814284 811199 -0.4% 1.00x (?)
CSVParsingAltIndices 342563 342105 -0.1% 1.00x (?)
CStringLongAscii 4116 4032 -2.0% 1.02x
CStringLongNonAscii 2342 2404 +2.6% 0.97x
CStringShortAscii 3366 3352 -0.4% 1.00x (?)
Calculator 206 206 +0.0% 1.00x
CaptureProp 4089 4078 -0.3% 1.00x (?)
ChainedFilterMap 1247 1248 +0.1% 1.00x (?)
CharIndexing_ascii_unicodeScalars_Backwards 16431 16008 -2.6% 1.03x
CharIndexing_chinese_unicodeScalars_Backwards 12452 12204 -2.0% 1.02x
CharIndexing_japanese_unicodeScalars_Backwards 19671 19136 -2.7% 1.03x
CharIndexing_korean_unicodeScalars_Backwards 15947 15490 -2.9% 1.03x
CharIndexing_punctuatedJapanese_unicodeScalars 3099 2957 -4.6% 1.05x
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 2974 2917 -1.9% 1.02x
CharIndexing_punctuated_unicodeScalars 3876 3705 -4.4% 1.05x
CharIndexing_punctuated_unicodeScalars_Backwards 3724 3633 -2.4% 1.03x
CharIndexing_russian_unicodeScalars_Backwards 13710 13311 -2.9% 1.03x
CharIndexing_tweet_unicodeScalars 33124 32049 -3.2% 1.03x
CharIndexing_tweet_unicodeScalars_Backwards 32261 31913 -1.1% 1.01x
CharIndexing_utf16_unicodeScalars 23260 23196 -0.3% 1.00x
CharIndexing_utf16_unicodeScalars_Backwards 23564 23542 -0.1% 1.00x
CharIteration_ascii_unicodeScalars 21402 20492 -4.3% 1.04x
CharIteration_chinese_unicodeScalars 16206 15493 -4.4% 1.05x
CharIteration_japanese_unicodeScalars 25656 24506 -4.5% 1.05x
CharIteration_punctuatedJapanese_unicodeScalars 3826 3669 -4.1% 1.04x
CharIteration_russian_unicodeScalars 17763 17045 -4.0% 1.04x
CharIteration_tweet_unicodeScalars 42189 40646 -3.7% 1.04x
CharIteration_utf16_unicodeScalars 28082 27858 -0.8% 1.01x
CharacterLiteralsLarge 5926 5895 -0.5% 1.01x (?)
CharacterLiteralsSmall 217 217 +0.0% 1.00x
CharacterPropertiesFetch 4797 4651 -3.0% 1.03x (?)
CharacterPropertiesPrecomputed 1033 1002 -3.0% 1.03x
CharacterPropertiesStashed 1517 1504 -0.9% 1.01x
CharacterPropertiesStashedMemo 1546 1544 -0.1% 1.00x (?)
Chars 1018 1019 +0.1% 1.00x (?)
ClassArrayGetter 15 15 +0.0% 1.00x
Combos 499 497 -0.4% 1.00x (?)
DataAccessBytes 1145 1145 +0.0% 1.00x
DataAppendArray 5143 5068 -1.5% 1.01x (?)
DataAppendBytes 5034 4841 -3.8% 1.04x (?)
DataAppendDataLargeToLarge 67534 67540 +0.0% 1.00x (?)
DataAppendDataLargeToMedium 35258 35622 +1.0% 0.99x (?)
DataAppendDataLargeToSmall 34314 34340 +0.1% 1.00x (?)
DataAppendDataMediumToLarge 22082 22082 +0.0% 1.00x
DataAppendDataMediumToMedium 7012 6886 -1.8% 1.02x (?)
DataAppendDataMediumToSmall 6031 6083 +0.9% 0.99x (?)
DataAppendDataSmallToLarge 36869 37110 +0.7% 0.99x (?)
DataAppendDataSmallToMedium 6223 6239 +0.3% 1.00x (?)
DataAppendDataSmallToSmall 6156 6003 -2.5% 1.03x (?)
DataAppendSequence 20248 20878 +3.1% 0.97x (?)
DataCount 34 34 +0.0% 1.00x
DataMutateBytes 3926 3923 -0.1% 1.00x (?)
DataReplaceLarge 36537 36821 +0.8% 0.99x (?)
DataReplaceLargeBuffer 58076 57638 -0.8% 1.01x (?)
DataReplaceMedium 7840 7728 -1.4% 1.01x (?)
DataReplaceSmall 5635 5845 +3.7% 0.96x (?)
DataReplaceSmallBuffer 9478 9439 -0.4% 1.00x (?)
DataReset 2795 2795 +0.0% 1.00x
DataSubscript 220 220 +0.0% 1.00x
DictOfArraysToArrayOfDicts 798 786 -1.5% 1.02x (?)
Dictionary 514 509 -1.0% 1.01x
Dictionary2 638 635 -0.5% 1.00x (?)
Dictionary2OfObjects 2086 2080 -0.3% 1.00x (?)
Dictionary3 223 225 +0.9% 0.99x
Dictionary3OfObjects 741 739 -0.3% 1.00x (?)
Dictionary4 326 321 -1.5% 1.02x
Dictionary4Legacy 721 721 +0.0% 1.00x
Dictionary4OfObjects 440 436 -0.9% 1.01x
Dictionary4OfObjectsLegacy 932 926 -0.6% 1.01x
DictionaryBridgeToObjC_Bridge 19 19 +0.0% 1.00x
DictionaryBridgeToObjC_BulkAccess 168 167 -0.6% 1.01x (?)
DictionaryCompactMapValuesOfCastValue 14302 14374 +0.5% 0.99x (?)
DictionaryCompactMapValuesOfNilValue 7267 7293 +0.4% 1.00x (?)
DictionaryCopy 106090 107107 +1.0% 0.99x
DictionaryFilter 105979 106104 +0.1% 1.00x (?)
DictionaryGroup 219 219 +0.0% 1.00x
DictionaryGroupOfObjects 2134 2125 -0.4% 1.00x (?)
DictionaryKeysContainsNative 32 32 +0.0% 1.00x
DictionaryLiteral 1891 1909 +1.0% 0.99x (?)
DictionaryOfObjects 2375 2373 -0.1% 1.00x (?)
DictionaryRemove 4166 4209 +1.0% 0.99x
DictionaryRemoveOfObjects 25941 25999 +0.2% 1.00x (?)
DictionarySubscriptDefaultMutation 267 267 +0.0% 1.00x
DictionarySubscriptDefaultMutationArray 622 625 +0.5% 1.00x
DictionarySubscriptDefaultMutationArrayOfObjects 4045 4047 +0.0% 1.00x (?)
DictionarySubscriptDefaultMutationOfObjects 1712 1724 +0.7% 0.99x (?)
DictionarySwap 1043 1039 -0.4% 1.00x
DictionarySwapAt 6785 6653 -1.9% 1.02x (?)
DictionarySwapAtOfObjects 52267 52165 -0.2% 1.00x (?)
DictionarySwapOfObjects 8874 8945 +0.8% 0.99x (?)
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollection 76 76 +0.0% 1.00x
DropFirstAnyCollectionLazy 64896 67765 +4.4% 0.96x
DropFirstAnySeqCRangeIter 93 93 +0.0% 1.00x
DropFirstAnySeqCRangeIterLazy 93 93 +0.0% 1.00x
DropFirstAnySeqCntRange 71 71 +0.0% 1.00x
DropFirstAnySeqCntRangeLazy 71 71 +0.0% 1.00x
DropFirstAnySequence 1842 1842 +0.0% 1.00x
DropFirstAnySequenceLazy 1843 1842 -0.1% 1.00x
DropFirstArray 35 35 +0.0% 1.00x
DropFirstArrayLazy 35 35 +0.0% 1.00x
DropFirstCountableRange 35 35 +0.0% 1.00x
DropFirstCountableRangeLazy 35 35 +0.0% 1.00x
DropFirstSequence 2681 2680 -0.0% 1.00x (?)
DropFirstSequenceLazy 2774 2775 +0.0% 1.00x (?)
DropLastAnyCollection 28 28 +0.0% 1.00x
DropLastAnyCollectionLazy 21716 22546 +3.8% 0.96x (?)
DropLastAnySeqCRangeIter 3310 3304 -0.2% 1.00x
DropLastAnySeqCRangeIterLazy 3304 3303 -0.0% 1.00x (?)
DropLastAnySeqCntRange 11 11 +0.0% 1.00x
DropLastAnySeqCntRangeLazy 11 11 +0.0% 1.00x
DropLastAnySequence 4953 4954 +0.0% 1.00x (?)
DropLastAnySequenceLazy 5058 5040 -0.4% 1.00x
DropLastCountableRange 12 12 +0.0% 1.00x
DropLastCountableRangeLazy 11 11 +0.0% 1.00x
DropLastSequence 668 670 +0.3% 1.00x (?)
DropLastSequenceLazy 669 669 +0.0% 1.00x
DropWhileAnyCollection 100 100 +0.0% 1.00x
DropWhileAnyCollectionLazy 130 130 +0.0% 1.00x
DropWhileAnySeqCRangeIter 75 76 +1.3% 0.99x
DropWhileAnySeqCRangeIterLazy 130 130 +0.0% 1.00x
DropWhileAnySeqCntRange 95 95 +0.0% 1.00x
DropWhileAnySeqCntRangeLazy 130 130 +0.0% 1.00x
DropWhileAnySequence 1860 1861 +0.1% 1.00x (?)
DropWhileAnySequenceLazy 1854 1854 +0.0% 1.00x
DropWhileArrayLazy 88 88 +0.0% 1.00x
DropWhileCountableRange 36 36 +0.0% 1.00x
DropWhileCountableRangeLazy 105 105 +0.0% 1.00x
DropWhileSequence 2220 2202 -0.8% 1.01x
DropWhileSequenceLazy 88 88 +0.0% 1.00x
EqualStringSubstring 49 49 +0.0% 1.00x
EqualSubstringString 49 49 +0.0% 1.00x
EqualSubstringSubstring 48 49 +2.1% 0.98x
EqualSubstringSubstringGenericEquatable 48 49 +2.1% 0.98x (?)
ErrorHandling 1211 1216 +0.4% 1.00x
ExclusivityGlobal 5 5 +0.0% 1.00x
ExclusivityIndependent 2 2 +0.0% 1.00x
FatCompactMap 1248 1246 -0.2% 1.00x (?)
FilterEvenUsingReduce 1345 1343 -0.1% 1.00x (?)
FilterEvenUsingReduceInto 161 161 +0.0% 1.00x
FloatingPointPrinting_Double_description_small 21690 21607 -0.4% 1.00x
FloatingPointPrinting_Double_description_uniform 21243 21252 +0.0% 1.00x (?)
FloatingPointPrinting_Double_interpolated 62068 62518 +0.7% 0.99x (?)
FloatingPointPrinting_Float80_description_small 28565 28804 +0.8% 0.99x
FloatingPointPrinting_Float80_description_uniform 27781 27677 -0.4% 1.00x (?)
FloatingPointPrinting_Float80_interpolated 65888 65788 -0.2% 1.00x (?)
FloatingPointPrinting_Float_description_small 5502 5557 +1.0% 0.99x
FloatingPointPrinting_Float_description_uniform 5264 5512 +4.7% 0.96x
FloatingPointPrinting_Float_interpolated 39392 39346 -0.1% 1.00x (?)
FrequenciesUsingReduce 4925 5080 +3.1% 0.97x (?)
FrequenciesUsingReduceInto 1562 1526 -2.3% 1.02x
Hanoi 2194 2197 +0.1% 1.00x (?)
HashTest 947 953 +0.6% 0.99x (?)
Histogram 647 649 +0.3% 1.00x
Integrate 334 335 +0.3% 1.00x
Join 168 171 +1.8% 0.98x
LazilyFilteredArrayContains 35469 35462 -0.0% 1.00x (?)
LazilyFilteredArrays 66666 66748 +0.1% 1.00x (?)
LazilyFilteredRange 3864 3885 +0.5% 0.99x (?)
LessSubstringSubstring 49 49 +0.0% 1.00x
LessSubstringSubstringGenericComparable 49 49 +0.0% 1.00x
LinkedList 7554 7554 +0.0% 1.00x
LuhnAlgoEager 451 451 +0.0% 1.00x
LuhnAlgoLazy 454 450 -0.9% 1.01x
MapReduce 372 371 -0.3% 1.00x (?)
MapReduceAnyCollection 401 399 -0.5% 1.01x (?)
MapReduceAnyCollectionShort 2023 2031 +0.4% 1.00x (?)
MapReduceClass 3009 3008 -0.0% 1.00x (?)
MapReduceClassShort 4645 4595 -1.1% 1.01x (?)
MapReduceLazyCollection 13 13 +0.0% 1.00x
MapReduceLazyCollectionShort 34 34 +0.0% 1.00x
MapReduceLazySequence 86 86 +0.0% 1.00x
MapReduceSequence 458 469 +2.4% 0.98x
MapReduceShort 2021 2034 +0.6% 0.99x (?)
MapReduceShortString 21 21 +0.0% 1.00x
MapReduceString 50 49 -2.0% 1.02x (?)
Memset 221 219 -0.9% 1.01x (?)
MonteCarloE 10217 10268 +0.5% 1.00x
MonteCarloPi 42664 42660 -0.0% 1.00x (?)
NSStringConversion 705 714 +1.3% 0.99x
ObjectAllocation 133 133 +0.0% 1.00x
ObjectiveCBridgeFromNSArrayAnyObject 26460 26676 +0.8% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 45181 44961 -0.5% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 46528 46560 +0.1% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 111308 115439 +3.7% 0.96x (?)
ObjectiveCBridgeFromNSSetAnyObject 50632 49822 -1.6% 1.02x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 5030 5087 +1.1% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 66630 70054 +5.1% 0.95x (?)
ObjectiveCBridgeFromNSStringForced 2713 2697 -0.6% 1.01x (?)
ObjectiveCBridgeStubDataAppend 6551 6597 +0.7% 0.99x (?)
ObjectiveCBridgeStubDateMutation 400 400 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 35026 35715 +2.0% 0.98x (?)
ObjectiveCBridgeStubFromNSDate 6627 6646 +0.3% 1.00x (?)
ObjectiveCBridgeStubFromNSString 1057 1028 -2.7% 1.03x (?)
ObjectiveCBridgeStubFromNSStringRef 161 161 +0.0% 1.00x
ObjectiveCBridgeStubNSDateMutationRef 13493 13606 +0.8% 0.99x (?)
ObjectiveCBridgeStubToArrayOfNSString 39534 39718 +0.5% 1.00x (?)
ObjectiveCBridgeStubToNSDate 15563 15725 +1.0% 0.99x (?)
ObjectiveCBridgeStubToNSDateRef 3438 3452 +0.4% 1.00x (?)
ObjectiveCBridgeStubToNSString 2344 2364 +0.9% 0.99x
ObjectiveCBridgeStubToNSStringRef 115 113 -1.7% 1.02x
ObjectiveCBridgeStubURLAppendPath 289649 280696 -3.1% 1.03x (?)
ObjectiveCBridgeStubURLAppendPathRef 290239 283831 -2.2% 1.02x (?)
ObjectiveCBridgeToNSArray 15275 15279 +0.0% 1.00x (?)
ObjectiveCBridgeToNSDictionary 26298 26800 +1.9% 0.98x (?)
ObjectiveCBridgeToNSSet 17849 18393 +3.0% 0.97x (?)
ObserverClosure 2172 2169 -0.1% 1.00x (?)
ObserverForwarderStruct 1210 1210 +0.0% 1.00x
ObserverPartiallyAppliedMethod 3733 3742 +0.2% 1.00x (?)
ObserverUnappliedMethod 2471 2462 -0.4% 1.00x (?)
OpaqueConsumingUsers 4179 4183 +0.1% 1.00x (?)
OpenClose 65 65 +0.0% 1.00x
PartialApplyDynamicType 0 0 +0.0% 1.00x
PointerArithmetics 34363 34352 -0.0% 1.00x (?)
PolymorphicCalls 25 25 +0.0% 1.00x
PopFrontArray 1955 1881 -3.8% 1.04x (?)
PopFrontArrayGeneric 1976 1968 -0.4% 1.00x (?)
PopFrontUnsafePointer 9269 9611 +3.7% 0.96x (?)
PrefixAnyCollection 76 76 +0.0% 1.00x
PrefixAnyCollectionLazy 66107 67618 +2.3% 0.98x (?)
PrefixAnySeqCRangeIter 40 40 +0.0% 1.00x
PrefixAnySeqCRangeIterLazy 40 40 +0.0% 1.00x
PrefixAnySeqCntRange 71 71 +0.0% 1.00x
PrefixAnySeqCntRangeLazy 71 71 +0.0% 1.00x
PrefixAnySequence 1378 1379 +0.1% 1.00x (?)
PrefixAnySequenceLazy 1378 1379 +0.1% 1.00x (?)
PrefixArray 35 35 +0.0% 1.00x
PrefixArrayLazy 35 35 +0.0% 1.00x
PrefixCountableRange 35 35 +0.0% 1.00x
PrefixCountableRangeLazy 35 35 +0.0% 1.00x
PrefixSequence 2222 2217 -0.2% 1.00x
PrefixSequenceLazy 2275 2274 -0.0% 1.00x (?)
PrefixWhileAnyCollection 146 146 +0.0% 1.00x
PrefixWhileAnyCollectionLazy 71 71 +0.0% 1.00x
PrefixWhileAnySeqCRangeIter 388 386 -0.5% 1.01x
PrefixWhileAnySeqCRangeIterLazy 89 89 +0.0% 1.00x
PrefixWhileAnySeqCntRange 142 142 +0.0% 1.00x
PrefixWhileAnySeqCntRangeLazy 71 71 +0.0% 1.00x
PrefixWhileAnySequence 1540 1540 +0.0% 1.00x
PrefixWhileAnySequenceLazy 1392 1391 -0.1% 1.00x (?)
PrefixWhileArray 88 88 +0.0% 1.00x
PrefixWhileArrayLazy 70 70 +0.0% 1.00x
PrefixWhileCountableRange 36 36 +0.0% 1.00x
PrefixWhileCountableRangeLazy 35 35 +0.0% 1.00x
PrefixWhileSequence 361 365 +1.1% 0.99x (?)
PrefixWhileSequenceLazy 53 52 -1.9% 1.02x
Prims 923 918 -0.5% 1.01x (?)
PrimsSplit 926 924 -0.2% 1.00x (?)
QueueConcrete 1153 1152 -0.1% 1.00x (?)
QueueGeneric 1136 1137 +0.1% 1.00x (?)
RC4 149 152 +2.0% 0.98x
Radix2CooleyTukey 12468 12473 +0.0% 1.00x (?)
Radix2CooleyTukeyf 9002 9019 +0.2% 1.00x (?)
RandomDoubleDef 26585 26530 -0.2% 1.00x (?)
RandomDoubleLCG 2204 2108 -4.4% 1.05x
RandomIntegersDef 24358 24307 -0.2% 1.00x
RandomIntegersLCG 173 173 +0.0% 1.00x
RandomShuffleDef 814750 809495 -0.6% 1.01x
RandomShuffleLCG 56555 56818 +0.5% 1.00x (?)
RangeAssignment 367 366 -0.3% 1.00x (?)
RangeIterationSigned 200 200 +0.0% 1.00x
RangeReplaceableCollectionPlusDefault 1066 1063 -0.3% 1.00x
RecursiveOwnedParameter 115 115 +0.0% 1.00x
RemoveWhereFilterInts 47 47 +0.0% 1.00x
RemoveWhereFilterString 253 248 -2.0% 1.02x
RemoveWhereFilterStrings 439 439 +0.0% 1.00x
RemoveWhereMoveInts 15 15 +0.0% 1.00x
RemoveWhereMoveStrings 709 709 +0.0% 1.00x
RemoveWhereQuadraticInts 1293 1294 +0.1% 1.00x
RemoveWhereQuadraticString 384 371 -3.4% 1.04x
RemoveWhereQuadraticStrings 2757 2759 +0.1% 1.00x (?)
RemoveWhereSwapInts 19 19 +0.0% 1.00x
RemoveWhereSwapStrings 861 865 +0.5% 1.00x
ReversedArray 57 57 +0.0% 1.00x
ReversedBidirectional 16927 16764 -1.0% 1.01x
ReversedDictionary 269 264 -1.9% 1.02x (?)
RomanNumbers 83849 84347 +0.6% 0.99x
SequenceAlgosAnySequence 12047 12015 -0.3% 1.00x
SequenceAlgosArray 1577 1579 +0.1% 1.00x (?)
SequenceAlgosContiguousArray 1581 1573 -0.5% 1.01x (?)
SequenceAlgosList 1352 1353 +0.1% 1.00x
SequenceAlgosRange 2577 2578 +0.0% 1.00x (?)
SequenceAlgosUnfoldSequence 1102 1102 +0.0% 1.00x
SetExclusiveOr 5316 5468 +2.9% 0.97x (?)
SetExclusiveOr_OfObjects 11730 11536 -1.7% 1.02x
SetIntersect 699 702 +0.4% 1.00x (?)
SetIsSubsetOf 346 346 +0.0% 1.00x
SetUnion 4472 4665 +4.3% 0.96x (?)
SetUnion_OfObjects 10177 10001 -1.7% 1.02x
SevenBoom 837 833 -0.5% 1.00x
SortLargeExistentials 5587 5608 +0.4% 1.00x
SortLettersInPlace 991 969 -2.2% 1.02x
StackPromo 24531 24133 -1.6% 1.02x (?)
StrComplexWalk 1776 1781 +0.3% 1.00x
StrToInt 3189 3153 -1.1% 1.01x
StringBuilder 497 498 +0.2% 1.00x
StringBuilderSmallReservingCapacity 507 508 +0.2% 1.00x
StringComparison_abnormal 767 780 +1.7% 0.98x
StringComparison_ascii 1028 1018 -1.0% 1.01x
StringComparison_emoji 861 861 +0.0% 1.00x
StringComparison_fastPrenormal 863 845 -2.1% 1.02x
StringComparison_latin1 678 667 -1.6% 1.02x
StringComparison_longSharedPrefix 956 955 -0.1% 1.00x
StringComparison_nonBMPSlowestPrenormal 1690 1692 +0.1% 1.00x (?)
StringComparison_slowerPrenormal 1820 1842 +1.2% 0.99x
StringComparison_zalgo 112479 112730 +0.2% 1.00x (?)
StringEdits 171183 173654 +1.4% 0.99x (?)
StringEnumRawValueInitialization 855 864 +1.1% 0.99x
StringFromLongWholeSubstring 21 21 +0.0% 1.00x
StringFromLongWholeSubstringGeneric 21 21 +0.0% 1.00x
StringHasPrefixAscii 2236 2233 -0.1% 1.00x
StringHasPrefixUnicode 99274 99769 +0.5% 1.00x
StringHasSuffixAscii 2348 2290 -2.5% 1.03x
StringHasSuffixUnicode 100354 100383 +0.0% 1.00x (?)
StringHashing_abnormal 1378 1373 -0.4% 1.00x (?)
StringHashing_ascii 34 33 -2.9% 1.03x
StringHashing_emoji 1935 1986 +2.6% 0.97x (?)
StringHashing_fastPrenormal 8506 8500 -0.1% 1.00x (?)
StringHashing_latin1 2603 2605 +0.1% 1.00x (?)
StringHashing_longSharedPrefix 7808 7856 +0.6% 0.99x
StringHashing_nonBMPSlowestPrenormal 2145 2115 -1.4% 1.01x (?)
StringHashing_slowerPrenormal 2769 2757 -0.4% 1.00x (?)
StringHashing_zalgo 3547 3543 -0.1% 1.00x (?)
StringInterpolation 9196 9263 +0.7% 0.99x
StringInterpolationManySmallSegments 18957 18706 -1.3% 1.01x (?)
StringInterpolationSmall 4276 4348 +1.7% 0.98x
StringMatch 12257 12318 +0.5% 1.00x
StringRemoveDupes 492 489 -0.6% 1.01x
StringUTF16Builder 2671 2694 +0.9% 0.99x
StringUTF16SubstringBuilder 5714 6003 +5.1% 0.95x
StringWalk 1560 1568 +0.5% 0.99x
StringWithCString 125121 123147 -1.6% 1.02x
StringWordBuilder 2284 2390 +4.6% 0.96x
StringWordBuilderReservingCapacity 2045 1985 -2.9% 1.03x
SubstringEqualString 607 613 +1.0% 0.99x
SubstringEquatable 1429 1454 +1.7% 0.98x
SubstringFromLongString 10 10 +0.0% 1.00x
SubstringFromLongStringGeneric 74 74 +0.0% 1.00x
SuffixAnyCollection 28 28 +0.0% 1.00x
SuffixAnyCollectionLazy 21705 22592 +4.1% 0.96x (?)
SuffixAnySeqCRangeIter 3585 3597 +0.3% 1.00x (?)
SuffixAnySeqCRangeIterLazy 3597 3601 +0.1% 1.00x (?)
SuffixAnySeqCntRange 17 17 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 17 17 +0.0% 1.00x
SuffixAnySequence 4916 4917 +0.0% 1.00x (?)
SuffixAnySequenceLazy 5003 5042 +0.8% 0.99x
SuffixCountableRange 11 11 +0.0% 1.00x
SuffixCountableRangeLazy 11 11 +0.0% 1.00x
SuffixSequence 3644 3626 -0.5% 1.00x (?)
SuffixSequenceLazy 3615 3634 +0.5% 0.99x
SumUsingReduce 102 102 +0.0% 1.00x
SumUsingReduceInto 97 97 +0.0% 1.00x
SuperChars 20166 20039 -0.6% 1.01x (?)
TwoSum 1467 1461 -0.4% 1.00x
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode 312 299 -4.2% 1.04x
UTF8Decode_InitDecoding 1363 1349 -1.0% 1.01x
UTF8Decode_InitDecoding_ascii 651 655 +0.6% 0.99x (?)
UTF8Decode_InitFromBytes 1189 1174 -1.3% 1.01x
UTF8Decode_InitFromBytes_ascii 484 479 -1.0% 1.01x (?)
UTF8Decode_InitFromData 1265 1250 -1.2% 1.01x
UTF8Decode_InitFromData_ascii 681 712 +4.6% 0.96x (?)
Walsh 436 427 -2.1% 1.02x
WordCountUniqueASCII 2110 2048 -2.9% 1.03x
WordCountUniqueUTF16 4586 4770 +4.0% 0.96x (?)
WordSplitASCII 9218 9476 +2.8% 0.97x (?)
WordSplitUTF16 10660 10851 +1.8% 0.98x (?)
XorLoop 403 404 +0.2% 1.00x
Hardware Overview
  Model Name: Mac Pro
  Model Identifier: MacPro6,1
  Processor Name: 12-Core Intel Xeon E5
  Processor Speed: 2.7 GHz
  Number of Processors: 1
  Total Number of Cores: 12
  L2 Cache (per Core): 256 KB
  L3 Cache: 30 MB
  Memory: 64 GB

@swift-ci
Copy link
Contributor

Build comment file:

Summary for master full

Unexpected test results, excluded stats for RxSwift, Evergreen, CoreStore, CoreStoreDemo, PanelKit, Chatto, AMScrollingNavbar, ProcedureKit, iOS_Example, ReactiveSwift, ReactiveCocoa, Wordy

Regressions found (see below)

Debug-batch

debug-batch brief

Regressed (2)
name old new delta delta_pct
LLVM.NumLLVMBytesOutput 192,035,412 322,668,328 130,632,916 68.03% ⛔
time.swift-driver.wall 450.9s 787.8s 336.9s 74.71% ⛔
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (0)
name old new delta delta_pct

debug-batch detailed

Regressed (64)
name old new delta delta_pct
AST.NumASTBytesAllocated 4,990,584,583 8,533,788,589 3,543,204,006 71.0% ⛔
AST.NumDecls 12,408 21,223 8,815 71.04% ⛔
AST.NumDependencies 32,604 57,666 25,062 76.87% ⛔
AST.NumImportedExternalDefinitions 279,819 493,596 213,777 76.4% ⛔
AST.NumInfixOperators 4,889 8,719 3,830 78.34% ⛔
AST.NumLoadedModules 39,305 68,645 29,340 74.65% ⛔
AST.NumObjCMethods 4,201 7,140 2,939 69.96% ⛔
AST.NumPostfixOperators 7 14 7 100.0% ⛔
AST.NumPrecedenceGroups 2,546 4,414 1,868 73.37% ⛔
AST.NumPrefixOperators 24 48 24 100.0% ⛔
AST.NumReferencedDynamicNames 18 30 12 66.67% ⛔
AST.NumReferencedMemberNames 643,260 1,128,964 485,704 75.51% ⛔
AST.NumReferencedTopLevelNames 41,749 71,051 29,302 70.19% ⛔
AST.NumSourceBuffers 54,630 96,488 41,858 76.62% ⛔
AST.NumSourceLines 452,835 750,553 297,718 65.75% ⛔
AST.NumSourceLinesPerSecond 314,033 513,413 199,380 63.49% ⛔
AST.NumTotalClangImportedEntities 878,413 1,550,265 671,852 76.48% ⛔
AST.NumUsedConformances 34,379 60,023 25,644 74.59% ⛔
Driver.ChildrenMaxRSS 14,814,363,648 26,054,283,264 11,239,919,616 75.87% ⛔
Driver.NumDriverJobsRun 2,611 4,627 2,016 77.21% ⛔
Driver.NumDriverPipePolls 27,856 52,576 24,720 88.74% ⛔
Driver.NumDriverPipeReads 29,382 55,940 26,558 90.39% ⛔
IRModule.NumIRAliases 2,824 4,948 2,124 75.21% ⛔
IRModule.NumIRBasicBlocks 644,904 1,077,017 432,113 67.0% ⛔
IRModule.NumIRFunctions 349,307 583,468 234,161 67.04% ⛔
IRModule.NumIRGlobals 437,957 757,853 319,896 73.04% ⛔
IRModule.NumIRInsts 8,004,536 13,553,343 5,548,807 69.32% ⛔
IRModule.NumIRNamedMetaData 12,995 23,105 10,110 77.8% ⛔
IRModule.NumIRValueSymbols 667,049 1,125,339 458,290 68.7% ⛔
LLVM.NumLLVMBytesOutput 192,035,412 322,668,328 130,632,916 68.03% ⛔
Parse.NumFunctionsParsed 22,900 37,820 14,920 65.15% ⛔
SILModule.NumSILGenFunctions 349,130 618,179 269,049 77.06% ⛔
SILModule.NumSILGenGlobalVariables 5,977 11,207 5,230 87.5% ⛔
SILModule.NumSILGenVtables 1,445 2,454 1,009 69.83% ⛔
SILModule.NumSILGenWitnessTables 6,628 11,197 4,569 68.93% ⛔
SILModule.NumSILOptFunctions 261,728 455,799 194,071 74.15% ⛔
SILModule.NumSILOptGlobalVariables 6,159 11,481 5,322 86.41% ⛔
SILModule.NumSILOptVtables 2,723 4,717 1,994 73.23% ⛔
SILModule.NumSILOptWitnessTables 13,097 22,355 9,258 70.69% ⛔
Sema.AccessLevelRequest 324,311 526,904 202,593 62.47% ⛔
Sema.DefaultAndMaxAccessLevelRequest 8,039 12,907 4,868 60.55% ⛔
Sema.EnumRawTypeRequest 2,814 4,599 1,785 63.43% ⛔
Sema.InheritedTypeRequest 13,878 20,801 6,923 49.88% ⛔
Sema.IsDynamicRequest 307,983 522,188 214,205 69.55% ⛔
Sema.IsObjCRequest 277,382 461,495 184,113 66.38% ⛔
Sema.NamedLazyMemberLoadFailureCount 4,818 8,347 3,529 73.25% ⛔
Sema.NamedLazyMemberLoadSuccessCount 819,459 1,460,595 641,136 78.24% ⛔
Sema.NominalTypeLookupDirectCount 5,303,511 9,128,679 3,825,168 72.13% ⛔
Sema.NumConformancesDeserialized 919,842 1,587,734 667,892 72.61% ⛔
Sema.NumConstraintScopes 2,472,857 4,499,197 2,026,340 81.94% ⛔
Sema.NumConstraintsConsideredForEdgeContraction 5,745,662 10,864,498 5,118,836 89.09% ⛔
Sema.NumDeclsDeserialized 6,129,177 10,506,294 4,377,117 71.41% ⛔
Sema.NumDeclsValidated 478,546 783,259 304,713 63.67% ⛔
Sema.NumFunctionsTypechecked 165,076 286,559 121,483 73.59% ⛔
Sema.NumGenericSignatureBuilders 289,923 488,601 198,678 68.53% ⛔
Sema.NumLazyGenericEnvironments 1,179,807 2,007,120 827,313 70.12% ⛔
Sema.NumLazyGenericEnvironmentsLoaded 117,459 196,215 78,756 67.05% ⛔
Sema.NumLazyIterableDeclContexts 1,028,395 1,780,076 751,681 73.09% ⛔
Sema.NumTypesDeserialized 6,433,284 10,949,491 4,516,207 70.2% ⛔
Sema.NumTypesValidated 309,455 487,312 177,857 57.47% ⛔
Sema.NumUnloadedLazyIterableDeclContexts 698,080 1,217,223 519,143 74.37% ⛔
Sema.OverriddenDeclsRequest 557,617 947,229 389,612 69.87% ⛔
Sema.SetterAccessLevelRequest 20,119 31,544 11,425 56.79% ⛔
Sema.SuperclassTypeRequest 15,596 25,047 9,451 60.6% ⛔
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (19)
name old new delta delta_pct
AST.NumLinkLibraries 0 0 0 0.0%
AST.NumLocalTypeDecls 0 0 0 0.0%
Driver.DriverDepCascadingDynamic 0 0 0 0.0%
Driver.DriverDepCascadingExternal 0 0 0 0.0%
Driver.DriverDepCascadingMember 0 0 0 0.0%
Driver.DriverDepCascadingNominal 0 0 0 0.0%
Driver.DriverDepCascadingTopLevel 0 0 0 0.0%
Driver.DriverDepDynamic 0 0 0 0.0%
Driver.DriverDepExternal 0 0 0 0.0%
Driver.DriverDepMember 0 0 0 0.0%
Driver.DriverDepNominal 0 0 0 0.0%
Driver.DriverDepTopLevel 0 0 0 0.0%
Driver.NumDriverJobsSkipped 0 0 0 0.0%
Driver.NumProcessFailures 0 0 0 0.0%
Frontend.NumProcessFailures 0 0 0 0.0%
IRModule.NumIRComdatSymbols 0 0 0 0.0%
IRModule.NumIRIFuncs 0 0 0 0.0%
SILModule.NumSILGenDefaultWitnessTables 0 0 0 0.0%
SILModule.NumSILOptDefaultWitnessTables 0 0 0 0.0%

Release

release brief

Regressed (2)
name old new delta delta_pct
LLVM.NumLLVMBytesOutput 331,614,664 335,741,614 4,126,950 1.24% ⛔
time.swift-driver.wall 1483.8s 1500.9s 17.1s 1.15% ⛔
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (0)
name old new delta delta_pct

release detailed

Regressed (3)
name old new delta delta_pct
IRModule.NumIRBasicBlocks 1,140,575 1,153,666 13,091 1.15% ⛔
IRModule.NumIRInsts 10,268,141 10,399,868 131,727 1.28% ⛔
LLVM.NumLLVMBytesOutput 331,614,664 335,741,614 4,126,950 1.24% ⛔
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (20)
name old new delta delta_pct
AST.NumImportedExternalDefinitions 114,716 114,716 0 0.0%
AST.NumLoadedModules 5,027 5,027 0 0.0%
AST.NumTotalClangImportedEntities 357,294 357,294 0 0.0%
AST.NumUsedConformances 67,366 67,366 0 0.0%
IRModule.NumIRFunctions 511,423 515,112 3,689 0.72%
IRModule.NumIRGlobals 651,380 653,882 2,502 0.38%
IRModule.NumIRValueSymbols 1,031,049 1,037,238 6,189 0.6%
SILModule.NumSILGenFunctions 235,585 235,585 0 0.0%
SILModule.NumSILOptFunctions 323,974 324,242 268 0.08%
Sema.NumConformancesDeserialized 827,408 827,408 0 0.0%
Sema.NumConstraintScopes 4,642,866 4,642,866 0 0.0%
Sema.NumDeclsDeserialized 2,313,722 2,313,722 0 0.0%
Sema.NumDeclsValidated 593,122 593,122 0 0.0%
Sema.NumFunctionsTypechecked 124,810 124,810 0 0.0%
Sema.NumGenericSignatureBuilders 90,813 90,813 0 0.0%
Sema.NumLazyGenericEnvironments 387,034 387,034 0 0.0%
Sema.NumLazyGenericEnvironmentsLoaded 42,618 42,618 0 0.0%
Sema.NumLazyIterableDeclContexts 252,728 252,728 0 0.0%
Sema.NumTypesDeserialized 2,827,975 2,827,975 0 0.0%
Sema.NumTypesValidated 166,987 166,987 0 0.0%

@eeckstein eeckstein merged commit d61b923 into swiftlang:master Jul 19, 2018
@eeckstein eeckstein deleted the closure-specializer branch July 19, 2018 22:10
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.

2 participants