Skip to content

Mandatory SIL linker pass #15930

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 4 commits into from
Apr 14, 2018

Conversation

slavapestov
Copy link
Contributor

@slavapestov slavapestov commented Apr 13, 2018

Perform "linking" (transitive deserialization) in a separate mandatory pass from mandatory inlining. Mandatory inlining only has to deserialize transparent functions now. Mostly NFC because the mandatory linking is still too eager to deserialize everything; I'm bisecting #15894 to make sure I'm not regressing performance.

As a first step to getting mandatory inlining out of the business
of 'linking' (walking the function graph and deserializing all
referenced functions), add a new optimizer pass which links
everything in the mandatory pipeline.

For now this is mostly NFC, except it regresses an optimization
I made recently by linking in bodies of methods of deserialized
vtables eagerly. This will be addressed in upcoming patches.
PublicNonABI function declarations deserialize as HiddenExternal,
then become SharedExternal after the body has been deserialized.
So try deserializing HiddenExternal too.

NFC until mandatory inlining is no longer eagerly deserializing.
Transparent function bodies are in fact available externally.
We only need to deserialize the function itself, not its transitive
dependencies. Also, only deserialize a function after we've checked
that its transparent.

For now, this doesn't reduce the volume of SIL linking, because the
mandatory linker pass still links everything. But we're almost
there.
@slavapestov slavapestov requested a review from gottesmm April 13, 2018 21:56
@slavapestov
Copy link
Contributor Author

@swift-ci Please smoke test

@slavapestov
Copy link
Contributor Author

@swift-ci Please smoke benchmark

@swift-ci
Copy link
Contributor

Build comment file:

Optimized (O)

Regression (7)
TEST OLD NEW DELTA SPEEDUP
BinaryFloatingPointPropertiesBinade 25 31 +24.0% 0.81x
ObjectiveCBridgeFromNSSetAnyObjectForced 4795 5808 +21.1% 0.83x (?)
ObjectiveCBridgeStubFromArrayOfNSString 34070 38612 +13.3% 0.88x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 46416 51845 +11.7% 0.90x (?)
SuffixCountableRange 11 12 +9.1% 0.92x
BinaryFloatingPointPropertiesUlp 35 37 +5.7% 0.95x
ObjectiveCBridgeStubToNSDate 15103 15944 +5.6% 0.95x
Improvement (6)
TEST OLD NEW DELTA SPEEDUP
StringBuilderLong 1469 1308 -11.0% 1.12x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 47856 42631 -10.9% 1.12x (?)
DataAppendDataSmallToSmall 7235 6654 -8.0% 1.09x (?)
ClassArrayGetter 16 15 -6.2% 1.07x
IterateData 2002 1877 -6.2% 1.07x
DataCopyBytes 2657 2502 -5.8% 1.06x
No Changes (409)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 3787 3806 +0.5% 1.00x (?)
AnyHashableWithAClass 83911 84281 +0.4% 1.00x
Array2D 2554 2547 -0.3% 1.00x
ArrayAppend 1066 1075 +0.8% 0.99x
ArrayAppendArrayOfInt 797 796 -0.1% 1.00x (?)
ArrayAppendAscii 13907 13777 -0.9% 1.01x
ArrayAppendFromGeneric 801 799 -0.2% 1.00x (?)
ArrayAppendGenericStructs 1422 1432 +0.7% 0.99x
ArrayAppendLatin1 41789 40412 -3.3% 1.03x
ArrayAppendLazyMap 1344 1339 -0.4% 1.00x
ArrayAppendOptionals 1427 1423 -0.3% 1.00x (?)
ArrayAppendRepeatCol 1342 1337 -0.4% 1.00x
ArrayAppendReserved 799 799 +0.0% 1.00x
ArrayAppendSequence 1121 1121 +0.0% 1.00x
ArrayAppendStrings 6234 6241 +0.1% 1.00x (?)
ArrayAppendToFromGeneric 798 800 +0.3% 1.00x (?)
ArrayAppendToGeneric 799 799 +0.0% 1.00x
ArrayAppendUTF16 41543 40869 -1.6% 1.02x
ArrayInClass 86 86 +0.0% 1.00x
ArrayLiteral 0 0 +0.0% 1.00x
ArrayOfGenericPOD2 150 151 +0.7% 0.99x (?)
ArrayOfGenericRef 4388 4380 -0.2% 1.00x (?)
ArrayOfPOD 183 183 +0.0% 1.00x
ArrayOfRef 4354 4370 +0.4% 1.00x
ArrayPlusEqualArrayOfInt 799 800 +0.1% 1.00x (?)
ArrayPlusEqualFiveElementCollection 5440 5457 +0.3% 1.00x (?)
ArrayPlusEqualSingleElementCollection 1061 1073 +1.1% 0.99x
ArrayPlusEqualThreeElements 1657 1658 +0.1% 1.00x (?)
ArraySubscript 1522 1521 -0.1% 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
BinaryFloatingPointPropertiesNextUp 28 28 +0.0% 1.00x
BitCount 202 211 +4.5% 0.96x
ByteSwap 104 106 +1.9% 0.98x
COWTree 5414 5366 -0.9% 1.01x (?)
CSVParsing 802535 802320 -0.0% 1.00x (?)
CSVParsingAlt 780097 776725 -0.4% 1.00x (?)
CSVParsingAltIndices 335611 337367 +0.5% 0.99x
CStringLongAscii 4882 4808 -1.5% 1.02x
CStringLongNonAscii 2288 2185 -4.5% 1.05x
CStringShortAscii 3147 3154 +0.2% 1.00x (?)
Calculator 1093 1118 +2.3% 0.98x
CaptureProp 4108 4112 +0.1% 1.00x (?)
ChainedFilterMap 1409 1409 +0.0% 1.00x
CharIndexing_ascii_unicodeScalars 17170 17163 -0.0% 1.00x (?)
CharIndexing_ascii_unicodeScalars_Backwards 16457 16454 -0.0% 1.00x
CharIndexing_chinese_unicodeScalars 13009 13000 -0.1% 1.00x
CharIndexing_chinese_unicodeScalars_Backwards 12456 12448 -0.1% 1.00x (?)
CharIndexing_japanese_unicodeScalars 20551 20544 -0.0% 1.00x (?)
CharIndexing_japanese_unicodeScalars_Backwards 19684 19694 +0.1% 1.00x (?)
CharIndexing_korean_unicodeScalars 16654 16644 -0.1% 1.00x (?)
CharIndexing_korean_unicodeScalars_Backwards 15951 15951 +0.0% 1.00x
CharIndexing_punctuatedJapanese_unicodeScalars 3095 3094 -0.0% 1.00x (?)
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 2972 2974 +0.1% 1.00x (?)
CharIndexing_punctuated_unicodeScalars 3880 3877 -0.1% 1.00x (?)
CharIndexing_punctuated_unicodeScalars_Backwards 3720 3721 +0.0% 1.00x (?)
CharIndexing_russian_unicodeScalars 14305 14300 -0.0% 1.00x (?)
CharIndexing_russian_unicodeScalars_Backwards 13703 13708 +0.0% 1.00x (?)
CharIndexing_tweet_unicodeScalars 33121 33134 +0.0% 1.00x (?)
CharIndexing_tweet_unicodeScalars_Backwards 32290 32286 -0.0% 1.00x (?)
CharIndexing_utf16_unicodeScalars 23173 23036 -0.6% 1.01x (?)
CharIndexing_utf16_unicodeScalars_Backwards 23694 23706 +0.1% 1.00x
CharIteration_ascii_unicodeScalars 21289 21319 +0.1% 1.00x
CharIteration_ascii_unicodeScalars_Backwards 15573 15566 -0.0% 1.00x (?)
CharIteration_chinese_unicodeScalars 16214 16203 -0.1% 1.00x (?)
CharIteration_chinese_unicodeScalars_Backwards 11793 11799 +0.1% 1.00x (?)
CharIteration_japanese_unicodeScalars 25520 25512 -0.0% 1.00x (?)
CharIteration_japanese_unicodeScalars_Backwards 18635 18630 -0.0% 1.00x (?)
CharIteration_korean_unicodeScalars 20658 20648 -0.0% 1.00x
CharIteration_korean_unicodeScalars_Backwards 15096 15091 -0.0% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars 3805 3806 +0.0% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 2818 2821 +0.1% 1.00x
CharIteration_punctuated_unicodeScalars 4780 4781 +0.0% 1.00x (?)
CharIteration_punctuated_unicodeScalars_Backwards 3529 3526 -0.1% 1.00x (?)
CharIteration_russian_unicodeScalars 17735 17737 +0.0% 1.00x (?)
CharIteration_russian_unicodeScalars_Backwards 12972 12973 +0.0% 1.00x (?)
CharIteration_tweet_unicodeScalars 42037 42029 -0.0% 1.00x (?)
CharIteration_tweet_unicodeScalars_Backwards 30730 30737 +0.0% 1.00x (?)
CharIteration_utf16_unicodeScalars 27831 27855 +0.1% 1.00x
CharIteration_utf16_unicodeScalars_Backwards 19173 19499 +1.7% 0.98x
CharacterLiteralsLarge 5838 5864 +0.4% 1.00x (?)
CharacterLiteralsSmall 220 220 +0.0% 1.00x
CharacterPropertiesFetch 4492 4495 +0.1% 1.00x (?)
CharacterPropertiesPrecomputed 1317 1314 -0.2% 1.00x (?)
CharacterPropertiesStashed 1461 1467 +0.4% 1.00x (?)
CharacterPropertiesStashedMemo 1718 1696 -1.3% 1.01x
Chars 1132 1093 -3.4% 1.04x
Combos 505 486 -3.8% 1.04x (?)
DataAccessBytes 1164 1132 -2.7% 1.03x
DataAppendArray 6411 6513 +1.6% 0.98x (?)
DataAppendBytes 6176 6371 +3.2% 0.97x (?)
DataAppendDataLargeToLarge 70183 69304 -1.3% 1.01x (?)
DataAppendDataLargeToMedium 36660 36610 -0.1% 1.00x (?)
DataAppendDataLargeToSmall 35944 35531 -1.1% 1.01x (?)
DataAppendDataMediumToLarge 39139 38891 -0.6% 1.01x (?)
DataAppendDataMediumToMedium 8214 8177 -0.5% 1.00x (?)
DataAppendDataMediumToSmall 7116 7049 -0.9% 1.01x (?)
DataAppendDataSmallToLarge 38382 38243 -0.4% 1.00x (?)
DataAppendDataSmallToMedium 7850 7534 -4.0% 1.04x (?)
DataAppendSequence 19952 19616 -1.7% 1.02x (?)
DataCount 38 38 +0.0% 1.00x
DataMutateBytes 4272 4181 -2.1% 1.02x
DataReplaceLarge 42916 42918 +0.0% 1.00x (?)
DataReplaceLargeBuffer 59105 59319 +0.4% 1.00x (?)
DataReplaceMedium 11275 11743 +4.2% 0.96x (?)
DataReplaceMediumBuffer 12237 11742 -4.0% 1.04x (?)
DataReplaceSmall 8872 8871 -0.0% 1.00x (?)
DataReplaceSmallBuffer 9829 9638 -1.9% 1.02x (?)
DataReset 3284 3205 -2.4% 1.02x (?)
DataSetCount 893 895 +0.2% 1.00x
DataSubscript 237 237 +0.0% 1.00x
DictOfArraysToArrayOfDicts 856 866 +1.2% 0.99x (?)
Dictionary 832 826 -0.7% 1.01x
Dictionary2 909 910 +0.1% 1.00x (?)
Dictionary2OfObjects 2419 2424 +0.2% 1.00x (?)
Dictionary3 339 338 -0.3% 1.00x
Dictionary3OfObjects 871 862 -1.0% 1.01x (?)
Dictionary4 817 840 +2.8% 0.97x (?)
Dictionary4OfObjects 936 937 +0.1% 1.00x (?)
DictionaryBridge 1230 1176 -4.4% 1.05x (?)
DictionaryCopy 121271 121283 +0.0% 1.00x (?)
DictionaryFilter 119425 119704 +0.2% 1.00x (?)
DictionaryGroup 268 269 +0.4% 1.00x (?)
DictionaryGroupOfObjects 2294 2329 +1.5% 0.98x (?)
DictionaryLiteral 2079 2083 +0.2% 1.00x (?)
DictionaryOfObjects 2680 2683 +0.1% 1.00x (?)
DictionaryRemove 5267 5293 +0.5% 1.00x (?)
DictionaryRemoveOfObjects 29154 28930 -0.8% 1.01x (?)
DictionarySubscriptDefaultMutation 334 334 +0.0% 1.00x
DictionarySubscriptDefaultMutationArray 680 679 -0.1% 1.00x (?)
DictionarySubscriptDefaultMutationArrayOfObjects 4174 4174 +0.0% 1.00x
DictionarySubscriptDefaultMutationOfObjects 1885 1892 +0.4% 1.00x (?)
DictionarySwap 1442 1445 +0.2% 1.00x (?)
DictionarySwapAt 7335 7550 +2.9% 0.97x (?)
DictionarySwapAtOfObjects 53629 53400 -0.4% 1.00x (?)
DictionarySwapOfObjects 9370 9362 -0.1% 1.00x (?)
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollection 84 84 +0.0% 1.00x
DropFirstAnyCollectionLazy 62182 62087 -0.2% 1.00x (?)
DropFirstAnySeqCRangeIter 21456 21472 +0.1% 1.00x (?)
DropFirstAnySeqCRangeIterLazy 21419 21447 +0.1% 1.00x
DropFirstAnySeqCntRange 41 41 +0.0% 1.00x
DropFirstAnySeqCntRangeLazy 41 41 +0.0% 1.00x
DropFirstAnySequence 4979 4988 +0.2% 1.00x (?)
DropFirstAnySequenceLazy 4983 4982 -0.0% 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 2683 2681 -0.1% 1.00x (?)
DropFirstSequenceLazy 2822 2822 +0.0% 1.00x
DropLastAnyCollection 31 31 +0.0% 1.00x
DropLastAnyCollectionLazy 20779 20796 +0.1% 1.00x (?)
DropLastAnySeqCRangeIter 3641 3644 +0.1% 1.00x (?)
DropLastAnySeqCRangeIterLazy 3638 3640 +0.1% 1.00x (?)
DropLastAnySeqCntRange 13 13 +0.0% 1.00x
DropLastAnySeqCntRangeLazy 13 13 +0.0% 1.00x
DropLastAnySequence 5056 5032 -0.5% 1.00x (?)
DropLastAnySequenceLazy 5090 5171 +1.6% 0.98x (?)
DropLastCountableRange 12 12 +0.0% 1.00x
DropLastCountableRangeLazy 11 11 +0.0% 1.00x
DropLastSequence 546 546 +0.0% 1.00x
DropLastSequenceLazy 544 544 +0.0% 1.00x
DropWhileAnyCollection 107 107 +0.0% 1.00x
DropWhileAnyCollectionLazy 125 125 +0.0% 1.00x
DropWhileAnySeqCRangeIter 16932 16925 -0.0% 1.00x (?)
DropWhileAnySeqCRangeIterLazy 125 125 +0.0% 1.00x
DropWhileAnySeqCntRange 50 50 +0.0% 1.00x
DropWhileAnySeqCntRangeLazy 125 125 +0.0% 1.00x
DropWhileAnySequence 4866 4873 +0.1% 1.00x
DropWhileAnySequenceLazy 1856 1903 +2.5% 0.98x (?)
DropWhileArrayLazy 88 89 +1.1% 0.99x
DropWhileCountableRange 36 36 +0.0% 1.00x
DropWhileCountableRangeLazy 105 105 +0.0% 1.00x
DropWhileSequence 2223 2224 +0.0% 1.00x (?)
DropWhileSequenceLazy 88 88 +0.0% 1.00x
EqualStringSubstring 55 55 +0.0% 1.00x
EqualSubstringString 64 64 +0.0% 1.00x
EqualSubstringSubstring 49 49 +0.0% 1.00x
EqualSubstringSubstringGenericEquatable 49 49 +0.0% 1.00x
ErrorHandling 1472 1464 -0.5% 1.01x (?)
ExclusivityGlobal 5 5 +0.0% 1.00x
ExclusivityIndependent 2 2 +0.0% 1.00x
FatCompactMap 204817 204755 -0.0% 1.00x (?)
FilterEvenUsingReduce 1310 1298 -0.9% 1.01x (?)
FilterEvenUsingReduceInto 148 147 -0.7% 1.01x (?)
FloatingPointPrinting_Double_description_small 23542 23428 -0.5% 1.00x (?)
FloatingPointPrinting_Double_description_uniform 23268 23079 -0.8% 1.01x
FloatingPointPrinting_Double_interpolated 76617 76780 +0.2% 1.00x (?)
FloatingPointPrinting_Float80_description_small 30446 30396 -0.2% 1.00x (?)
FloatingPointPrinting_Float80_description_uniform 30379 30329 -0.2% 1.00x (?)
FloatingPointPrinting_Float80_interpolated 81437 85304 +4.7% 0.95x
FloatingPointPrinting_Float_description_small 5084 5085 +0.0% 1.00x (?)
FloatingPointPrinting_Float_description_uniform 4971 4973 +0.0% 1.00x (?)
FloatingPointPrinting_Float_interpolated 52569 53303 +1.4% 0.99x (?)
FrequenciesUsingReduce 5458 5401 -1.0% 1.01x (?)
FrequenciesUsingReduceInto 1830 1834 +0.2% 1.00x (?)
Hanoi 2122 2119 -0.1% 1.00x (?)
HashTest 997 1001 +0.4% 1.00x (?)
Histogram 874 876 +0.2% 1.00x
Integrate 353 352 -0.3% 1.00x
Join 178 178 +0.0% 1.00x
LazilyFilteredArrayContains 36671 36667 -0.0% 1.00x (?)
LazilyFilteredArrays 65790 64867 -1.4% 1.01x (?)
LazilyFilteredRange 3743 3731 -0.3% 1.00x (?)
LessSubstringSubstring 48 48 +0.0% 1.00x
LessSubstringSubstringGenericComparable 48 48 +0.0% 1.00x
LinkedList 7522 7525 +0.0% 1.00x (?)
LuhnAlgoEager 293 297 +1.4% 0.99x (?)
LuhnAlgoLazy 301 300 -0.3% 1.00x (?)
MapReduce 401 402 +0.2% 1.00x (?)
MapReduceAnyCollection 428 429 +0.2% 1.00x (?)
MapReduceAnyCollectionShort 2250 2250 +0.0% 1.00x
MapReduceClass 2990 2992 +0.1% 1.00x (?)
MapReduceClassShort 4555 4556 +0.0% 1.00x (?)
MapReduceLazyCollection 13 13 +0.0% 1.00x
MapReduceLazyCollectionShort 34 34 +0.0% 1.00x
MapReduceLazySequence 86 86 +0.0% 1.00x
MapReduceSequence 455 448 -1.5% 1.02x (?)
MapReduceShort 2008 2007 -0.0% 1.00x (?)
MapReduceShortString 31 31 +0.0% 1.00x
MapReduceString 79 79 +0.0% 1.00x
Memset 219 217 -0.9% 1.01x (?)
MonteCarloE 10312 10435 +1.2% 0.99x
MonteCarloPi 42748 42825 +0.2% 1.00x (?)
NSDictionaryCastToSwift 5636 5655 +0.3% 1.00x (?)
NSError 174 174 +0.0% 1.00x
NSStringConversion 724 704 -2.8% 1.03x
NibbleSort 3690 3690 +0.0% 1.00x
NopDeinit 32359 32362 +0.0% 1.00x (?)
ObjectAllocation 133 132 -0.8% 1.01x (?)
ObjectiveCBridgeFromNSArrayAnyObject 27805 27150 -2.4% 1.02x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 4878 5051 +3.5% 0.97x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 107818 109295 +1.4% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObject 51504 51673 +0.3% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 79350 79192 -0.2% 1.00x (?)
ObjectiveCBridgeFromNSString 1196 1191 -0.4% 1.00x
ObjectiveCBridgeFromNSStringForced 2664 2689 +0.9% 0.99x (?)
ObjectiveCBridgeStubDataAppend 11495 11537 +0.4% 1.00x (?)
ObjectiveCBridgeStubDateMutation 400 401 +0.2% 1.00x
ObjectiveCBridgeStubFromNSDate 6249 6230 -0.3% 1.00x
ObjectiveCBridgeStubFromNSString 1018 1011 -0.7% 1.01x (?)
ObjectiveCBridgeStubFromNSStringRef 159 159 +0.0% 1.00x
ObjectiveCBridgeStubNSDataAppend 2622 2525 -3.7% 1.04x (?)
ObjectiveCBridgeStubNSDateMutationRef 13596 13351 -1.8% 1.02x (?)
ObjectiveCBridgeStubToArrayOfNSString 38143 38198 +0.1% 1.00x (?)
ObjectiveCBridgeStubToNSDateRef 3450 3448 -0.1% 1.00x (?)
ObjectiveCBridgeStubToNSString 2377 2387 +0.4% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 113 113 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 284820 294658 +3.5% 0.97x
ObjectiveCBridgeStubURLAppendPathRef 301072 290788 -3.4% 1.04x (?)
ObjectiveCBridgeToNSArray 14167 14573 +2.9% 0.97x
ObjectiveCBridgeToNSDictionary 25819 26163 +1.3% 0.99x (?)
ObjectiveCBridgeToNSSet 16471 16781 +1.9% 0.98x (?)
ObjectiveCBridgeToNSString 490 490 +0.0% 1.00x
ObserverClosure 2155 2157 +0.1% 1.00x (?)
ObserverForwarderStruct 1250 1251 +0.1% 1.00x (?)
ObserverPartiallyAppliedMethod 3723 3753 +0.8% 0.99x
ObserverUnappliedMethod 2598 2600 +0.1% 1.00x
OpenClose 263 269 +2.3% 0.98x
PartialApplyDynamicType 0 0 +0.0% 1.00x
Phonebook 5270 5273 +0.1% 1.00x (?)
PointerArithmetics 31509 31501 -0.0% 1.00x (?)
PolymorphicCalls 25 25 +0.0% 1.00x
PopFrontArray 1881 1880 -0.1% 1.00x (?)
PopFrontArrayGeneric 1907 1878 -1.5% 1.02x (?)
PopFrontUnsafePointer 9042 9010 -0.4% 1.00x (?)
PrefixAnyCollection 84 84 +0.0% 1.00x
PrefixAnyCollectionLazy 62144 62079 -0.1% 1.00x (?)
PrefixAnySeqCRangeIter 16578 16585 +0.0% 1.00x (?)
PrefixAnySeqCRangeIterLazy 16584 16585 +0.0% 1.00x (?)
PrefixAnySeqCntRange 28 28 +0.0% 1.00x
PrefixAnySeqCntRangeLazy 28 28 +0.0% 1.00x
PrefixAnySequence 4401 4368 -0.7% 1.01x
PrefixAnySequenceLazy 4357 4369 +0.3% 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 2223 2223 +0.0% 1.00x
PrefixSequenceLazy 2311 2310 -0.0% 1.00x (?)
PrefixWhileAnyCollection 154 154 +0.0% 1.00x
PrefixWhileAnyCollectionLazy 90 90 +0.0% 1.00x
PrefixWhileAnySeqCRangeIter 9025 9057 +0.4% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 72 72 +0.0% 1.00x
PrefixWhileAnySeqCntRange 60 60 +0.0% 1.00x
PrefixWhileAnySeqCntRangeLazy 90 90 +0.0% 1.00x
PrefixWhileAnySequence 10155 10173 +0.2% 1.00x (?)
PrefixWhileAnySequenceLazy 1428 1429 +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 361 +0.0% 1.00x
PrefixWhileSequenceLazy 52 52 +0.0% 1.00x
Prims 1179 1157 -1.9% 1.02x (?)
PrimsSplit 1170 1165 -0.4% 1.00x (?)
QueueConcrete 1134 1133 -0.1% 1.00x
QueueGeneric 1134 1134 +0.0% 1.00x
RC4 168 168 +0.0% 1.00x
RGBHistogram 3867 3845 -0.6% 1.01x (?)
RGBHistogramOfObjects 25267 25255 -0.0% 1.00x (?)
RangeAssignment 350 350 +0.0% 1.00x
RangeIterationSigned 200 200 +0.0% 1.00x
RangeReplaceableCollectionPlusDefault 980 982 +0.2% 1.00x (?)
RecursiveOwnedParameter 115 115 +0.0% 1.00x
RemoveWhereFilterInts 46 46 +0.0% 1.00x
RemoveWhereFilterString 353 349 -1.1% 1.01x
RemoveWhereFilterStrings 432 431 -0.2% 1.00x
RemoveWhereMoveInts 14 14 +0.0% 1.00x
RemoveWhereMoveStrings 701 702 +0.1% 1.00x
RemoveWhereQuadraticInts 1288 1287 -0.1% 1.00x (?)
RemoveWhereQuadraticString 498 498 +0.0% 1.00x
RemoveWhereQuadraticStrings 2755 2753 -0.1% 1.00x (?)
RemoveWhereSwapInts 19 19 +0.0% 1.00x
RemoveWhereSwapStrings 850 850 +0.0% 1.00x
ReversedArray 57 57 +0.0% 1.00x
ReversedBidirectional 16222 16468 +1.5% 0.99x (?)
ReversedDictionary 339 339 +0.0% 1.00x
RomanNumbers 136463 136828 +0.3% 1.00x (?)
SequenceAlgosAnySequence 11864 11875 +0.1% 1.00x (?)
SequenceAlgosArray 1582 1577 -0.3% 1.00x (?)
SequenceAlgosContiguousArray 1581 1581 +0.0% 1.00x
SequenceAlgosList 1349 1350 +0.1% 1.00x (?)
SequenceAlgosRange 2578 2577 -0.0% 1.00x (?)
SequenceAlgosUnfoldSequence 1076 1077 +0.1% 1.00x
SetExclusiveOr 6797 6624 -2.5% 1.03x
SetExclusiveOr_OfObjects 14304 14374 +0.5% 1.00x
SetIntersect 1002 1005 +0.3% 1.00x (?)
SetIntersect_OfObjects 2389 2438 +2.1% 0.98x
SetIsSubsetOf 377 376 -0.3% 1.00x
SetIsSubsetOf_OfObjects 539 539 +0.0% 1.00x
SetUnion 5898 5874 -0.4% 1.00x (?)
SetUnion_OfObjects 12132 12116 -0.1% 1.00x (?)
SevenBoom 882 882 +0.0% 1.00x
Sim2DArray 669 663 -0.9% 1.01x
SortLargeExistentials 6174 6129 -0.7% 1.01x
SortLettersInPlace 1053 1058 +0.5% 1.00x (?)
SortSortedStrings 1010 1008 -0.2% 1.00x
SortStrings 2051 2050 -0.0% 1.00x (?)
SortStringsUnicode 2564 2565 +0.0% 1.00x
StackPromo 22387 22392 +0.0% 1.00x (?)
StaticArray 9 9 +0.0% 1.00x
StrComplexWalk 1802 1789 -0.7% 1.01x
StrToInt 2787 2855 +2.4% 0.98x
StringAdder 703 705 +0.3% 1.00x
StringBuilder 735 738 +0.4% 1.00x
StringBuilderWithLongSubstring 1456 1468 +0.8% 0.99x (?)
StringComparison_abnormal 819 816 -0.4% 1.00x (?)
StringComparison_ascii 1282 1281 -0.1% 1.00x (?)
StringComparison_emoji 823 821 -0.2% 1.00x
StringComparison_fastPrenormal 785 784 -0.1% 1.00x
StringComparison_latin1 615 619 +0.7% 0.99x
StringComparison_longSharedPrefix 930 931 +0.1% 1.00x (?)
StringComparison_nonBMPSlowestPrenormal 1599 1597 -0.1% 1.00x
StringComparison_slowerPrenormal 1719 1719 +0.0% 1.00x
StringComparison_zalgo 125150 125422 +0.2% 1.00x (?)
StringEdits 169914 172854 +1.7% 0.98x (?)
StringEnumRawValueInitialization 1102 1099 -0.3% 1.00x (?)
StringEqualPointerComparison 315 315 +0.0% 1.00x
StringFromLongWholeSubstring 21 21 +0.0% 1.00x
StringFromLongWholeSubstringGeneric 21 21 +0.0% 1.00x
StringHasPrefixAscii 1976 1977 +0.1% 1.00x (?)
StringHasPrefixUnicode 109123 108924 -0.2% 1.00x (?)
StringHasSuffixAscii 2148 2147 -0.0% 1.00x (?)
StringHasSuffixUnicode 113675 114118 +0.4% 1.00x (?)
StringInterpolation 10173 9969 -2.0% 1.02x
StringInterpolationManySmallSegments 18836 18932 +0.5% 0.99x (?)
StringInterpolationSmall 6743 6745 +0.0% 1.00x (?)
StringMatch 12926 12874 -0.4% 1.00x
StringRemoveDupes 819 819 +0.0% 1.00x
StringUTF16Builder 2682 2715 +1.2% 0.99x (?)
StringUTF16SubstringBuilder 6199 6120 -1.3% 1.01x (?)
StringWalk 1426 1425 -0.1% 1.00x
StringWithCString 42933 42962 +0.1% 1.00x (?)
StringWordBuilder 2411 2413 +0.1% 1.00x (?)
StringWordBuilderReservingCapacity 1872 1872 +0.0% 1.00x
SubstringComparable 27 27 +0.0% 1.00x
SubstringEqualString 766 774 +1.0% 0.99x (?)
SubstringEquatable 1410 1410 +0.0% 1.00x
SubstringFromLongString 10 10 +0.0% 1.00x
SubstringFromLongStringGeneric 75 74 -1.3% 1.01x (?)
SuffixAnyCollection 31 31 +0.0% 1.00x
SuffixAnyCollectionLazy 20763 20704 -0.3% 1.00x (?)
SuffixAnySeqCRangeIter 3865 3923 +1.5% 0.99x (?)
SuffixAnySeqCRangeIterLazy 3929 4065 +3.5% 0.97x
SuffixAnySeqCntRange 20 20 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 20 20 +0.0% 1.00x
SuffixAnySequence 5667 5691 +0.4% 1.00x (?)
SuffixAnySequenceLazy 5825 5701 -2.1% 1.02x (?)
SuffixCountableRangeLazy 12 12 +0.0% 1.00x
SuffixSequence 3696 3769 +2.0% 0.98x (?)
SuffixSequenceLazy 3766 3919 +4.1% 0.96x (?)
SumUsingReduce 97 97 +0.0% 1.00x
SumUsingReduceInto 97 97 +0.0% 1.00x
SuperChars 14759 14717 -0.3% 1.00x (?)
TwoSum 1724 1711 -0.8% 1.01x (?)
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode 292 291 -0.3% 1.00x
Walsh 412 412 +0.0% 1.00x
WordCountHistogramASCII 8273 8289 +0.2% 1.00x
WordCountHistogramUTF16 14673 14788 +0.8% 0.99x
WordCountUniqueASCII 2624 2690 +2.5% 0.98x
WordCountUniqueUTF16 7774 7807 +0.4% 1.00x (?)
WordSplitASCII 12656 12801 +1.1% 0.99x
WordSplitUTF16 14398 14567 +1.2% 0.99x (?)
XorLoop 395 395 +0.0% 1.00x

Unoptimized (Onone)

Regression (19)
TEST OLD NEW DELTA SPEEDUP
ReversedArray 13338 18209 +36.5% 0.73x (?)
DropFirstArray 5848 7715 +31.9% 0.76x (?)
CharIteration_ascii_unicodeScalars 150268 185372 +23.4% 0.81x (?)
DropLastAnyCollection 5151 5939 +15.3% 0.87x (?)
AngryPhonebook 5152 5940 +15.3% 0.87x (?)
SuffixAnySeqCntRange 5161 5906 +14.4% 0.87x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 9086 10379 +14.2% 0.88x (?)
FloatingPointPrinting_Float_interpolated 69737 77258 +10.8% 0.90x (?)
CharIndexing_ascii_unicodeScalars 348849 379261 +8.7% 0.92x (?)
ObjectiveCBridgeFromNSString 2900 3151 +8.7% 0.92x (?)
DataReplaceMediumBuffer 13475 14469 +7.4% 0.93x (?)
DictionarySwapOfObjects 19525 20923 +7.2% 0.93x (?)
ObserverPartiallyAppliedMethod 7973 8509 +6.7% 0.94x
FilterEvenUsingReduce 3596 3820 +6.2% 0.94x (?)
ErrorHandling 6081 6454 +6.1% 0.94x (?)
CharIndexing_russian_unicodeScalars 293277 310682 +5.9% 0.94x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 48131 50985 +5.9% 0.94x (?)
StringInterpolationSmall 8764 9266 +5.7% 0.95x (?)
CharIndexing_punctuated_unicodeScalars_Backwards 94528 99802 +5.6% 0.95x (?)
Improvement (15)
TEST OLD NEW DELTA SPEEDUP
CharIteration_japanese_unicodeScalars 221108 178418 -19.3% 1.24x
ObjectiveCBridgeStubFromArrayOfNSString 36967 31691 -14.3% 1.17x
ObjectiveCBridgeFromNSSetAnyObjectForced 6722 5850 -13.0% 1.15x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 54048 47187 -12.7% 1.15x
CharIteration_tweet_unicodeScalars_Backwards 563479 495421 -12.1% 1.14x (?)
CharIteration_punctuated_unicodeScalars_Backwards 63305 56295 -11.1% 1.12x
Dictionary3 1044 935 -10.4% 1.12x (?)
SubstringEquatable 6116 5512 -9.9% 1.11x
NSDictionaryCastToSwift 6874 6234 -9.3% 1.10x (?)
CharIteration_utf16_unicodeScalars_Backwards 241343 219505 -9.0% 1.10x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 122088 111589 -8.6% 1.09x (?)
ObjectiveCBridgeStubToNSDate 16606 15535 -6.4% 1.07x (?)
RGBHistogram 26441 24945 -5.7% 1.06x (?)
CharIndexing_utf16_unicodeScalars_Backwards 358172 339138 -5.3% 1.06x (?)
CharIndexing_utf16_unicodeScalars 317029 300825 -5.1% 1.05x
No Changes (388)
TEST OLD NEW DELTA SPEEDUP
AnyHashableWithAClass 102988 103727 +0.7% 0.99x (?)
Array2D 676680 678474 +0.3% 1.00x (?)
ArrayAppend 4558 4549 -0.2% 1.00x
ArrayAppendArrayOfInt 869 866 -0.3% 1.00x
ArrayAppendAscii 38873 38879 +0.0% 1.00x (?)
ArrayAppendFromGeneric 871 872 +0.1% 1.00x (?)
ArrayAppendGenericStructs 1509 1509 +0.0% 1.00x
ArrayAppendLatin1 64005 64004 -0.0% 1.00x (?)
ArrayAppendLazyMap 169085 169148 +0.0% 1.00x (?)
ArrayAppendOptionals 1507 1496 -0.7% 1.01x (?)
ArrayAppendRepeatCol 184834 184844 +0.0% 1.00x (?)
ArrayAppendReserved 4275 4279 +0.1% 1.00x (?)
ArrayAppendSequence 106086 106057 -0.0% 1.00x (?)
ArrayAppendStrings 6348 6361 +0.2% 1.00x (?)
ArrayAppendToFromGeneric 873 862 -1.3% 1.01x (?)
ArrayAppendToGeneric 881 881 +0.0% 1.00x
ArrayAppendUTF16 64274 64282 +0.0% 1.00x (?)
ArrayInClass 6228 6228 +0.0% 1.00x
ArrayLiteral 1798 1798 +0.0% 1.00x
ArrayOfGenericPOD2 1185 1185 +0.0% 1.00x
ArrayOfGenericRef 10697 10734 +0.3% 1.00x (?)
ArrayOfPOD 760 767 +0.9% 0.99x
ArrayOfRef 9880 9897 +0.2% 1.00x (?)
ArrayPlusEqualArrayOfInt 871 870 -0.1% 1.00x (?)
ArrayPlusEqualFiveElementCollection 238290 234575 -1.6% 1.02x (?)
ArrayPlusEqualSingleElementCollection 232918 231619 -0.6% 1.01x (?)
ArrayPlusEqualThreeElements 9291 9263 -0.3% 1.00x (?)
ArraySubscript 109201 108347 -0.8% 1.01x
ArrayValueProp 3672 3656 -0.4% 1.00x (?)
ArrayValueProp2 15176 15167 -0.1% 1.00x (?)
ArrayValueProp3 4138 4141 +0.1% 1.00x (?)
ArrayValueProp4 4100 4095 -0.1% 1.00x (?)
BinaryFloatingPointPropertiesBinade 91 91 +0.0% 1.00x
BinaryFloatingPointPropertiesNextUp 129 128 -0.8% 1.01x
BinaryFloatingPointPropertiesUlp 126 126 +0.0% 1.00x
BitCount 8796 8776 -0.2% 1.00x
ByteSwap 9699 9712 +0.1% 1.00x (?)
COWTree 12721 13069 +2.7% 0.97x (?)
CSVParsing 2672106 2660088 -0.4% 1.00x (?)
CSVParsingAlt 1417967 1410896 -0.5% 1.01x (?)
CSVParsingAltIndices 2299685 2292994 -0.3% 1.00x (?)
CStringLongAscii 5585 5564 -0.4% 1.00x (?)
CStringLongNonAscii 2462 2456 -0.2% 1.00x (?)
CStringShortAscii 6196 6163 -0.5% 1.01x (?)
Calculator 2051 2053 +0.1% 1.00x (?)
CaptureProp 277173 276924 -0.1% 1.00x (?)
ChainedFilterMap 232971 233073 +0.0% 1.00x (?)
CharIndexing_ascii_unicodeScalars_Backwards 421249 434610 +3.2% 0.97x
CharIndexing_chinese_unicodeScalars 270447 269245 -0.4% 1.00x (?)
CharIndexing_chinese_unicodeScalars_Backwards 319773 335132 +4.8% 0.95x (?)
CharIndexing_japanese_unicodeScalars 436520 427330 -2.1% 1.02x (?)
CharIndexing_japanese_unicodeScalars_Backwards 501870 507327 +1.1% 0.99x (?)
CharIndexing_korean_unicodeScalars 355595 349737 -1.6% 1.02x (?)
CharIndexing_korean_unicodeScalars_Backwards 410050 411270 +0.3% 1.00x (?)
CharIndexing_punctuatedJapanese_unicodeScalars 63728 62638 -1.7% 1.02x (?)
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 78161 76010 -2.8% 1.03x (?)
CharIndexing_punctuated_unicodeScalars 83090 81313 -2.1% 1.02x (?)
CharIndexing_russian_unicodeScalars_Backwards 349793 349946 +0.0% 1.00x (?)
CharIndexing_tweet_unicodeScalars 718292 728229 +1.4% 0.99x (?)
CharIndexing_tweet_unicodeScalars_Backwards 866525 860125 -0.7% 1.01x (?)
CharIteration_ascii_unicodeScalars_Backwards 251540 251449 -0.0% 1.00x (?)
CharIteration_chinese_unicodeScalars 112656 112780 +0.1% 1.00x (?)
CharIteration_chinese_unicodeScalars_Backwards 190449 196627 +3.2% 0.97x (?)
CharIteration_japanese_unicodeScalars_Backwards 300768 301607 +0.3% 1.00x (?)
CharIteration_korean_unicodeScalars 145474 145019 -0.3% 1.00x (?)
CharIteration_korean_unicodeScalars_Backwards 243768 244401 +0.3% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars 26391 26386 -0.0% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 45757 43635 -4.6% 1.05x (?)
CharIteration_punctuated_unicodeScalars 33483 33352 -0.4% 1.00x (?)
CharIteration_russian_unicodeScalars 124029 124310 +0.2% 1.00x (?)
CharIteration_russian_unicodeScalars_Backwards 208814 209879 +0.5% 0.99x (?)
CharIteration_tweet_unicodeScalars 295928 298306 +0.8% 0.99x (?)
CharIteration_utf16_unicodeScalars 127257 127769 +0.4% 1.00x (?)
CharacterLiteralsLarge 5803 5778 -0.4% 1.00x
CharacterLiteralsSmall 727 727 +0.0% 1.00x
CharacterPropertiesFetch 5623 5651 +0.5% 1.00x (?)
CharacterPropertiesPrecomputed 3596 3581 -0.4% 1.00x (?)
CharacterPropertiesStashed 2291 2289 -0.1% 1.00x (?)
CharacterPropertiesStashedMemo 4904 5049 +3.0% 0.97x (?)
Chars 35922 35915 -0.0% 1.00x (?)
ClassArrayGetter 990 988 -0.2% 1.00x
Combos 2333 2334 +0.0% 1.00x (?)
DataAccessBytes 2321 2326 +0.2% 1.00x (?)
DataAppendArray 5537 5786 +4.5% 0.96x (?)
DataAppendBytes 5476 5221 -4.7% 1.05x (?)
DataAppendDataLargeToLarge 68330 67249 -1.6% 1.02x (?)
DataAppendDataLargeToMedium 35056 35756 +2.0% 0.98x (?)
DataAppendDataLargeToSmall 34510 34489 -0.1% 1.00x (?)
DataAppendDataMediumToLarge 37929 38445 +1.4% 0.99x
DataAppendDataMediumToMedium 6715 6845 +1.9% 0.98x (?)
DataAppendDataMediumToSmall 6150 6345 +3.2% 0.97x (?)
DataAppendDataSmallToLarge 37173 37385 +0.6% 0.99x (?)
DataAppendDataSmallToMedium 6107 6284 +2.9% 0.97x (?)
DataAppendDataSmallToSmall 5823 5997 +3.0% 0.97x (?)
DataAppendSequence 1903868 1904432 +0.0% 1.00x (?)
DataCopyBytes 2642 2549 -3.5% 1.04x
DataCount 223 223 +0.0% 1.00x
DataMutateBytes 5199 5207 +0.2% 1.00x (?)
DataReplaceLarge 39861 40074 +0.5% 0.99x (?)
DataReplaceLargeBuffer 59585 60472 +1.5% 0.99x
DataReplaceMedium 8901 9180 +3.1% 0.97x (?)
DataReplaceSmall 6802 6987 +2.7% 0.97x (?)
DataReplaceSmallBuffer 10432 10629 +1.9% 0.98x (?)
DataReset 2931 2882 -1.7% 1.02x (?)
DataSetCount 567 569 +0.4% 1.00x (?)
DataSubscript 444 444 +0.0% 1.00x
DictOfArraysToArrayOfDicts 3494 3587 +2.7% 0.97x (?)
Dictionary 2591 2599 +0.3% 1.00x (?)
Dictionary2 1550 1547 -0.2% 1.00x (?)
Dictionary2OfObjects 4551 4495 -1.2% 1.01x (?)
Dictionary3OfObjects 2156 2163 +0.3% 1.00x (?)
Dictionary4 1571 1574 +0.2% 1.00x
Dictionary4OfObjects 2190 2197 +0.3% 1.00x (?)
DictionaryBridge 1333 1292 -3.1% 1.03x (?)
DictionaryCopy 324826 325175 +0.1% 1.00x (?)
DictionaryFilter 339999 339711 -0.1% 1.00x
DictionaryGroup 4556 4559 +0.1% 1.00x
DictionaryGroupOfObjects 7366 7384 +0.2% 1.00x (?)
DictionaryLiteral 8916 9036 +1.3% 0.99x (?)
DictionaryOfObjects 6602 6539 -1.0% 1.01x (?)
DictionaryRemove 17766 17821 +0.3% 1.00x (?)
DictionaryRemoveOfObjects 55395 54344 -1.9% 1.02x (?)
DictionarySubscriptDefaultMutation 2014 2013 -0.0% 1.00x (?)
DictionarySubscriptDefaultMutationArray 2267 2296 +1.3% 0.99x (?)
DictionarySubscriptDefaultMutationArrayOfObjects 9534 9448 -0.9% 1.01x (?)
DictionarySubscriptDefaultMutationOfObjects 5346 5326 -0.4% 1.00x (?)
DictionarySwap 5349 5349 +0.0% 1.00x
DictionarySwapAt 36184 36325 +0.4% 1.00x (?)
DictionarySwapAtOfObjects 116166 115034 -1.0% 1.01x
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollection 15449 15426 -0.1% 1.00x (?)
DropFirstAnyCollectionLazy 101214 100633 -0.6% 1.01x (?)
DropFirstAnySeqCRangeIter 23627 23572 -0.2% 1.00x (?)
DropFirstAnySeqCRangeIterLazy 23765 23778 +0.1% 1.00x (?)
DropFirstAnySeqCntRange 15483 15433 -0.3% 1.00x (?)
DropFirstAnySeqCntRangeLazy 15427 15479 +0.3% 1.00x (?)
DropFirstAnySequence 12909 12945 +0.3% 1.00x (?)
DropFirstAnySequenceLazy 13118 13138 +0.2% 1.00x (?)
DropFirstArrayLazy 29074 29062 -0.0% 1.00x (?)
DropFirstCountableRange 311 311 +0.0% 1.00x
DropFirstCountableRangeLazy 33789 33874 +0.3% 1.00x (?)
DropFirstSequence 12890 12689 -1.6% 1.02x
DropFirstSequenceLazy 12654 12728 +0.6% 0.99x (?)
DropLastAnyCollectionLazy 32444 33693 +3.8% 0.96x (?)
DropLastAnySeqCRangeIter 40605 40530 -0.2% 1.00x (?)
DropLastAnySeqCRangeIterLazy 40530 40547 +0.0% 1.00x (?)
DropLastAnySeqCntRange 5156 5155 -0.0% 1.00x (?)
DropLastAnySeqCntRangeLazy 5165 5177 +0.2% 1.00x (?)
DropLastAnySequence 30915 31284 +1.2% 0.99x (?)
DropLastAnySequenceLazy 30461 30499 +0.1% 1.00x (?)
DropLastCountableRange 112 112 +0.0% 1.00x
DropLastCountableRangeLazy 11281 11279 -0.0% 1.00x (?)
DropLastSequence 30420 30499 +0.3% 1.00x (?)
DropLastSequenceLazy 30571 30479 -0.3% 1.00x (?)
DropWhileAnyCollection 19857 19888 +0.2% 1.00x (?)
DropWhileAnyCollectionLazy 22633 22631 -0.0% 1.00x (?)
DropWhileAnySeqCRangeIter 24752 24781 +0.1% 1.00x (?)
DropWhileAnySeqCRangeIterLazy 22197 22255 +0.3% 1.00x (?)
DropWhileAnySeqCntRange 19854 19844 -0.1% 1.00x (?)
DropWhileAnySeqCntRangeLazy 22568 22506 -0.3% 1.00x
DropWhileAnySequence 13928 13901 -0.2% 1.00x (?)
DropWhileAnySequenceLazy 12609 12563 -0.4% 1.00x (?)
DropWhileArrayLazy 14175 14172 -0.0% 1.00x (?)
DropWhileCountableRange 4797 4796 -0.0% 1.00x (?)
DropWhileCountableRangeLazy 22250 22238 -0.1% 1.00x (?)
DropWhileSequence 13525 13518 -0.1% 1.00x (?)
DropWhileSequenceLazy 12418 12425 +0.1% 1.00x (?)
EqualStringSubstring 71 71 +0.0% 1.00x
EqualSubstringString 71 71 +0.0% 1.00x
EqualSubstringSubstring 72 72 +0.0% 1.00x
EqualSubstringSubstringGenericEquatable 59 59 +0.0% 1.00x
ExclusivityGlobal 183 183 +0.0% 1.00x
ExclusivityIndependent 71 71 +0.0% 1.00x
FatCompactMap 365141 365198 +0.0% 1.00x (?)
FilterEvenUsingReduceInto 1923 1865 -3.0% 1.03x
FloatingPointPrinting_Double_description_small 24735 24666 -0.3% 1.00x (?)
FloatingPointPrinting_Double_description_uniform 36490 36396 -0.3% 1.00x (?)
FloatingPointPrinting_Double_interpolated 94778 98384 +3.8% 0.96x
FloatingPointPrinting_Float80_description_small 31578 31628 +0.2% 1.00x (?)
FloatingPointPrinting_Float80_description_uniform 59298 59018 -0.5% 1.00x (?)
FloatingPointPrinting_Float80_interpolated 121648 117321 -3.6% 1.04x (?)
FloatingPointPrinting_Float_description_small 7006 7000 -0.1% 1.00x (?)
FloatingPointPrinting_Float_description_uniform 17323 17356 +0.2% 1.00x (?)
FrequenciesUsingReduce 11095 11451 +3.2% 0.97x (?)
FrequenciesUsingReduceInto 3412 3399 -0.4% 1.00x (?)
Hanoi 19906 19953 +0.2% 1.00x (?)
HashTest 21319 20749 -2.7% 1.03x (?)
Histogram 6612 6625 +0.2% 1.00x (?)
Integrate 459 458 -0.2% 1.00x (?)
IterateData 5459 5474 +0.3% 1.00x
Join 770 771 +0.1% 1.00x
LazilyFilteredArrayContains 750513 750378 -0.0% 1.00x (?)
LazilyFilteredArrays 1431653 1440499 +0.6% 0.99x (?)
LazilyFilteredRange 535242 535333 +0.0% 1.00x (?)
LessSubstringSubstring 72 72 +0.0% 1.00x
LessSubstringSubstringGenericComparable 59 59 +0.0% 1.00x
LinkedList 32388 32365 -0.1% 1.00x (?)
LuhnAlgoEager 5574 5753 +3.2% 0.97x
LuhnAlgoLazy 5752 5611 -2.5% 1.03x (?)
MapReduce 25452 25446 -0.0% 1.00x (?)
MapReduceAnyCollection 25464 25503 +0.2% 1.00x (?)
MapReduceAnyCollectionShort 36806 37695 +2.4% 0.98x (?)
MapReduceClass 29848 29614 -0.8% 1.01x
MapReduceClassShort 40852 40064 -1.9% 1.02x (?)
MapReduceLazyCollection 22873 22861 -0.1% 1.00x (?)
MapReduceLazyCollectionShort 33732 33887 +0.5% 1.00x (?)
MapReduceLazySequence 20263 20237 -0.1% 1.00x (?)
MapReduceSequence 30837 30912 +0.2% 1.00x (?)
MapReduceShort 36266 36564 +0.8% 0.99x (?)
MapReduceShortString 248 241 -2.8% 1.03x (?)
MapReduceString 1755 1758 +0.2% 1.00x (?)
Memset 44143 44131 -0.0% 1.00x (?)
MonteCarloE 1157357 1151757 -0.5% 1.00x (?)
MonteCarloPi 5221286 5221131 -0.0% 1.00x (?)
NSError 616 625 +1.5% 0.99x (?)
NSStringConversion 781 766 -1.9% 1.02x
NibbleSort 503244 504571 +0.3% 1.00x (?)
NopDeinit 191120 190978 -0.1% 1.00x (?)
ObjectAllocation 1252 1264 +1.0% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObject 28287 28655 +1.3% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObject 54454 56280 +3.4% 0.97x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 86854 86455 -0.5% 1.00x (?)
ObjectiveCBridgeFromNSStringForced 2795 2809 +0.5% 1.00x (?)
ObjectiveCBridgeStubDataAppend 6301 6418 +1.9% 0.98x
ObjectiveCBridgeStubDateMutation 775 774 -0.1% 1.00x (?)
ObjectiveCBridgeStubFromNSDate 6989 7105 +1.7% 0.98x (?)
ObjectiveCBridgeStubFromNSString 1087 1076 -1.0% 1.01x (?)
ObjectiveCBridgeStubFromNSStringRef 197 197 +0.0% 1.00x
ObjectiveCBridgeStubNSDataAppend 3100 3008 -3.0% 1.03x (?)
ObjectiveCBridgeStubNSDateMutationRef 16044 15800 -1.5% 1.02x (?)
ObjectiveCBridgeStubToArrayOfNSString 38758 38489 -0.7% 1.01x (?)
ObjectiveCBridgeStubToNSDateRef 3487 3477 -0.3% 1.00x (?)
ObjectiveCBridgeStubToNSString 2427 2416 -0.5% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 157 156 -0.6% 1.01x
ObjectiveCBridgeStubURLAppendPath 300574 296813 -1.3% 1.01x (?)
ObjectiveCBridgeStubURLAppendPathRef 297402 311310 +4.7% 0.96x (?)
ObjectiveCBridgeToNSArray 14511 14857 +2.4% 0.98x (?)
ObjectiveCBridgeToNSDictionary 26745 26599 -0.5% 1.01x (?)
ObjectiveCBridgeToNSSet 16381 16929 +3.3% 0.97x (?)
ObjectiveCBridgeToNSString 528 528 +0.0% 1.00x
ObserverClosure 6407 6444 +0.6% 0.99x (?)
ObserverForwarderStruct 4303 4306 +0.1% 1.00x (?)
ObserverUnappliedMethod 8122 8048 -0.9% 1.01x
OpenClose 898 900 +0.2% 1.00x
PartialApplyDynamicType 39584 39927 +0.9% 0.99x (?)
Phonebook 18639 18513 -0.7% 1.01x
PointerArithmetics 117420 117443 +0.0% 1.00x (?)
PolymorphicCalls 2380 2381 +0.0% 1.00x (?)
PopFrontArray 4661 4654 -0.2% 1.00x (?)
PopFrontArrayGeneric 5318 5317 -0.0% 1.00x (?)
PopFrontUnsafePointer 10617 10634 +0.2% 1.00x (?)
PrefixAnyCollection 15423 15412 -0.1% 1.00x (?)
PrefixAnyCollectionLazy 97595 96640 -1.0% 1.01x (?)
PrefixAnySeqCRangeIter 19000 19008 +0.0% 1.00x (?)
PrefixAnySeqCRangeIterLazy 19273 19258 -0.1% 1.00x
PrefixAnySeqCntRange 15556 15528 -0.2% 1.00x (?)
PrefixAnySeqCntRangeLazy 15487 15462 -0.2% 1.00x (?)
PrefixAnySequence 10729 10808 +0.7% 0.99x (?)
PrefixAnySequenceLazy 10882 10886 +0.0% 1.00x (?)
PrefixArray 5784 5779 -0.1% 1.00x (?)
PrefixArrayLazy 29146 29114 -0.1% 1.00x (?)
PrefixCountableRange 323 323 +0.0% 1.00x
PrefixCountableRangeLazy 33946 33831 -0.3% 1.00x
PrefixSequence 10403 10341 -0.6% 1.01x (?)
PrefixSequenceLazy 10379 10382 +0.0% 1.00x (?)
PrefixWhileAnyCollection 28688 28710 +0.1% 1.00x
PrefixWhileAnyCollectionLazy 18643 18599 -0.2% 1.00x
PrefixWhileAnySeqCRangeIter 34380 34487 +0.3% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 18757 18726 -0.2% 1.00x (?)
PrefixWhileAnySeqCntRange 28718 28756 +0.1% 1.00x (?)
PrefixWhileAnySeqCntRangeLazy 18537 18527 -0.1% 1.00x (?)
PrefixWhileAnySequence 26516 26537 +0.1% 1.00x (?)
PrefixWhileAnySequenceLazy 11263 11244 -0.2% 1.00x (?)
PrefixWhileArray 13092 13082 -0.1% 1.00x (?)
PrefixWhileArrayLazy 12372 12368 -0.0% 1.00x (?)
PrefixWhileCountableRange 13627 13640 +0.1% 1.00x (?)
PrefixWhileCountableRangeLazy 18192 18190 -0.0% 1.00x (?)
PrefixWhileSequence 26357 26403 +0.2% 1.00x (?)
PrefixWhileSequenceLazy 10752 10758 +0.1% 1.00x (?)
Prims 9750 9956 +2.1% 0.98x (?)
PrimsSplit 9927 9823 -1.0% 1.01x (?)
QueueConcrete 14230 14242 +0.1% 1.00x (?)
QueueGeneric 18535 18434 -0.5% 1.01x (?)
RC4 16424 16236 -1.1% 1.01x (?)
RGBHistogramOfObjects 79176 79361 +0.2% 1.00x (?)
RangeAssignment 2649 2680 +1.2% 0.99x (?)
RangeIterationSigned 14730 14752 +0.1% 1.00x
RangeReplaceableCollectionPlusDefault 10942 11459 +4.7% 0.95x (?)
RecursiveOwnedParameter 5762 5761 -0.0% 1.00x (?)
RemoveWhereFilterInts 1940 1942 +0.1% 1.00x (?)
RemoveWhereFilterString 1521 1523 +0.1% 1.00x (?)
RemoveWhereFilterStrings 2491 2455 -1.4% 1.01x
RemoveWhereMoveInts 3383 3383 +0.0% 1.00x
RemoveWhereMoveStrings 3891 3890 -0.0% 1.00x (?)
RemoveWhereQuadraticInts 8044 8025 -0.2% 1.00x (?)
RemoveWhereQuadraticString 2262 2253 -0.4% 1.00x (?)
RemoveWhereQuadraticStrings 9658 9652 -0.1% 1.00x (?)
RemoveWhereSwapInts 6094 6094 +0.0% 1.00x
RemoveWhereSwapStrings 6801 6811 +0.1% 1.00x
ReversedBidirectional 43251 43317 +0.2% 1.00x (?)
ReversedDictionary 25458 25476 +0.1% 1.00x (?)
RomanNumbers 1343509 1360621 +1.3% 0.99x
SequenceAlgosAnySequence 13087 13079 -0.1% 1.00x (?)
SequenceAlgosArray 756237 755425 -0.1% 1.00x (?)
SequenceAlgosContiguousArray 289703 289709 +0.0% 1.00x (?)
SequenceAlgosList 8677 8677 +0.0% 1.00x
SequenceAlgosRange 1273447 1274340 +0.1% 1.00x (?)
SequenceAlgosUnfoldSequence 6677 6645 -0.5% 1.00x
SetExclusiveOr 17294 17272 -0.1% 1.00x (?)
SetExclusiveOr_OfObjects 46401 46339 -0.1% 1.00x (?)
SetIntersect 6822 6825 +0.0% 1.00x (?)
SetIntersect_OfObjects 10819 10826 +0.1% 1.00x (?)
SetIsSubsetOf 1217 1217 +0.0% 1.00x
SetIsSubsetOf_OfObjects 1764 1744 -1.1% 1.01x
SetUnion 12567 12584 +0.1% 1.00x (?)
SetUnion_OfObjects 33408 33325 -0.2% 1.00x (?)
SevenBoom 1089 1087 -0.2% 1.00x (?)
Sim2DArray 43520 43764 +0.6% 0.99x
SortLargeExistentials 11623 11623 +0.0% 1.00x
SortLettersInPlace 1956 1965 +0.5% 1.00x (?)
SortSortedStrings 1124 1124 +0.0% 1.00x
SortStrings 2268 2268 +0.0% 1.00x
SortStringsUnicode 2686 2695 +0.3% 1.00x (?)
StackPromo 105271 109456 +4.0% 0.96x (?)
StaticArray 2559 2567 +0.3% 1.00x (?)
StrComplexWalk 6399 6400 +0.0% 1.00x (?)
StrToInt 81368 79545 -2.2% 1.02x (?)
StringAdder 1105 1106 +0.1% 1.00x (?)
StringBuilder 5508 5510 +0.0% 1.00x (?)
StringBuilderLong 2914 2917 +0.1% 1.00x (?)
StringBuilderWithLongSubstring 4772 4713 -1.2% 1.01x (?)
StringComparison_abnormal 1363 1359 -0.3% 1.00x (?)
StringComparison_ascii 9397 9397 +0.0% 1.00x
StringComparison_emoji 1975 1975 +0.0% 1.00x
StringComparison_fastPrenormal 4910 4907 -0.1% 1.00x (?)
StringComparison_latin1 3822 3821 -0.0% 1.00x (?)
StringComparison_longSharedPrefix 2359 2361 +0.1% 1.00x
StringComparison_nonBMPSlowestPrenormal 3650 3656 +0.2% 1.00x (?)
StringComparison_slowerPrenormal 4127 4132 +0.1% 1.00x (?)
StringComparison_zalgo 127623 128174 +0.4% 1.00x (?)
StringEdits 404116 395494 -2.1% 1.02x (?)
StringEnumRawValueInitialization 33552 33935 +1.1% 0.99x
StringEqualPointerComparison 1623 1625 +0.1% 1.00x (?)
StringFromLongWholeSubstring 12 12 +0.0% 1.00x
StringFromLongWholeSubstringGeneric 196 197 +0.5% 0.99x (?)
StringHasPrefixAscii 3182 3177 -0.2% 1.00x (?)
StringHasPrefixUnicode 105895 105734 -0.2% 1.00x (?)
StringHasSuffixAscii 3333 3334 +0.0% 1.00x (?)
StringHasSuffixUnicode 110248 106404 -3.5% 1.04x (?)
StringInterpolation 12377 12405 +0.2% 1.00x (?)
StringInterpolationManySmallSegments 19783 20026 +1.2% 0.99x (?)
StringMatch 40872 40802 -0.2% 1.00x (?)
StringRemoveDupes 829 828 -0.1% 1.00x (?)
StringUTF16Builder 7989 7964 -0.3% 1.00x (?)
StringUTF16SubstringBuilder 24264 24404 +0.6% 0.99x (?)
StringWalk 12759 12758 -0.0% 1.00x (?)
StringWithCString 41602 41623 +0.1% 1.00x (?)
StringWordBuilder 2657 2653 -0.2% 1.00x (?)
StringWordBuilderReservingCapacity 2013 2017 +0.2% 1.00x (?)
SubstringComparable 1651 1627 -1.5% 1.01x
SubstringEqualString 1927 1917 -0.5% 1.01x (?)
SubstringFromLongString 18 18 +0.0% 1.00x
SubstringFromLongStringGeneric 110 107 -2.7% 1.03x
SuffixAnyCollection 5161 5151 -0.2% 1.00x (?)
SuffixAnyCollectionLazy 33219 32615 -1.8% 1.02x (?)
SuffixAnySeqCRangeIter 37239 36322 -2.5% 1.03x
SuffixAnySeqCRangeIterLazy 36440 36428 -0.0% 1.00x (?)
SuffixAnySeqCntRangeLazy 5163 5159 -0.1% 1.00x (?)
SuffixAnySequence 26625 26664 +0.1% 1.00x (?)
SuffixAnySequenceLazy 26212 26149 -0.2% 1.00x (?)
SuffixCountableRange 108 108 +0.0% 1.00x
SuffixCountableRangeLazy 11297 11292 -0.0% 1.00x (?)
SuffixSequence 26342 26319 -0.1% 1.00x (?)
SuffixSequenceLazy 26139 26287 +0.6% 0.99x (?)
SumUsingReduce 159552 159405 -0.1% 1.00x (?)
SumUsingReduceInto 152639 152625 -0.0% 1.00x (?)
SuperChars 85335 85417 +0.1% 1.00x (?)
TwoSum 3733 3753 +0.5% 0.99x
TypeFlood 212 204 -3.8% 1.04x (?)
UTF8Decode 32269 32278 +0.0% 1.00x (?)
Walsh 12068 12076 +0.1% 1.00x (?)
WordCountHistogramASCII 40982 40902 -0.2% 1.00x (?)
WordCountHistogramUTF16 49276 49680 +0.8% 0.99x (?)
WordCountUniqueASCII 8463 8474 +0.1% 1.00x (?)
WordCountUniqueUTF16 14054 14115 +0.4% 1.00x (?)
WordSplitASCII 16521 16664 +0.9% 0.99x (?)
WordSplitUTF16 19362 18899 -2.4% 1.02x (?)
XorLoop 23313 23225 -0.4% 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

if (CalleeFunction->empty()) {
// FIXME: Remove 'Mode'
if (Mode != SILOptions::LinkingMode::LinkNone)
AI.getModule().loadFunction(CalleeFunction);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this function has the wrong name. Imagine a naive reader... what is the difference in between loadFunction and linkFunction without reading comments... they seem the same to me.

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