Skip to content

Make 'rawValue' and 'init(rawValue:)' inlinable for non-resilient enums #15589

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
Apr 20, 2018

Conversation

jrose-apple
Copy link
Contributor

@jrose-apple jrose-apple commented Mar 29, 2018

(including only enums in libraries compiled without -enable-resilience)

Small potential perf win...or rather regain, since we apparently used to do this.

SR-7094 / rdar://problem/38030106

@jrose-apple
Copy link
Contributor Author

Still needs tests, but I want to see if this happens to improve any benchmarks. (The JIRA has an ad hoc benchmark that could probably be added to the suite too.)

@jrose-apple
Copy link
Contributor Author

@swift-ci Please benchmark

@@ -146,6 +146,11 @@ static VarDecl *deriveRawRepresentable_raw(TypeChecker &tc,
addGetterToReadOnlyDerivedProperty(tc, propDecl, rawType);
getterDecl->setBodySynthesizer(&deriveBodyRawRepresentable_raw);

if (enumDecl->isExhaustive(nullptr) &&
enumDecl->getFormalAccessScope(nullptr, true).isPublic()) {
Copy link
Contributor

Choose a reason for hiding this comment

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

Can you add a comment like /* respectsVersioned */ true?

Copy link
Contributor

@slavapestov slavapestov left a comment

Choose a reason for hiding this comment

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

Looks good. We can do the same for equatable and hashable as well, however last time I looked the synthesized code for the no-payload case was really inefficient with switching over the tag when it could just bitcast the enum value to an integer and compare for equality. Anyway no need to investigate this in your PR.

@swift-ci
Copy link
Contributor

Build comment file:

Optimized (O)

Regression (24)
TEST OLD NEW DELTA SPEEDUP
Chars 1092 1215 +11.3% 0.90x
CharIteration_utf16_unicodeScalars_Backwards 17707 19543 +10.4% 0.91x
CharIteration_japanese_unicodeScalars_Backwards 17189 18623 +8.3% 0.92x
CharIteration_ascii_unicodeScalars_Backwards 14358 15552 +8.3% 0.92x
CharIteration_korean_unicodeScalars_Backwards 13928 15083 +8.3% 0.92x
CharIteration_russian_unicodeScalars_Backwards 11969 12960 +8.3% 0.92x
CharIteration_chinese_unicodeScalars_Backwards 10883 11778 +8.2% 0.92x
MapReduce 369 399 +8.1% 0.92x
CharIteration_punctuated_unicodeScalars_Backwards 3263 3521 +7.9% 0.93x
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 2611 2812 +7.7% 0.93x
RemoveWhereMoveInts 14 15 +7.1% 0.93x
CharIteration_tweet_unicodeScalars_Backwards 28726 30717 +6.9% 0.94x
MapReduceAnyCollection 429 458 +6.8% 0.94x
CharIndexing_korean_unicodeScalars 15239 16177 +6.2% 0.94x
CharIndexing_russian_unicodeScalars 13097 13894 +6.1% 0.94x
CharIndexing_japanese_unicodeScalars 18814 19957 +6.1% 0.94x
CharIndexing_ascii_unicodeScalars 15721 16675 +6.1% 0.94x
CharIndexing_chinese_unicodeScalars 11913 12632 +6.0% 0.94x
Hanoi 2013 2133 +6.0% 0.94x
DataCopyBytes 2491 2639 +5.9% 0.94x
BinaryFloatingPointPropertiesUlp 35 37 +5.7% 0.95x
CharIndexing_punctuated_unicodeScalars 3572 3775 +5.7% 0.95x
CharIndexing_punctuatedJapanese_unicodeScalars 2854 3014 +5.6% 0.95x
CharIndexing_tweet_unicodeScalars 31075 32811 +5.6% 0.95x
Improvement (7)
TEST OLD NEW DELTA SPEEDUP
BinaryFloatingPointConversionFromBinaryInteger 40 30 -25.0% 1.33x
BinaryFloatingPointPropertiesBinade 31 25 -19.4% 1.24x
ChainedFilterMap 1408 1246 -11.5% 1.13x
IterateData 1945 1827 -6.1% 1.06x
StringBuilder 770 732 -4.9% 1.05x
StringHasSuffixAscii 2167 2061 -4.9% 1.05x
ObjectiveCBridgeStubFromArrayOfNSString 30859 29353 -4.9% 1.05x (?)
No Changes (394)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 3515 3541 +0.7% 0.99x (?)
AnyHashableWithAClass 82025 81955 -0.1% 1.00x (?)
Array2D 2545 2531 -0.6% 1.01x (?)
ArrayAppend 1071 1065 -0.6% 1.01x (?)
ArrayAppendArrayOfInt 794 794 +0.0% 1.00x
ArrayAppendAscii 13900 13897 -0.0% 1.00x (?)
ArrayAppendFromGeneric 796 785 -1.4% 1.01x (?)
ArrayAppendGenericStructs 1397 1416 +1.4% 0.99x (?)
ArrayAppendLatin1 39924 39591 -0.8% 1.01x
ArrayAppendLazyMap 1339 1337 -0.1% 1.00x (?)
ArrayAppendOptionals 1421 1420 -0.1% 1.00x (?)
ArrayAppendRepeatCol 1336 1340 +0.3% 1.00x (?)
ArrayAppendReserved 800 801 +0.1% 1.00x (?)
ArrayAppendSequence 1116 1115 -0.1% 1.00x (?)
ArrayAppendStrings 6229 6226 -0.0% 1.00x (?)
ArrayAppendToFromGeneric 793 783 -1.3% 1.01x (?)
ArrayAppendToGeneric 788 797 +1.1% 0.99x (?)
ArrayAppendUTF16 40383 39639 -1.8% 1.02x
ArrayInClass 85 85 +0.0% 1.00x
ArrayLiteral 0 0 +0.0% 1.00x
ArrayOfGenericPOD2 150 150 +0.0% 1.00x
ArrayOfGenericRef 4376 4355 -0.5% 1.00x (?)
ArrayOfPOD 183 182 -0.5% 1.01x (?)
ArrayOfRef 4339 4344 +0.1% 1.00x (?)
ArrayPlusEqualArrayOfInt 792 785 -0.9% 1.01x (?)
ArrayPlusEqualFiveElementCollection 6411 6627 +3.4% 0.97x (?)
ArrayPlusEqualSingleElementCollection 4879 5000 +2.5% 0.98x (?)
ArrayPlusEqualThreeElements 2010 2012 +0.1% 1.00x (?)
ArraySubscript 1524 1528 +0.3% 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 101 -2.9% 1.03x (?)
COWTree 5594 5592 -0.0% 1.00x (?)
CSVParsing 749188 750062 +0.1% 1.00x (?)
CSVParsingAlt 777977 779587 +0.2% 1.00x (?)
CSVParsingAltIndices 340335 337104 -0.9% 1.01x (?)
CStringLongAscii 4878 4797 -1.7% 1.02x (?)
CStringLongNonAscii 2230 2315 +3.8% 0.96x (?)
CStringShortAscii 3173 3171 -0.1% 1.00x (?)
Calculator 1095 1075 -1.8% 1.02x
CaptureProp 4070 4106 +0.9% 0.99x (?)
CharIndexing_ascii_unicodeScalars_Backwards 15441 15790 +2.3% 0.98x
CharIndexing_chinese_unicodeScalars_Backwards 11696 11959 +2.2% 0.98x
CharIndexing_japanese_unicodeScalars_Backwards 18489 18904 +2.2% 0.98x
CharIndexing_korean_unicodeScalars_Backwards 14970 15311 +2.3% 0.98x
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 2796 2853 +2.0% 0.98x
CharIndexing_punctuated_unicodeScalars_Backwards 3499 3573 +2.1% 0.98x
CharIndexing_russian_unicodeScalars_Backwards 12863 13156 +2.3% 0.98x
CharIndexing_tweet_unicodeScalars_Backwards 30451 31124 +2.2% 0.98x
CharIndexing_utf16_unicodeScalars 21210 21399 +0.9% 0.99x (?)
CharIndexing_utf16_unicodeScalars_Backwards 21435 21512 +0.4% 1.00x (?)
CharIteration_ascii_unicodeScalars 21233 20327 -4.3% 1.04x
CharIteration_chinese_unicodeScalars 16052 15381 -4.2% 1.04x
CharIteration_japanese_unicodeScalars 25585 24381 -4.7% 1.05x
CharIteration_korean_unicodeScalars 20635 19710 -4.5% 1.05x
CharIteration_punctuatedJapanese_unicodeScalars 3780 3625 -4.1% 1.04x
CharIteration_punctuated_unicodeScalars 4749 4576 -3.6% 1.04x
CharIteration_russian_unicodeScalars 17686 16919 -4.3% 1.05x
CharIteration_tweet_unicodeScalars 42065 40364 -4.0% 1.04x
CharIteration_utf16_unicodeScalars 27893 27668 -0.8% 1.01x (?)
CharacterLiteralsLarge 5728 5727 -0.0% 1.00x (?)
CharacterLiteralsSmall 220 217 -1.4% 1.01x
CharacterPropertiesFetch 4544 4502 -0.9% 1.01x (?)
CharacterPropertiesPrecomputed 1279 1280 +0.1% 1.00x (?)
CharacterPropertiesStashed 1455 1437 -1.2% 1.01x (?)
CharacterPropertiesStashedMemo 1704 1689 -0.9% 1.01x (?)
ClassArrayGetter 15 15 +0.0% 1.00x
Combos 488 480 -1.6% 1.02x (?)
DataAccessBytes 1140 1143 +0.3% 1.00x (?)
DataAppendArray 6087 6220 +2.2% 0.98x (?)
DataAppendBytes 6130 6022 -1.8% 1.02x (?)
DataAppendDataLargeToLarge 68843 68261 -0.8% 1.01x (?)
DataAppendDataLargeToMedium 36582 36415 -0.5% 1.00x (?)
DataAppendDataLargeToSmall 35199 35273 +0.2% 1.00x (?)
DataAppendDataMediumToLarge 38495 38893 +1.0% 0.99x (?)
DataAppendDataMediumToMedium 7538 7491 -0.6% 1.01x (?)
DataAppendDataMediumToSmall 6857 6943 +1.3% 0.99x (?)
DataAppendDataSmallToLarge 37804 37863 +0.2% 1.00x (?)
DataAppendDataSmallToMedium 7165 7180 +0.2% 1.00x (?)
DataAppendDataSmallToSmall 6668 6726 +0.9% 0.99x (?)
DataAppendSequence 19362 19138 -1.2% 1.01x (?)
DataCount 37 38 +2.7% 0.97x (?)
DataMutateBytes 4224 4228 +0.1% 1.00x (?)
DataReplaceLarge 40640 40931 +0.7% 0.99x (?)
DataReplaceLargeBuffer 58052 57933 -0.2% 1.00x (?)
DataReplaceMedium 11004 10996 -0.1% 1.00x (?)
DataReplaceMediumBuffer 12359 12263 -0.8% 1.01x (?)
DataReplaceSmall 8694 8689 -0.1% 1.00x (?)
DataReplaceSmallBuffer 9219 8970 -2.7% 1.03x (?)
DataReset 3173 3186 +0.4% 1.00x (?)
DataSetCount 908 897 -1.2% 1.01x (?)
DataSubscript 243 237 -2.5% 1.03x
DictOfArraysToArrayOfDicts 852 855 +0.4% 1.00x (?)
Dictionary 810 809 -0.1% 1.00x (?)
Dictionary2 918 906 -1.3% 1.01x (?)
Dictionary2OfObjects 2435 2431 -0.2% 1.00x (?)
Dictionary3 334 338 +1.2% 0.99x (?)
Dictionary3OfObjects 866 874 +0.9% 0.99x (?)
Dictionary4 830 832 +0.2% 1.00x (?)
Dictionary4OfObjects 992 986 -0.6% 1.01x (?)
DictionaryBridge 1147 1174 +2.4% 0.98x (?)
DictionaryCopy 121125 122908 +1.5% 0.99x (?)
DictionaryFilter 120424 121550 +0.9% 0.99x (?)
DictionaryGroup 270 271 +0.4% 1.00x (?)
DictionaryGroupOfObjects 2101 2110 +0.4% 1.00x (?)
DictionaryLiteral 2089 2075 -0.7% 1.01x (?)
DictionaryOfObjects 2706 2707 +0.0% 1.00x (?)
DictionaryRemove 5298 5255 -0.8% 1.01x (?)
DictionaryRemoveOfObjects 28293 29368 +3.8% 0.96x
DictionarySubscriptDefaultMutation 333 338 +1.5% 0.99x
DictionarySubscriptDefaultMutationArray 680 681 +0.1% 1.00x (?)
DictionarySubscriptDefaultMutationArrayOfObjects 4208 4330 +2.9% 0.97x (?)
DictionarySubscriptDefaultMutationOfObjects 1948 1951 +0.2% 1.00x (?)
DictionarySwap 1421 1477 +3.9% 0.96x
DictionarySwapAt 6977 6889 -1.3% 1.01x (?)
DictionarySwapAtOfObjects 52929 53418 +0.9% 0.99x (?)
DictionarySwapOfObjects 9423 9448 +0.3% 1.00x (?)
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollection 84 84 +0.0% 1.00x
DropFirstAnyCollectionLazy 61603 61620 +0.0% 1.00x (?)
DropFirstAnySeqCRangeIter 20472 20531 +0.3% 1.00x (?)
DropFirstAnySeqCRangeIterLazy 20473 20542 +0.3% 1.00x (?)
DropFirstAnySeqCntRange 28 28 +0.0% 1.00x
DropFirstAnySeqCntRangeLazy 28 28 +0.0% 1.00x
DropFirstAnySequence 4998 4998 +0.0% 1.00x
DropFirstAnySequenceLazy 4996 4996 +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 2679 2680 +0.0% 1.00x (?)
DropFirstSequenceLazy 2774 2774 +0.0% 1.00x
DropLastAnyCollection 31 31 +0.0% 1.00x
DropLastAnyCollectionLazy 20603 20674 +0.3% 1.00x (?)
DropLastAnySeqCRangeIter 3614 3641 +0.7% 0.99x (?)
DropLastAnySeqCRangeIterLazy 3615 3640 +0.7% 0.99x (?)
DropLastAnySeqCntRange 13 13 +0.0% 1.00x
DropLastAnySeqCntRangeLazy 13 13 +0.0% 1.00x
DropLastAnySequence 5050 5050 +0.0% 1.00x
DropLastAnySequenceLazy 5132 5141 +0.2% 1.00x (?)
DropLastCountableRange 11 11 +0.0% 1.00x
DropLastCountableRangeLazy 12 12 +0.0% 1.00x
DropLastSequence 654 680 +4.0% 0.96x
DropLastSequenceLazy 656 680 +3.7% 0.96x
DropWhileAnyCollection 107 107 +0.0% 1.00x
DropWhileAnyCollectionLazy 125 125 +0.0% 1.00x
DropWhileAnySeqCRangeIter 16146 16096 -0.3% 1.00x (?)
DropWhileAnySeqCRangeIterLazy 90 90 +0.0% 1.00x
DropWhileAnySeqCntRange 36 36 +0.0% 1.00x
DropWhileAnySeqCntRangeLazy 90 90 +0.0% 1.00x
DropWhileAnySequence 4910 4910 +0.0% 1.00x
DropWhileAnySequenceLazy 1856 1856 +0.0% 1.00x
DropWhileArrayLazy 88 88 +0.0% 1.00x
DropWhileCountableRange 35 35 +0.0% 1.00x
DropWhileCountableRangeLazy 105 105 +0.0% 1.00x
DropWhileSequence 1325 1325 +0.0% 1.00x
DropWhileSequenceLazy 88 88 +0.0% 1.00x
EqualStringSubstring 57 56 -1.8% 1.02x
EqualSubstringString 64 65 +1.6% 0.98x (?)
EqualSubstringSubstring 49 49 +0.0% 1.00x
EqualSubstringSubstringGenericEquatable 49 49 +0.0% 1.00x
ErrorHandling 1495 1473 -1.5% 1.01x (?)
ExclusivityGlobal 5 5 +0.0% 1.00x
ExclusivityIndependent 2 2 +0.0% 1.00x
FatCompactMap 203923 204055 +0.1% 1.00x (?)
FilterEvenUsingReduce 1313 1297 -1.2% 1.01x (?)
FilterEvenUsingReduceInto 146 146 +0.0% 1.00x
FloatingPointPrinting_Double_description_small 70413 70467 +0.1% 1.00x (?)
FloatingPointPrinting_Double_description_uniform 125950 127056 +0.9% 0.99x (?)
FloatingPointPrinting_Double_interpolated 162798 163255 +0.3% 1.00x (?)
FloatingPointPrinting_Float80_description_small 83522 83439 -0.1% 1.00x (?)
FloatingPointPrinting_Float80_description_uniform 1691721 1690016 -0.1% 1.00x (?)
FloatingPointPrinting_Float80_interpolated 1727688 1728426 +0.0% 1.00x (?)
FloatingPointPrinting_Float_description_small 24015 24050 +0.1% 1.00x (?)
FloatingPointPrinting_Float_description_uniform 25101 25110 +0.0% 1.00x (?)
FloatingPointPrinting_Float_interpolated 57527 55341 -3.8% 1.04x (?)
FrequenciesUsingReduce 5160 5188 +0.5% 0.99x (?)
FrequenciesUsingReduceInto 1834 1821 -0.7% 1.01x (?)
HashTest 1000 1003 +0.3% 1.00x (?)
Histogram 886 872 -1.6% 1.02x
Integrate 340 342 +0.6% 0.99x
Join 178 180 +1.1% 0.99x (?)
LazilyFilteredArrayContains 35461 35460 -0.0% 1.00x (?)
LazilyFilteredArrays 64796 64896 +0.2% 1.00x (?)
LazilyFilteredRange 3840 3811 -0.8% 1.01x (?)
LessSubstringSubstring 49 49 +0.0% 1.00x
LessSubstringSubstringGenericComparable 49 49 +0.0% 1.00x
LinkedList 7538 7538 +0.0% 1.00x
LuhnAlgoEager 295 295 +0.0% 1.00x
LuhnAlgoLazy 292 296 +1.4% 0.99x (?)
MapReduceAnyCollectionShort 2238 2260 +1.0% 0.99x (?)
MapReduceClass 3021 3009 -0.4% 1.00x (?)
MapReduceClassShort 4572 4552 -0.4% 1.00x (?)
MapReduceLazyCollection 13 13 +0.0% 1.00x
MapReduceLazyCollectionShort 34 34 +0.0% 1.00x
MapReduceLazySequence 86 86 +0.0% 1.00x
MapReduceSequence 434 433 -0.2% 1.00x (?)
MapReduceShort 2001 2020 +0.9% 0.99x (?)
MapReduceShortString 29 30 +3.4% 0.97x (?)
MapReduceString 79 82 +3.8% 0.96x (?)
Memset 215 216 +0.5% 1.00x (?)
MonteCarloE 10440 10225 -2.1% 1.02x (?)
MonteCarloPi 42826 42580 -0.6% 1.01x (?)
NSDictionaryCastToSwift 5457 5544 +1.6% 0.98x (?)
NSError 173 172 -0.6% 1.01x (?)
NSStringConversion 656 635 -3.2% 1.03x (?)
NibbleSort 3683 3682 -0.0% 1.00x (?)
NopDeinit 30161 30157 -0.0% 1.00x (?)
ObjectAllocation 132 132 +0.0% 1.00x
ObjectiveCBridgeFromNSArrayAnyObject 23401 23183 -0.9% 1.01x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 4786 4644 -3.0% 1.03x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 44366 42881 -3.3% 1.03x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 41115 40707 -1.0% 1.01x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 99187 99216 +0.0% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObject 47054 46462 -1.3% 1.01x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 4120 4126 +0.1% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 77519 79458 +2.5% 0.98x (?)
ObjectiveCBridgeFromNSString 1347 1340 -0.5% 1.01x (?)
ObjectiveCBridgeFromNSStringForced 2457 2457 +0.0% 1.00x
ObjectiveCBridgeStubDataAppend 11188 11459 +2.4% 0.98x (?)
ObjectiveCBridgeStubDateMutation 400 400 +0.0% 1.00x
ObjectiveCBridgeStubFromNSDate 6114 6166 +0.9% 0.99x (?)
ObjectiveCBridgeStubFromNSString 955 968 +1.4% 0.99x (?)
ObjectiveCBridgeStubFromNSStringRef 158 155 -1.9% 1.02x (?)
ObjectiveCBridgeStubNSDataAppend 2473 2470 -0.1% 1.00x (?)
ObjectiveCBridgeStubNSDateMutationRef 13217 13019 -1.5% 1.02x (?)
ObjectiveCBridgeStubToArrayOfNSString 37753 37738 -0.0% 1.00x (?)
ObjectiveCBridgeStubToNSDate 14743 15221 +3.2% 0.97x (?)
ObjectiveCBridgeStubToNSDateRef 3433 3373 -1.7% 1.02x (?)
ObjectiveCBridgeStubToNSString 2376 2375 -0.0% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 115 115 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 276316 278282 +0.7% 0.99x (?)
ObjectiveCBridgeStubURLAppendPathRef 280657 280444 -0.1% 1.00x (?)
ObjectiveCBridgeToNSArray 13358 13558 +1.5% 0.99x (?)
ObjectiveCBridgeToNSDictionary 24281 25244 +4.0% 0.96x (?)
ObjectiveCBridgeToNSSet 15645 15566 -0.5% 1.01x (?)
ObjectiveCBridgeToNSString 481 485 +0.8% 0.99x
ObserverClosure 2190 2184 -0.3% 1.00x (?)
ObserverForwarderStruct 1252 1248 -0.3% 1.00x (?)
ObserverPartiallyAppliedMethod 3790 3768 -0.6% 1.01x (?)
ObserverUnappliedMethod 2610 2592 -0.7% 1.01x
OpenClose 260 263 +1.2% 0.99x
PartialApplyDynamicType 0 0 +0.0% 1.00x
Phonebook 4960 4960 +0.0% 1.00x
PointerArithmetics 31495 31495 +0.0% 1.00x
PolymorphicCalls 25 25 +0.0% 1.00x
PopFrontArray 1863 1803 -3.2% 1.03x (?)
PopFrontArrayGeneric 1810 1816 +0.3% 1.00x (?)
PopFrontUnsafePointer 8659 8658 -0.0% 1.00x (?)
PrefixAnyCollection 83 83 +0.0% 1.00x
PrefixAnyCollectionLazy 61429 61858 +0.7% 0.99x (?)
PrefixAnySeqCRangeIter 15998 15997 -0.0% 1.00x (?)
PrefixAnySeqCRangeIterLazy 15918 15993 +0.5% 1.00x (?)
PrefixAnySeqCntRange 28 28 +0.0% 1.00x
PrefixAnySeqCntRangeLazy 28 28 +0.0% 1.00x
PrefixAnySequence 4381 4384 +0.1% 1.00x (?)
PrefixAnySequenceLazy 4382 4381 -0.0% 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 1325 1325 +0.0% 1.00x
PrefixSequenceLazy 1413 1413 +0.0% 1.00x
PrefixWhileAnyCollection 154 154 +0.0% 1.00x
PrefixWhileAnyCollectionLazy 90 90 +0.0% 1.00x
PrefixWhileAnySeqCRangeIter 8936 8970 +0.4% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 24 24 +0.0% 1.00x
PrefixWhileAnySeqCntRange 60 60 +0.0% 1.00x
PrefixWhileAnySeqCntRangeLazy 24 24 +0.0% 1.00x
PrefixWhileAnySequence 10220 10234 +0.1% 1.00x (?)
PrefixWhileAnySequenceLazy 1392 1392 +0.0% 1.00x
PrefixWhileArray 88 88 +0.0% 1.00x
PrefixWhileArrayLazy 70 70 +0.0% 1.00x
PrefixWhileCountableRange 35 35 +0.0% 1.00x
PrefixWhileCountableRangeLazy 35 35 +0.0% 1.00x
PrefixWhileSequence 361 379 +5.0% 0.95x
PrefixWhileSequenceLazy 52 52 +0.0% 1.00x
Prims 1165 1158 -0.6% 1.01x (?)
PrimsSplit 1162 1159 -0.3% 1.00x (?)
QueueConcrete 1129 1131 +0.2% 1.00x (?)
QueueGeneric 1134 1138 +0.4% 1.00x (?)
RC4 168 170 +1.2% 0.99x
RGBHistogram 3906 3918 +0.3% 1.00x (?)
RGBHistogramOfObjects 25397 25392 -0.0% 1.00x (?)
RangeAssignment 351 365 +4.0% 0.96x
RangeIterationSigned 200 200 +0.0% 1.00x
RangeIterationSigned64 200 200 +0.0% 1.00x
RangeIterationUnsigned 200 200 +0.0% 1.00x
RangeReplaceableCollectionPlusDefault 979 985 +0.6% 0.99x (?)
RecursiveOwnedParameter 115 115 +0.0% 1.00x
RemoveWhereFilterInts 45 45 +0.0% 1.00x
RemoveWhereFilterString 356 356 +0.0% 1.00x
RemoveWhereFilterStrings 432 432 +0.0% 1.00x
RemoveWhereMoveStrings 701 702 +0.1% 1.00x (?)
RemoveWhereQuadraticInts 1288 1287 -0.1% 1.00x (?)
RemoveWhereQuadraticString 487 488 +0.2% 1.00x (?)
RemoveWhereQuadraticStrings 2752 2751 -0.0% 1.00x (?)
RemoveWhereSwapInts 19 19 +0.0% 1.00x
RemoveWhereSwapStrings 849 850 +0.1% 1.00x (?)
ReversedArray 57 57 +0.0% 1.00x
ReversedBidirectional 15705 15711 +0.0% 1.00x (?)
ReversedDictionary 337 338 +0.3% 1.00x (?)
RomanNumbers 135508 134190 -1.0% 1.01x (?)
SequenceAlgosAnySequence 11074 11204 +1.2% 0.99x
SequenceAlgosArray 1575 1578 +0.2% 1.00x (?)
SequenceAlgosContiguousArray 1576 1564 -0.8% 1.01x (?)
SequenceAlgosList 1350 1354 +0.3% 1.00x (?)
SequenceAlgosRange 2576 2577 +0.0% 1.00x (?)
SequenceAlgosUnfoldSequence 1079 1079 +0.0% 1.00x
SetExclusiveOr 6426 6581 +2.4% 0.98x (?)
SetExclusiveOr_OfObjects 13541 13514 -0.2% 1.00x (?)
SetIntersect 989 984 -0.5% 1.01x (?)
SetIntersect_OfObjects 2259 2292 +1.5% 0.99x (?)
SetIsSubsetOf 381 379 -0.5% 1.01x (?)
SetIsSubsetOf_OfObjects 535 528 -1.3% 1.01x
SetUnion 5395 5560 +3.1% 0.97x (?)
SetUnion_OfObjects 12022 11874 -1.2% 1.01x (?)
SevenBoom 871 875 +0.5% 1.00x (?)
Sim2DArray 417 417 +0.0% 1.00x
SortLargeExistentials 6171 6108 -1.0% 1.01x (?)
SortLettersInPlace 1060 1060 +0.0% 1.00x
SortSortedStrings 1003 1001 -0.2% 1.00x (?)
SortStrings 2007 2021 +0.7% 0.99x
SortStringsUnicode 2488 2490 +0.1% 1.00x (?)
StackPromo 22675 22700 +0.1% 1.00x (?)
StaticArray 9 9 +0.0% 1.00x
StrComplexWalk 1782 1783 +0.1% 1.00x (?)
StrToInt 2811 2951 +5.0% 0.95x
StringAdder 705 706 +0.1% 1.00x (?)
StringBuilderLong 1219 1219 +0.0% 1.00x
StringBuilderWithLongSubstring 1405 1398 -0.5% 1.01x (?)
StringComparison_abnormal 787 788 +0.1% 1.00x (?)
StringComparison_ascii 1241 1241 +0.0% 1.00x
StringComparison_emoji 811 817 +0.7% 0.99x (?)
StringComparison_fastPrenormal 768 776 +1.0% 0.99x
StringComparison_latin1 608 614 +1.0% 0.99x (?)
StringComparison_longSharedPrefix 923 924 +0.1% 1.00x (?)
StringComparison_nonBMPSlowestPrenormal 1608 1588 -1.2% 1.01x
StringComparison_slowerPrenormal 1708 1691 -1.0% 1.01x (?)
StringComparison_zalgo 124737 124315 -0.3% 1.00x (?)
StringEdits 177291 178090 +0.5% 1.00x (?)
StringEnumRawValueInitialization 1100 1098 -0.2% 1.00x (?)
StringEqualPointerComparison 286 299 +4.5% 0.96x
StringFromLongWholeSubstring 21 20 -4.8% 1.05x
StringFromLongWholeSubstringGeneric 21 21 +0.0% 1.00x
StringHasPrefixAscii 2004 1947 -2.8% 1.03x
StringHasPrefixUnicode 108879 108837 -0.0% 1.00x (?)
StringHasSuffixUnicode 111593 111569 -0.0% 1.00x (?)
StringInterpolation 8224 8286 +0.8% 0.99x (?)
StringInterpolationManySmallSegments 14895 15173 +1.9% 0.98x (?)
StringInterpolationSmall 6371 6319 -0.8% 1.01x (?)
StringMatch 11577 11774 +1.7% 0.98x
StringRemoveDupes 818 816 -0.2% 1.00x (?)
StringUTF16Builder 2704 2710 +0.2% 1.00x (?)
StringUTF16SubstringBuilder 5961 5846 -1.9% 1.02x (?)
StringWalk 1414 1422 +0.6% 0.99x (?)
StringWithCString 43191 43176 -0.0% 1.00x (?)
StringWordBuilder 2342 2347 +0.2% 1.00x (?)
StringWordBuilderReservingCapacity 1846 1872 +1.4% 0.99x (?)
SubstringComparable 27 27 +0.0% 1.00x
SubstringEqualString 779 774 -0.6% 1.01x (?)
SubstringEquatable 1414 1407 -0.5% 1.00x (?)
SubstringFromLongString 10 10 +0.0% 1.00x
SubstringFromLongStringGeneric 75 74 -1.3% 1.01x
SuffixAnyCollection 31 31 +0.0% 1.00x
SuffixAnyCollectionLazy 20488 20527 +0.2% 1.00x (?)
SuffixAnySeqCRangeIter 3819 3811 -0.2% 1.00x (?)
SuffixAnySeqCRangeIterLazy 3824 3834 +0.3% 1.00x (?)
SuffixAnySeqCntRange 20 20 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 21 20 -4.8% 1.05x
SuffixAnySequence 5015 5008 -0.1% 1.00x (?)
SuffixAnySequenceLazy 5128 5083 -0.9% 1.01x (?)
SuffixCountableRange 11 11 +0.0% 1.00x
SuffixCountableRangeLazy 11 11 +0.0% 1.00x
SuffixSequence 3678 3693 +0.4% 1.00x (?)
SuffixSequenceLazy 3683 3692 +0.2% 1.00x (?)
SumUsingReduce 101 101 +0.0% 1.00x
SumUsingReduceInto 97 97 +0.0% 1.00x
SuperChars 14610 14511 -0.7% 1.01x
TwoSum 1693 1712 +1.1% 0.99x (?)
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode 291 295 +1.4% 0.99x
Walsh 415 405 -2.4% 1.02x
WordCountHistogramASCII 8173 7997 -2.2% 1.02x
WordCountHistogramUTF16 14180 14012 -1.2% 1.01x (?)
WordCountUniqueASCII 2609 2605 -0.2% 1.00x (?)
WordCountUniqueUTF16 7658 7615 -0.6% 1.01x (?)
WordSplitASCII 12305 12235 -0.6% 1.01x (?)
WordSplitUTF16 14223 13697 -3.7% 1.04x (?)
XorLoop 394 395 +0.3% 1.00x (?)

Unoptimized (Onone)

Regression (8)
TEST OLD NEW DELTA SPEEDUP
CharIndexing_chinese_unicodeScalars_Backwards 307788 340812 +10.7% 0.90x (?)
DataSetCount 570 626 +9.8% 0.91x (?)
DataAppendArray 5310 5768 +8.6% 0.92x (?)
CharIteration_ascii_unicodeScalars_Backwards 283072 303674 +7.3% 0.93x (?)
CharIndexing_punctuated_unicodeScalars 79066 84624 +7.0% 0.93x (?)
ObjectiveCBridgeStubFromArrayOfNSString 30536 32678 +7.0% 0.93x (?)
CharIteration_japanese_unicodeScalars_Backwards 338013 359979 +6.5% 0.94x (?)
DictionarySubscriptDefaultMutationOfObjects 5434 5744 +5.7% 0.95x (?)
Improvement (5)
TEST OLD NEW DELTA SPEEDUP
CharIndexing_punctuated_unicodeScalars_Backwards 97209 87258 -10.2% 1.11x (?)
CharIndexing_ascii_unicodeScalars_Backwards 437618 402079 -8.1% 1.09x (?)
DataAppendDataSmallToMedium 6257 5896 -5.8% 1.06x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 47861 45238 -5.5% 1.06x (?)
DataCopyBytes 2659 2519 -5.3% 1.06x
No Changes (412)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 4925 4910 -0.3% 1.00x (?)
AnyHashableWithAClass 99028 98895 -0.1% 1.00x (?)
Array2D 639191 638873 -0.0% 1.00x (?)
ArrayAppend 4554 4555 +0.0% 1.00x (?)
ArrayAppendArrayOfInt 865 864 -0.1% 1.00x (?)
ArrayAppendAscii 39307 39502 +0.5% 1.00x
ArrayAppendFromGeneric 870 867 -0.3% 1.00x (?)
ArrayAppendGenericStructs 1501 1504 +0.2% 1.00x (?)
ArrayAppendLatin1 65074 65313 +0.4% 1.00x
ArrayAppendLazyMap 169309 169423 +0.1% 1.00x (?)
ArrayAppendOptionals 1502 1486 -1.1% 1.01x (?)
ArrayAppendRepeatCol 175398 175057 -0.2% 1.00x (?)
ArrayAppendReserved 4281 4280 -0.0% 1.00x (?)
ArrayAppendSequence 104840 105062 +0.2% 1.00x
ArrayAppendStrings 6367 6381 +0.2% 1.00x (?)
ArrayAppendToFromGeneric 869 868 -0.1% 1.00x (?)
ArrayAppendToGeneric 875 872 -0.3% 1.00x (?)
ArrayAppendUTF16 65475 65338 -0.2% 1.00x (?)
ArrayInClass 6307 6294 -0.2% 1.00x (?)
ArrayLiteral 1862 1875 +0.7% 0.99x (?)
ArrayOfGenericPOD2 1196 1186 -0.8% 1.01x
ArrayOfGenericRef 10744 10870 +1.2% 0.99x
ArrayOfPOD 850 851 +0.1% 1.00x (?)
ArrayOfRef 9861 9859 -0.0% 1.00x (?)
ArrayPlusEqualArrayOfInt 864 866 +0.2% 1.00x (?)
ArrayPlusEqualFiveElementCollection 244994 240218 -1.9% 1.02x (?)
ArrayPlusEqualSingleElementCollection 236919 236877 -0.0% 1.00x (?)
ArrayPlusEqualThreeElements 9385 9397 +0.1% 1.00x (?)
ArraySubscript 107459 108349 +0.8% 0.99x
ArrayValueProp 3669 3665 -0.1% 1.00x (?)
ArrayValueProp2 15320 15388 +0.4% 1.00x (?)
ArrayValueProp3 4176 4211 +0.8% 0.99x (?)
ArrayValueProp4 4094 4106 +0.3% 1.00x (?)
BinaryFloatingPointConversionFromBinaryInteger 5543 5577 +0.6% 0.99x (?)
BinaryFloatingPointPropertiesBinade 86 85 -1.2% 1.01x
BinaryFloatingPointPropertiesNextUp 125 125 +0.0% 1.00x
BinaryFloatingPointPropertiesUlp 125 125 +0.0% 1.00x
BitCount 8826 8827 +0.0% 1.00x (?)
ByteSwap 9687 9694 +0.1% 1.00x (?)
COWTree 13067 12684 -2.9% 1.03x (?)
CSVParsing 2551962 2580860 +1.1% 0.99x (?)
CSVParsingAlt 1436901 1452878 +1.1% 0.99x (?)
CSVParsingAltIndices 2452709 2475371 +0.9% 0.99x (?)
CStringLongAscii 5373 5429 +1.0% 0.99x
CStringLongNonAscii 2590 2579 -0.4% 1.00x (?)
CStringShortAscii 6223 6245 +0.4% 1.00x (?)
Calculator 2056 2045 -0.5% 1.01x (?)
CaptureProp 304444 305431 +0.3% 1.00x (?)
ChainedFilterMap 250249 249964 -0.1% 1.00x (?)
CharIndexing_ascii_unicodeScalars 375990 375954 -0.0% 1.00x (?)
CharIndexing_chinese_unicodeScalars 270475 271605 +0.4% 1.00x (?)
CharIndexing_japanese_unicodeScalars 427061 433363 +1.5% 0.99x (?)
CharIndexing_japanese_unicodeScalars_Backwards 500436 478585 -4.4% 1.05x (?)
CharIndexing_korean_unicodeScalars 355394 346251 -2.6% 1.03x (?)
CharIndexing_korean_unicodeScalars_Backwards 387166 390830 +0.9% 0.99x (?)
CharIndexing_punctuatedJapanese_unicodeScalars 64285 63732 -0.9% 1.01x (?)
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 69788 71095 +1.9% 0.98x (?)
CharIndexing_russian_unicodeScalars 312726 313737 +0.3% 1.00x (?)
CharIndexing_russian_unicodeScalars_Backwards 341783 338663 -0.9% 1.01x (?)
CharIndexing_tweet_unicodeScalars 716316 723165 +1.0% 0.99x (?)
CharIndexing_tweet_unicodeScalars_Backwards 806599 800095 -0.8% 1.01x (?)
CharIndexing_utf16_unicodeScalars 305974 305560 -0.1% 1.00x (?)
CharIndexing_utf16_unicodeScalars_Backwards 339330 339009 -0.1% 1.00x (?)
CharIteration_ascii_unicodeScalars 148066 148414 +0.2% 1.00x (?)
CharIteration_chinese_unicodeScalars 112074 112223 +0.1% 1.00x (?)
CharIteration_chinese_unicodeScalars_Backwards 212919 214076 +0.5% 0.99x (?)
CharIteration_japanese_unicodeScalars 177353 177213 -0.1% 1.00x (?)
CharIteration_korean_unicodeScalars 143584 143736 +0.1% 1.00x (?)
CharIteration_korean_unicodeScalars_Backwards 273588 278685 +1.9% 0.98x (?)
CharIteration_punctuatedJapanese_unicodeScalars 26300 26347 +0.2% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 49168 49076 -0.2% 1.00x (?)
CharIteration_punctuated_unicodeScalars 33021 33092 +0.2% 1.00x (?)
CharIteration_punctuated_unicodeScalars_Backwards 61900 61940 +0.1% 1.00x (?)
CharIteration_russian_unicodeScalars 123385 123727 +0.3% 1.00x (?)
CharIteration_russian_unicodeScalars_Backwards 235317 242463 +3.0% 0.97x (?)
CharIteration_tweet_unicodeScalars 291851 292941 +0.4% 1.00x
CharIteration_tweet_unicodeScalars_Backwards 557575 556700 -0.2% 1.00x (?)
CharIteration_utf16_unicodeScalars 126759 126308 -0.4% 1.00x (?)
CharIteration_utf16_unicodeScalars_Backwards 242228 241927 -0.1% 1.00x (?)
CharacterLiteralsLarge 5695 5695 +0.0% 1.00x
CharacterLiteralsSmall 686 687 +0.1% 1.00x
CharacterPropertiesFetch 5425 5428 +0.1% 1.00x (?)
CharacterPropertiesPrecomputed 3668 3703 +1.0% 0.99x (?)
CharacterPropertiesStashed 2304 2324 +0.9% 0.99x (?)
CharacterPropertiesStashedMemo 4585 4568 -0.4% 1.00x (?)
Chars 35929 35957 +0.1% 1.00x (?)
ClassArrayGetter 986 984 -0.2% 1.00x (?)
Combos 2278 2302 +1.1% 0.99x (?)
DataAccessBytes 2354 2338 -0.7% 1.01x (?)
DataAppendBytes 5110 5107 -0.1% 1.00x (?)
DataAppendDataLargeToLarge 67935 67326 -0.9% 1.01x (?)
DataAppendDataLargeToMedium 35409 35011 -1.1% 1.01x (?)
DataAppendDataLargeToSmall 34360 34584 +0.7% 0.99x (?)
DataAppendDataMediumToLarge 38181 37392 -2.1% 1.02x (?)
DataAppendDataMediumToMedium 6805 6918 +1.7% 0.98x (?)
DataAppendDataMediumToSmall 6020 5840 -3.0% 1.03x (?)
DataAppendDataSmallToLarge 37270 36833 -1.2% 1.01x (?)
DataAppendDataSmallToSmall 6301 6187 -1.8% 1.02x (?)
DataAppendSequence 1834833 1831569 -0.2% 1.00x (?)
DataCount 223 223 +0.0% 1.00x
DataMutateBytes 5206 5171 -0.7% 1.01x (?)
DataReplaceLarge 40016 39918 -0.2% 1.00x (?)
DataReplaceLargeBuffer 57608 57192 -0.7% 1.01x (?)
DataReplaceMedium 9030 9218 +2.1% 0.98x (?)
DataReplaceMediumBuffer 12398 12778 +3.1% 0.97x (?)
DataReplaceSmall 6831 7005 +2.5% 0.98x (?)
DataReplaceSmallBuffer 8607 8841 +2.7% 0.97x (?)
DataReset 2888 2886 -0.1% 1.00x (?)
DataSubscript 443 444 +0.2% 1.00x
DictOfArraysToArrayOfDicts 3465 3503 +1.1% 0.99x (?)
Dictionary 2402 2441 +1.6% 0.98x
Dictionary2 1522 1514 -0.5% 1.01x (?)
Dictionary2OfObjects 4498 4467 -0.7% 1.01x (?)
Dictionary3 908 910 +0.2% 1.00x
Dictionary3OfObjects 2182 2202 +0.9% 0.99x (?)
Dictionary4 1543 1554 +0.7% 0.99x
Dictionary4OfObjects 2243 2264 +0.9% 0.99x (?)
DictionaryBridge 1295 1327 +2.5% 0.98x (?)
DictionaryCopy 311763 311945 +0.1% 1.00x (?)
DictionaryFilter 324421 325300 +0.3% 1.00x (?)
DictionaryGroup 4424 4448 +0.5% 0.99x
DictionaryGroupOfObjects 7439 7523 +1.1% 0.99x (?)
DictionaryLiteral 8902 8945 +0.5% 1.00x (?)
DictionaryOfObjects 6187 6230 +0.7% 0.99x (?)
DictionaryRemove 17650 17627 -0.1% 1.00x (?)
DictionaryRemoveOfObjects 55310 53939 -2.5% 1.03x (?)
DictionarySubscriptDefaultMutation 2034 2030 -0.2% 1.00x (?)
DictionarySubscriptDefaultMutationArray 2285 2291 +0.3% 1.00x (?)
DictionarySubscriptDefaultMutationArrayOfObjects 9520 9563 +0.5% 1.00x (?)
DictionarySwap 5262 5203 -1.1% 1.01x (?)
DictionarySwapAt 35329 35349 +0.1% 1.00x (?)
DictionarySwapAtOfObjects 114305 114197 -0.1% 1.00x (?)
DictionarySwapOfObjects 19562 20078 +2.6% 0.97x
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollection 14515 14532 +0.1% 1.00x (?)
DropFirstAnyCollectionLazy 99375 101313 +2.0% 0.98x (?)
DropFirstAnySeqCRangeIter 22851 22847 -0.0% 1.00x (?)
DropFirstAnySeqCRangeIterLazy 22817 22847 +0.1% 1.00x (?)
DropFirstAnySeqCntRange 14548 14550 +0.0% 1.00x (?)
DropFirstAnySeqCntRangeLazy 14517 14553 +0.2% 1.00x
DropFirstAnySequence 11934 11906 -0.2% 1.00x
DropFirstAnySequenceLazy 11938 11915 -0.2% 1.00x (?)
DropFirstArray 3323 3344 +0.6% 0.99x (?)
DropFirstArrayLazy 28617 28746 +0.5% 1.00x (?)
DropFirstCountableRange 311 310 -0.3% 1.00x (?)
DropFirstCountableRangeLazy 32816 32703 -0.3% 1.00x (?)
DropFirstSequence 11536 11658 +1.1% 0.99x
DropFirstSequenceLazy 11594 11525 -0.6% 1.01x (?)
DropLastAnyCollection 4852 4876 +0.5% 1.00x (?)
DropLastAnyCollectionLazy 32682 32636 -0.1% 1.00x (?)
DropLastAnySeqCRangeIter 40170 40338 +0.4% 1.00x (?)
DropLastAnySeqCRangeIterLazy 39890 40052 +0.4% 1.00x
DropLastAnySeqCntRange 4853 4877 +0.5% 1.00x (?)
DropLastAnySeqCntRangeLazy 4840 4882 +0.9% 0.99x (?)
DropLastAnySequence 29837 29535 -1.0% 1.01x (?)
DropLastAnySequenceLazy 29956 29847 -0.4% 1.00x (?)
DropLastCountableRange 108 108 +0.0% 1.00x
DropLastCountableRangeLazy 10945 10909 -0.3% 1.00x (?)
DropLastSequence 29839 29635 -0.7% 1.01x
DropLastSequenceLazy 29765 29736 -0.1% 1.00x (?)
DropWhileAnyCollection 18722 18815 +0.5% 1.00x
DropWhileAnyCollectionLazy 21638 21620 -0.1% 1.00x (?)
DropWhileAnySeqCRangeIter 24547 24638 +0.4% 1.00x
DropWhileAnySeqCRangeIterLazy 21507 21595 +0.4% 1.00x (?)
DropWhileAnySeqCntRange 18816 18839 +0.1% 1.00x (?)
DropWhileAnySeqCntRangeLazy 21497 21530 +0.2% 1.00x (?)
DropWhileAnySequence 12665 12722 +0.5% 1.00x
DropWhileAnySequenceLazy 11278 11328 +0.4% 1.00x (?)
DropWhileArrayLazy 14071 14092 +0.1% 1.00x
DropWhileCountableRange 4539 4574 +0.8% 0.99x
DropWhileCountableRangeLazy 21145 21214 +0.3% 1.00x (?)
DropWhileSequence 12208 12290 +0.7% 0.99x
DropWhileSequenceLazy 10989 11004 +0.1% 1.00x
EqualStringSubstring 72 72 +0.0% 1.00x
EqualSubstringString 72 72 +0.0% 1.00x
EqualSubstringSubstring 73 73 +0.0% 1.00x
EqualSubstringSubstringGenericEquatable 57 56 -1.8% 1.02x
ErrorHandling 6532 6406 -1.9% 1.02x (?)
ExclusivityGlobal 191 191 +0.0% 1.00x
ExclusivityIndependent 72 71 -1.4% 1.01x (?)
FatCompactMap 354551 355542 +0.3% 1.00x (?)
FilterEvenUsingReduce 3585 3590 +0.1% 1.00x (?)
FilterEvenUsingReduceInto 1864 1864 +0.0% 1.00x
FloatingPointPrinting_Double_description_small 72840 72736 -0.1% 1.00x (?)
FloatingPointPrinting_Double_description_uniform 146010 144193 -1.2% 1.01x (?)
FloatingPointPrinting_Double_interpolated 226221 234213 +3.5% 0.97x (?)
FloatingPointPrinting_Float80_description_small 86316 86215 -0.1% 1.00x (?)
FloatingPointPrinting_Float80_description_uniform 1741726 1737398 -0.2% 1.00x (?)
FloatingPointPrinting_Float80_interpolated 1821815 1832569 +0.6% 0.99x (?)
FloatingPointPrinting_Float_description_small 26305 26318 +0.0% 1.00x (?)
FloatingPointPrinting_Float_description_uniform 37341 37350 +0.0% 1.00x (?)
FloatingPointPrinting_Float_interpolated 110995 110424 -0.5% 1.01x (?)
FrequenciesUsingReduce 10978 11472 +4.5% 0.96x (?)
FrequenciesUsingReduceInto 3363 3342 -0.6% 1.01x (?)
Hanoi 20368 20255 -0.6% 1.01x (?)
HashTest 20880 20747 -0.6% 1.01x (?)
Histogram 6446 6433 -0.2% 1.00x (?)
Integrate 460 457 -0.7% 1.01x
IterateData 5467 5456 -0.2% 1.00x (?)
Join 765 764 -0.1% 1.00x (?)
LazilyFilteredArrayContains 828772 820162 -1.0% 1.01x (?)
LazilyFilteredArrays 1417216 1419182 +0.1% 1.00x (?)
LazilyFilteredRange 503317 508267 +1.0% 0.99x (?)
LessSubstringSubstring 73 73 +0.0% 1.00x
LessSubstringSubstringGenericComparable 56 56 +0.0% 1.00x
LinkedList 32109 32169 +0.2% 1.00x
LuhnAlgoEager 5318 5176 -2.7% 1.03x (?)
LuhnAlgoLazy 5331 5158 -3.2% 1.03x (?)
MapReduce 25972 26064 +0.4% 1.00x
MapReduceAnyCollection 25779 25733 -0.2% 1.00x (?)
MapReduceAnyCollectionShort 36949 37529 +1.6% 0.98x (?)
MapReduceClass 29425 29460 +0.1% 1.00x (?)
MapReduceClassShort 40754 40381 -0.9% 1.01x (?)
MapReduceLazyCollection 22639 22589 -0.2% 1.00x (?)
MapReduceLazyCollectionShort 34285 33092 -3.5% 1.04x (?)
MapReduceLazySequence 19021 19014 -0.0% 1.00x (?)
MapReduceSequence 29326 29235 -0.3% 1.00x (?)
MapReduceShort 36893 36601 -0.8% 1.01x (?)
MapReduceShortString 244 236 -3.3% 1.03x (?)
MapReduceString 1751 1743 -0.5% 1.00x (?)
Memset 44110 44139 +0.1% 1.00x (?)
MonteCarloE 1148288 1153216 +0.4% 1.00x (?)
MonteCarloPi 5190552 5227546 +0.7% 0.99x
NSDictionaryCastToSwift 6499 6635 +2.1% 0.98x (?)
NSError 619 615 -0.6% 1.01x (?)
NSStringConversion 708 705 -0.4% 1.00x
NibbleSort 485327 484455 -0.2% 1.00x (?)
NopDeinit 198676 197885 -0.4% 1.00x (?)
ObjectAllocation 1265 1261 -0.3% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObject 27328 26990 -1.2% 1.01x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 8401 8659 +3.1% 0.97x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 43724 44271 +1.3% 0.99x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 102103 102957 +0.8% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObject 50213 50030 -0.4% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 5664 5441 -3.9% 1.04x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 82734 82839 +0.1% 1.00x (?)
ObjectiveCBridgeFromNSString 2716 2703 -0.5% 1.00x (?)
ObjectiveCBridgeFromNSStringForced 2556 2578 +0.9% 0.99x (?)
ObjectiveCBridgeStubDataAppend 5719 5721 +0.0% 1.00x (?)
ObjectiveCBridgeStubDateMutation 745 716 -3.9% 1.04x
ObjectiveCBridgeStubFromNSDate 6884 6956 +1.0% 0.99x (?)
ObjectiveCBridgeStubFromNSString 998 1003 +0.5% 1.00x (?)
ObjectiveCBridgeStubFromNSStringRef 194 193 -0.5% 1.01x (?)
ObjectiveCBridgeStubNSDataAppend 2969 2983 +0.5% 1.00x (?)
ObjectiveCBridgeStubNSDateMutationRef 16291 16368 +0.5% 1.00x (?)
ObjectiveCBridgeStubToArrayOfNSString 37619 38460 +2.2% 0.98x (?)
ObjectiveCBridgeStubToNSDate 16276 15573 -4.3% 1.05x (?)
ObjectiveCBridgeStubToNSDateRef 3477 3487 +0.3% 1.00x (?)
ObjectiveCBridgeStubToNSString 2416 2417 +0.0% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 153 153 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 299674 288312 -3.8% 1.04x (?)
ObjectiveCBridgeStubURLAppendPathRef 291810 307049 +5.2% 0.95x (?)
ObjectiveCBridgeToNSArray 14129 14261 +0.9% 0.99x (?)
ObjectiveCBridgeToNSDictionary 25701 25747 +0.2% 1.00x (?)
ObjectiveCBridgeToNSSet 18149 17482 -3.7% 1.04x (?)
ObjectiveCBridgeToNSString 522 522 +0.0% 1.00x
ObserverClosure 6437 6434 -0.0% 1.00x (?)
ObserverForwarderStruct 4279 4306 +0.6% 0.99x (?)
ObserverPartiallyAppliedMethod 7996 8021 +0.3% 1.00x (?)
ObserverUnappliedMethod 8199 8168 -0.4% 1.00x (?)
OpenClose 889 889 +0.0% 1.00x
PartialApplyDynamicType 40034 42083 +5.1% 0.95x
Phonebook 18773 18629 -0.8% 1.01x
PointerArithmetics 123113 123099 -0.0% 1.00x (?)
PolymorphicCalls 2348 2343 -0.2% 1.00x (?)
PopFrontArray 4640 4647 +0.2% 1.00x (?)
PopFrontArrayGeneric 5413 5424 +0.2% 1.00x (?)
PopFrontUnsafePointer 10602 10618 +0.2% 1.00x (?)
PrefixAnyCollection 14532 14518 -0.1% 1.00x (?)
PrefixAnyCollectionLazy 97873 97996 +0.1% 1.00x (?)
PrefixAnySeqCRangeIter 18116 18192 +0.4% 1.00x (?)
PrefixAnySeqCRangeIterLazy 18425 18473 +0.3% 1.00x (?)
PrefixAnySeqCntRange 14558 14536 -0.2% 1.00x (?)
PrefixAnySeqCntRangeLazy 14335 14489 +1.1% 0.99x (?)
PrefixAnySequence 9782 9748 -0.3% 1.00x
PrefixAnySequenceLazy 9790 9717 -0.7% 1.01x (?)
PrefixArray 3311 3322 +0.3% 1.00x (?)
PrefixArrayLazy 28593 28632 +0.1% 1.00x (?)
PrefixCountableRange 312 311 -0.3% 1.00x
PrefixCountableRangeLazy 32804 32668 -0.4% 1.00x (?)
PrefixSequence 9353 9372 +0.2% 1.00x
PrefixSequenceLazy 9484 9431 -0.6% 1.01x (?)
PrefixWhileAnyCollection 27229 27256 +0.1% 1.00x (?)
PrefixWhileAnyCollectionLazy 17874 17778 -0.5% 1.01x (?)
PrefixWhileAnySeqCRangeIter 33538 33598 +0.2% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 17763 17875 +0.6% 0.99x (?)
PrefixWhileAnySeqCntRange 27157 27184 +0.1% 1.00x (?)
PrefixWhileAnySeqCntRangeLazy 17679 17702 +0.1% 1.00x (?)
PrefixWhileAnySequence 25831 25798 -0.1% 1.00x (?)
PrefixWhileAnySequenceLazy 10127 10115 -0.1% 1.00x (?)
PrefixWhileArray 10423 10442 +0.2% 1.00x (?)
PrefixWhileArrayLazy 12277 12275 -0.0% 1.00x (?)
PrefixWhileCountableRange 12875 12856 -0.1% 1.00x (?)
PrefixWhileCountableRangeLazy 17490 17515 +0.1% 1.00x (?)
PrefixWhileSequence 25485 25458 -0.1% 1.00x (?)
PrefixWhileSequenceLazy 9991 10058 +0.7% 0.99x (?)
Prims 9715 10029 +3.2% 0.97x (?)
PrimsSplit 10009 9881 -1.3% 1.01x (?)
QueueConcrete 14312 14337 +0.2% 1.00x (?)
QueueGeneric 18864 18736 -0.7% 1.01x
RC4 16547 16487 -0.4% 1.00x (?)
RGBHistogram 24894 24763 -0.5% 1.01x (?)
RGBHistogramOfObjects 78186 76361 -2.3% 1.02x (?)
RangeAssignment 2651 2647 -0.2% 1.00x (?)
RangeIterationSigned 14815 14557 -1.7% 1.02x
RangeIterationSigned64 38878 38999 +0.3% 1.00x (?)
RangeIterationUnsigned 35493 35381 -0.3% 1.00x (?)
RangeReplaceableCollectionPlusDefault 10997 11118 +1.1% 0.99x (?)
RecursiveOwnedParameter 5785 5766 -0.3% 1.00x
RemoveWhereFilterInts 1942 1935 -0.4% 1.00x (?)
RemoveWhereFilterString 1521 1529 +0.5% 0.99x (?)
RemoveWhereFilterStrings 2457 2454 -0.1% 1.00x (?)
RemoveWhereMoveInts 3399 3394 -0.1% 1.00x (?)
RemoveWhereMoveStrings 3905 3904 -0.0% 1.00x (?)
RemoveWhereQuadraticInts 7901 7873 -0.4% 1.00x (?)
RemoveWhereQuadraticString 2244 2244 +0.0% 1.00x
RemoveWhereQuadraticStrings 9507 9520 +0.1% 1.00x (?)
RemoveWhereSwapInts 6171 6187 +0.3% 1.00x
RemoveWhereSwapStrings 6870 6871 +0.0% 1.00x (?)
ReversedArray 14063 13953 -0.8% 1.01x
ReversedBidirectional 43435 43490 +0.1% 1.00x (?)
ReversedDictionary 22700 22860 +0.7% 0.99x (?)
RomanNumbers 1213493 1221767 +0.7% 0.99x (?)
SequenceAlgosAnySequence 12419 12446 +0.2% 1.00x (?)
SequenceAlgosArray 753649 751558 -0.3% 1.00x (?)
SequenceAlgosContiguousArray 286336 287523 +0.4% 1.00x (?)
SequenceAlgosList 8413 8406 -0.1% 1.00x (?)
SequenceAlgosRange 1215135 1227011 +1.0% 0.99x
SequenceAlgosUnfoldSequence 5846 5875 +0.5% 1.00x (?)
SetExclusiveOr 17097 17107 +0.1% 1.00x (?)
SetExclusiveOr_OfObjects 45277 45382 +0.2% 1.00x (?)
SetIntersect 6920 6977 +0.8% 0.99x
SetIntersect_OfObjects 10868 10869 +0.0% 1.00x (?)
SetIsSubsetOf 1209 1209 +0.0% 1.00x
SetIsSubsetOf_OfObjects 1744 1729 -0.9% 1.01x (?)
SetUnion 12417 12413 -0.0% 1.00x (?)
SetUnion_OfObjects 31906 31857 -0.2% 1.00x (?)
SevenBoom 1083 1098 +1.4% 0.99x (?)
Sim2DArray 46811 46766 -0.1% 1.00x (?)
SortLargeExistentials 11554 11602 +0.4% 1.00x
SortLettersInPlace 1967 1966 -0.1% 1.00x (?)
SortSortedStrings 1128 1128 +0.0% 1.00x
SortStrings 2260 2271 +0.5% 1.00x
SortStringsUnicode 2768 2775 +0.3% 1.00x (?)
StackPromo 97224 95651 -1.6% 1.02x (?)
StaticArray 2561 2578 +0.7% 0.99x (?)
StrComplexWalk 6394 6399 +0.1% 1.00x (?)
StrToInt 79672 79820 +0.2% 1.00x (?)
StringAdder 1139 1112 -2.4% 1.02x
StringBuilder 5514 5530 +0.3% 1.00x (?)
StringBuilderLong 2915 2919 +0.1% 1.00x (?)
StringBuilderWithLongSubstring 4584 4572 -0.3% 1.00x (?)
StringComparison_abnormal 1366 1374 +0.6% 0.99x (?)
StringComparison_ascii 10252 10304 +0.5% 0.99x
StringComparison_emoji 1977 1977 +0.0% 1.00x
StringComparison_fastPrenormal 4866 4895 +0.6% 0.99x
StringComparison_latin1 3791 3816 +0.7% 0.99x
StringComparison_longSharedPrefix 2343 2359 +0.7% 0.99x (?)
StringComparison_nonBMPSlowestPrenormal 3878 3871 -0.2% 1.00x (?)
StringComparison_slowerPrenormal 4122 4121 -0.0% 1.00x (?)
StringComparison_zalgo 128237 128226 -0.0% 1.00x (?)
StringEdits 372549 379385 +1.8% 0.98x (?)
StringEnumRawValueInitialization 32252 32562 +1.0% 0.99x (?)
StringEqualPointerComparison 1600 1542 -3.6% 1.04x
StringFromLongWholeSubstring 12 12 +0.0% 1.00x
StringFromLongWholeSubstringGeneric 190 189 -0.5% 1.01x (?)
StringHasPrefixAscii 3119 3060 -1.9% 1.02x (?)
StringHasPrefixUnicode 114597 114053 -0.5% 1.00x (?)
StringHasSuffixAscii 3258 3207 -1.6% 1.02x
StringHasSuffixUnicode 106217 106833 +0.6% 0.99x (?)
StringInterpolation 14021 14089 +0.5% 1.00x (?)
StringInterpolationManySmallSegments 16863 16988 +0.7% 0.99x (?)
StringInterpolationSmall 10477 10032 -4.2% 1.04x (?)
StringMatch 37979 37034 -2.5% 1.03x (?)
StringRemoveDupes 839 837 -0.2% 1.00x (?)
StringUTF16Builder 7787 7905 +1.5% 0.99x (?)
StringUTF16SubstringBuilder 21533 21497 -0.2% 1.00x (?)
StringWalk 13119 13155 +0.3% 1.00x (?)
StringWithCString 44024 44064 +0.1% 1.00x (?)
StringWordBuilder 2564 2571 +0.3% 1.00x (?)
StringWordBuilderReservingCapacity 1963 1957 -0.3% 1.00x (?)
SubstringComparable 1585 1585 +0.0% 1.00x
SubstringEqualString 1708 1705 -0.2% 1.00x (?)
SubstringEquatable 5314 5302 -0.2% 1.00x (?)
SubstringFromLongString 18 18 +0.0% 1.00x
SubstringFromLongStringGeneric 107 107 +0.0% 1.00x
SuffixAnyCollection 4857 4852 -0.1% 1.00x (?)
SuffixAnyCollectionLazy 32623 32719 +0.3% 1.00x (?)
SuffixAnySeqCRangeIter 35745 35731 -0.0% 1.00x (?)
SuffixAnySeqCRangeIterLazy 35441 35385 -0.2% 1.00x
SuffixAnySeqCntRange 4870 4887 +0.3% 1.00x (?)
SuffixAnySeqCntRangeLazy 4853 4850 -0.1% 1.00x (?)
SuffixAnySequence 25361 25407 +0.2% 1.00x (?)
SuffixAnySequenceLazy 25337 25447 +0.4% 1.00x
SuffixCountableRange 108 109 +0.9% 0.99x (?)
SuffixCountableRangeLazy 10945 10899 -0.4% 1.00x (?)
SuffixSequence 25174 25230 +0.2% 1.00x (?)
SuffixSequenceLazy 25154 25257 +0.4% 1.00x
SumUsingReduce 159151 160441 +0.8% 0.99x
SumUsingReduceInto 154723 156032 +0.8% 0.99x
SuperChars 85340 85689 +0.4% 1.00x (?)
TwoSum 3706 3724 +0.5% 1.00x (?)
TypeFlood 196 194 -1.0% 1.01x (?)
UTF8Decode 29458 29464 +0.0% 1.00x (?)
Walsh 12022 12010 -0.1% 1.00x (?)
WordCountHistogramASCII 38061 38036 -0.1% 1.00x (?)
WordCountHistogramUTF16 46240 46493 +0.5% 0.99x (?)
WordCountUniqueASCII 7383 7383 +0.0% 1.00x
WordCountUniqueUTF16 12924 12910 -0.1% 1.00x (?)
WordSplitASCII 16468 16075 -2.4% 1.02x (?)
WordSplitUTF16 18426 17935 -2.7% 1.03x (?)
XorLoop 23234 23226 -0.0% 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

@jrose-apple
Copy link
Contributor Author

Uh, interesting. Maybe things are getting inlined now where it would be better not to.

This change also isn't 100% resilient because in theory you could decide init(rawValue:) should be able to accept additional values and map them to existing ones, and the inlinable version wouldn't do that. But I don't see a good way to mark the initializer and property as inlinable otherwise, and the hypothetical compatibility checker would catch the change easily, so maybe it's still okay.

Copy link
Contributor

@eeckstein eeckstein left a comment

Choose a reason for hiding this comment

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

lgtm.
The benchmark results are ok. +/- 10% is most likely noise.

@jrose-apple
Copy link
Contributor Author

Okay, I've thought about this more and:

  • rawValue seems fine to make inlinable all the time
  • but init(rawValue:) seems dangerous to make that assumption for resilient libraries

which I think means finding all of the examples in the stdlib where it matters and hand-rolling init(rawValue:).

@slavapestov, thoughts?

@jrose-apple
Copy link
Contributor Author

jrose-apple commented Apr 19, 2018

Further discovery: there is exactly one enum in the entire stdlib that would benefit from this: FloatingPointSign (the original cause of the bug). I think I'm going to just implement the synthesized members for that and punt on the original question (EDIT) for resilient libraries.

@jrose-apple
Copy link
Contributor Author

Did that in #16043. Going to update this PR to only add @inlinable in non-resilient builds.

Small potential perf win...or rather regain, since we apparently used
to do this. It's a bit trickier to say whether we should do the same
for resilient enums, since /in theory/ a later version of the library
might decide to use different raw values.

https://bugs.swift.org/browse/SR-7094
@jrose-apple jrose-apple changed the title [WIP] Make 'rawValue' and 'init(rawValue:)' inlinable for frozen enums Make 'rawValue' and 'init(rawValue:)' inlinable for non-resilient enums Apr 20, 2018
@jrose-apple
Copy link
Contributor Author

@swift-ci Please test

@jrose-apple
Copy link
Contributor Author

@swift-ci Please test source compatibility

@jrose-apple
Copy link
Contributor Author

@swift-ci Please smoke test compiler performance

@swift-ci
Copy link
Contributor

Build failed
Swift Test OS X Platform
Git Sha - 145980117e37de684c7ed400f769ee711b6c62a8

@swift-ci
Copy link
Contributor

Build failed
Swift Test Linux Platform
Git Sha - 145980117e37de684c7ed400f769ee711b6c62a8

@swift-ci
Copy link
Contributor

Build comment file:

Summary for master smoketest

Unexpected test results, excluded stats for ReactiveCocoa

Regressions found (see below)

Debug

debug brief

Regressed (0)
name old new delta delta_pct
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (2)
name old new delta delta_pct
LLVM.NumLLVMBytesOutput 40,916,422 40,915,650 -772 -0.0%
time.swift-driver.wall 67.8s 68.5s 676.6ms 1.0%

debug detailed

Regressed (0)
name old new delta delta_pct
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (23)
name old new delta delta_pct
AST.NumImportedExternalDefinitions 91,038 91,038 0 0.0%
AST.NumLoadedModules 12,956 12,956 0 0.0%
AST.NumTotalClangImportedEntities 259,142 259,146 4 0.0%
AST.NumUsedConformances 8,719 8,719 0 0.0%
IRModule.NumIRBasicBlocks 125,895 125,895 0 0.0%
IRModule.NumIRFunctions 74,244 74,244 0 0.0%
IRModule.NumIRGlobals 67,987 67,987 0 0.0%
IRModule.NumIRInsts 1,401,612 1,401,612 0 0.0%
IRModule.NumIRValueSymbols 127,069 127,069 0 0.0%
LLVM.NumLLVMBytesOutput 40,916,422 40,915,650 -772 -0.0%
SILModule.NumSILGenFunctions 43,297 43,297 0 0.0%
SILModule.NumSILOptFunctions 46,831 46,847 16 0.03%
Sema.NumConformancesDeserialized 293,065 294,487 1,422 0.49%
Sema.NumConstraintScopes 905,437 913,269 7,832 0.86%
Sema.NumDeclsDeserialized 2,228,221 2,231,056 2,835 0.13%
Sema.NumDeclsValidated 158,807 158,807 0 0.0%
Sema.NumFunctionsTypechecked 52,252 52,252 0 0.0%
Sema.NumGenericSignatureBuilders 61,122 61,122 0 0.0%
Sema.NumLazyGenericEnvironments 450,746 450,762 16 0.0%
Sema.NumLazyGenericEnvironmentsLoaded 40,599 40,599 0 0.0%
Sema.NumLazyIterableDeclContexts 342,401 343,505 1,104 0.32%
Sema.NumTypesDeserialized 2,342,678 2,344,182 1,504 0.06%
Sema.NumTypesValidated 219,844 219,848 4 0.0%

Release

release brief

Regressed (1)
name old new delta delta_pct
time.swift-driver.wall 161.7s 164.0s 2.4s 1.47% ⛔
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (1)
name old new delta delta_pct
LLVM.NumLLVMBytesOutput 30,381,332 30,523,212 141,880 0.47%

release detailed

Regressed (2)
name old new delta delta_pct
IRModule.NumIRBasicBlocks 173,290 175,256 1,966 1.13% ⛔
IRModule.NumIRGlobals 54,687 55,386 699 1.28% ⛔
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (21)
name old new delta delta_pct
AST.NumImportedExternalDefinitions 8,764 8,764 0 0.0%
AST.NumLoadedModules 406 406 0 0.0%
AST.NumTotalClangImportedEntities 25,382 25,382 0 0.0%
AST.NumUsedConformances 8,724 8,724 0 0.0%
IRModule.NumIRFunctions 57,460 57,458 -2 -0.0%
IRModule.NumIRInsts 1,387,591 1,395,990 8,399 0.61%
IRModule.NumIRValueSymbols 101,439 101,501 62 0.06%
LLVM.NumLLVMBytesOutput 30,381,332 30,523,212 141,880 0.47%
SILModule.NumSILGenFunctions 21,966 21,966 0 0.0%
SILModule.NumSILOptFunctions 38,551 38,558 7 0.02%
Sema.NumConformancesDeserialized 139,783 139,783 0 0.0%
Sema.NumConstraintScopes 799,659 800,940 1,281 0.16%
Sema.NumDeclsDeserialized 226,233 226,267 34 0.02%
Sema.NumDeclsValidated 28,507 28,507 0 0.0%
Sema.NumFunctionsTypechecked 10,626 10,626 0 0.0%
Sema.NumGenericSignatureBuilders 6,466 6,466 0 0.0%
Sema.NumLazyGenericEnvironments 33,492 33,492 0 0.0%
Sema.NumLazyGenericEnvironmentsLoaded 4,529 4,529 0 0.0%
Sema.NumLazyIterableDeclContexts 21,339 21,339 0 0.0%
Sema.NumTypesDeserialized 277,754 277,803 49 0.02%
Sema.NumTypesValidated 40,456 40,456 0 0.0%

@jrose-apple jrose-apple merged commit 766acd4 into swiftlang:master Apr 20, 2018
@jrose-apple jrose-apple deleted the raw-power branch April 20, 2018 22:31
jrose-apple added a commit to jrose-apple/swift that referenced this pull request Apr 21, 2018
…ms (swiftlang#15589)

Small potential perf win...or rather regain, since we apparently used
to do this. It's a bit trickier to say whether we should do the same
for resilient enums, since /in theory/ a later version of the library
might decide to use different raw values.

https://bugs.swift.org/browse/SR-7094
(cherry picked from commit 766acd4)
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.

4 participants