Skip to content

Add access marker removal to AccessEnforcementOpts. #16771

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 5 commits into from
May 24, 2018
Merged

Add access marker removal to AccessEnforcementOpts. #16771

merged 5 commits into from
May 24, 2018

Conversation

atrick
Copy link
Contributor

@atrick atrick commented May 22, 2018

Still looking at test cases and benchmarks.

@atrick
Copy link
Contributor Author

atrick commented May 22, 2018

FYI @shajrawi.

Copy link

@shajrawi shajrawi left a comment

Choose a reason for hiding this comment

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

Current changes LGTM! Need to add test-cases of course.

atrick added 5 commits May 23, 2018 09:23
Previously, it only folded begin/end access into a single runtime
operation. When all accessed for a uniquely identified storage object
have been folded, then they can all be removed.

Reworked the design of the pass so this falls out naturally just by
updating AccessedStorageAnalysis.
…LVerifier.

This is necessary for the correctness of optimizations that remove markers. We
must know that an unidentified access can never see class or global properties.
This makes the intention more clear and sets up
a new optimization to merge access scopes.
@atrick atrick changed the title [WIP] Add access marker removal to AccessEnforcementOpts. Add access marker removal to AccessEnforcementOpts. May 24, 2018
@atrick
Copy link
Contributor Author

atrick commented May 24, 2018

@swift-ci test.

@atrick
Copy link
Contributor Author

atrick commented May 24, 2018

@swift-ci benchmark.

@atrick
Copy link
Contributor Author

atrick commented May 24, 2018

@swift-ci test.

@atrick
Copy link
Contributor Author

atrick commented May 24, 2018

@swift-ci benchmark.

@swift-ci
Copy link
Contributor

Build comment file:

Optimized (O)

Regression (1)
TEST OLD NEW DELTA SPEEDUP
DropLastAnySeqCntRange 11 12 +9.1% 0.92x (?)
No Changes (435)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 3431 3429 -0.1% 1.00x (?)
AnyHashableWithAClass 77111 77303 +0.2% 1.00x (?)
Array2D 2549 2546 -0.1% 1.00x (?)
ArrayAppend 975 976 +0.1% 1.00x (?)
ArrayAppendArrayOfInt 671 671 +0.0% 1.00x
ArrayAppendAscii 3517 3517 +0.0% 1.00x
ArrayAppendAsciiSubstring 41115 41123 +0.0% 1.00x (?)
ArrayAppendFromGeneric 673 672 -0.1% 1.00x (?)
ArrayAppendGenericStructs 1209 1208 -0.1% 1.00x (?)
ArrayAppendLatin1 36824 36838 +0.0% 1.00x (?)
ArrayAppendLatin1Substring 174357 174321 -0.0% 1.00x (?)
ArrayAppendLazyMap 1174 1175 +0.1% 1.00x (?)
ArrayAppendOptionals 1209 1208 -0.1% 1.00x (?)
ArrayAppendRepeatCol 1175 1176 +0.1% 1.00x (?)
ArrayAppendReserved 746 746 +0.0% 1.00x
ArrayAppendSequence 977 977 +0.0% 1.00x
ArrayAppendStrings 5656 5656 +0.0% 1.00x
ArrayAppendToFromGeneric 673 672 -0.1% 1.00x (?)
ArrayAppendToGeneric 673 672 -0.1% 1.00x (?)
ArrayAppendUTF16 36247 36242 -0.0% 1.00x (?)
ArrayAppendUTF16Substring 175050 174942 -0.1% 1.00x (?)
ArrayInClass 77 77 +0.0% 1.00x
ArrayLiteral 0 0 +0.0% 1.00x
ArrayOfGenericPOD2 129 129 +0.0% 1.00x
ArrayOfGenericRef 3904 3904 +0.0% 1.00x
ArrayOfPOD 156 156 +0.0% 1.00x
ArrayOfRef 3880 3882 +0.1% 1.00x (?)
ArrayPlusEqualArrayOfInt 672 672 +0.0% 1.00x
ArrayPlusEqualFiveElementCollection 4908 4907 -0.0% 1.00x (?)
ArrayPlusEqualSingleElementCollection 975 975 +0.0% 1.00x
ArrayPlusEqualThreeElements 1476 1476 +0.0% 1.00x
ArraySubscript 1381 1384 +0.2% 1.00x (?)
ArrayValueProp 7 7 +0.0% 1.00x
ArrayValueProp2 7 7 +0.0% 1.00x
ArrayValueProp3 7 7 +0.0% 1.00x
ArrayValueProp4 7 7 +0.0% 1.00x
BinaryFloatingPointPropertiesBinade 23 23 +0.0% 1.00x
BinaryFloatingPointPropertiesNextUp 25 25 +0.0% 1.00x
BinaryFloatingPointPropertiesUlp 31 31 +0.0% 1.00x
BitCount 181 181 +0.0% 1.00x
ByteSwap 94 95 +1.1% 0.99x (?)
COWTree 4824 4821 -0.1% 1.00x (?)
CSVParsing 621657 621985 +0.1% 1.00x (?)
CSVParsingAlt 703682 703386 -0.0% 1.00x (?)
CSVParsingAltIndices 304368 304640 +0.1% 1.00x (?)
CStringLongAscii 3779 3780 +0.0% 1.00x (?)
CStringLongNonAscii 2197 2194 -0.1% 1.00x (?)
CStringShortAscii 2985 2983 -0.1% 1.00x (?)
Calculator 1084 1085 +0.1% 1.00x (?)
CaptureProp 3684 3682 -0.1% 1.00x (?)
ChainedFilterMap 1118 1118 +0.0% 1.00x
CharIndexing_ascii_unicodeScalars 14627 14620 -0.0% 1.00x (?)
CharIndexing_ascii_unicodeScalars_Backwards 14546 14547 +0.0% 1.00x (?)
CharIndexing_chinese_unicodeScalars 11077 11078 +0.0% 1.00x (?)
CharIndexing_chinese_unicodeScalars_Backwards 11067 11068 +0.0% 1.00x (?)
CharIndexing_japanese_unicodeScalars 17498 17499 +0.0% 1.00x (?)
CharIndexing_japanese_unicodeScalars_Backwards 17456 17452 -0.0% 1.00x (?)
CharIndexing_korean_unicodeScalars 14173 14182 +0.1% 1.00x (?)
CharIndexing_korean_unicodeScalars_Backwards 14113 14124 +0.1% 1.00x (?)
CharIndexing_punctuatedJapanese_unicodeScalars 2657 2658 +0.0% 1.00x (?)
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 2651 2651 +0.0% 1.00x
CharIndexing_punctuated_unicodeScalars 3325 3325 +0.0% 1.00x
CharIndexing_punctuated_unicodeScalars_Backwards 3312 3321 +0.3% 1.00x (?)
CharIndexing_russian_unicodeScalars 12179 12186 +0.1% 1.00x (?)
CharIndexing_russian_unicodeScalars_Backwards 12115 12121 +0.0% 1.00x (?)
CharIndexing_tweet_unicodeScalars 28853 28854 +0.0% 1.00x (?)
CharIndexing_tweet_unicodeScalars_Backwards 28876 28881 +0.0% 1.00x (?)
CharIndexing_utf16_unicodeScalars 20610 20612 +0.0% 1.00x (?)
CharIndexing_utf16_unicodeScalars_Backwards 20945 20933 -0.1% 1.00x (?)
CharIteration_ascii_unicodeScalars 18453 18448 -0.0% 1.00x (?)
CharIteration_ascii_unicodeScalars_Backwards 13221 13222 +0.0% 1.00x (?)
CharIteration_chinese_unicodeScalars 13972 13979 +0.1% 1.00x (?)
CharIteration_chinese_unicodeScalars_Backwards 10018 10015 -0.0% 1.00x (?)
CharIteration_japanese_unicodeScalars 22115 22116 +0.0% 1.00x (?)
CharIteration_japanese_unicodeScalars_Backwards 15824 15826 +0.0% 1.00x (?)
CharIteration_korean_unicodeScalars 17894 17892 -0.0% 1.00x (?)
CharIteration_korean_unicodeScalars_Backwards 12822 12820 -0.0% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars 3303 3304 +0.0% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 2404 2404 +0.0% 1.00x
CharIteration_punctuated_unicodeScalars 4132 4133 +0.0% 1.00x (?)
CharIteration_punctuated_unicodeScalars_Backwards 3005 3005 +0.0% 1.00x
CharIteration_russian_unicodeScalars 15374 15369 -0.0% 1.00x (?)
CharIteration_russian_unicodeScalars_Backwards 11019 11018 -0.0% 1.00x (?)
CharIteration_tweet_unicodeScalars 35906 35914 +0.0% 1.00x (?)
CharIteration_tweet_unicodeScalars_Backwards 26094 26092 -0.0% 1.00x (?)
CharIteration_utf16_unicodeScalars 25256 25253 -0.0% 1.00x (?)
CharIteration_utf16_unicodeScalars_Backwards 16029 16030 +0.0% 1.00x (?)
CharacterLiteralsLarge 5309 5300 -0.2% 1.00x (?)
CharacterLiteralsSmall 195 195 +0.0% 1.00x
CharacterPropertiesFetch 4041 4040 -0.0% 1.00x (?)
CharacterPropertiesPrecomputed 983 982 -0.1% 1.00x (?)
CharacterPropertiesStashed 1308 1306 -0.2% 1.00x (?)
CharacterPropertiesStashedMemo 1387 1388 +0.1% 1.00x (?)
Chars 980 980 +0.0% 1.00x
ClassArrayGetter 13 13 +0.0% 1.00x
Combos 439 439 +0.0% 1.00x
DataAccessBytes 1025 1025 +0.0% 1.00x
DataAppendArray 5381 5381 +0.0% 1.00x
DataAppendBytes 5167 5157 -0.2% 1.00x (?)
DataAppendDataLargeToLarge 61448 61505 +0.1% 1.00x (?)
DataAppendDataLargeToMedium 32606 32551 -0.2% 1.00x (?)
DataAppendDataLargeToSmall 31557 31491 -0.2% 1.00x (?)
DataAppendDataMediumToLarge 34549 34509 -0.1% 1.00x (?)
DataAppendDataMediumToMedium 7017 7223 +2.9% 0.97x (?)
DataAppendDataMediumToSmall 6144 6128 -0.3% 1.00x (?)
DataAppendDataSmallToLarge 33793 33644 -0.4% 1.00x (?)
DataAppendDataSmallToMedium 6512 6561 +0.8% 0.99x (?)
DataAppendDataSmallToSmall 6034 6107 +1.2% 0.99x (?)
DataAppendSequence 18224 18330 +0.6% 0.99x (?)
DataCopyBytes 2270 2276 +0.3% 1.00x (?)
DataCount 34 34 +0.0% 1.00x
DataMutateBytes 3851 3792 -1.5% 1.02x (?)
DataReplaceLarge 36818 36946 +0.3% 1.00x (?)
DataReplaceLargeBuffer 54176 54711 +1.0% 0.99x (?)
DataReplaceMedium 10752 10921 +1.6% 0.98x (?)
DataReplaceMediumBuffer 13819 14051 +1.7% 0.98x (?)
DataReplaceSmall 8037 8236 +2.5% 0.98x (?)
DataReplaceSmallBuffer 10803 10727 -0.7% 1.01x (?)
DataReset 2884 2883 -0.0% 1.00x (?)
DataSetCount 819 819 +0.0% 1.00x
DataSubscript 213 213 +0.0% 1.00x
DictOfArraysToArrayOfDicts 727 729 +0.3% 1.00x (?)
Dictionary 609 608 -0.2% 1.00x (?)
Dictionary2 729 729 +0.0% 1.00x
Dictionary2OfObjects 2005 2008 +0.1% 1.00x (?)
Dictionary3 228 228 +0.0% 1.00x
Dictionary3OfObjects 689 690 +0.1% 1.00x (?)
Dictionary4 306 306 +0.0% 1.00x
Dictionary4Legacy 674 674 +0.0% 1.00x
Dictionary4OfObjects 404 405 +0.2% 1.00x (?)
Dictionary4OfObjectsLegacy 841 841 +0.0% 1.00x
DictionaryBridge 1086 1077 -0.8% 1.01x (?)
DictionaryCopy 92473 92255 -0.2% 1.00x (?)
DictionaryFilter 92009 92095 +0.1% 1.00x (?)
DictionaryGroup 193 193 +0.0% 1.00x
DictionaryGroupOfObjects 1892 1892 +0.0% 1.00x
DictionaryKeysContainsCocoa 34 34 +0.0% 1.00x
DictionaryKeysContainsNative 28 28 +0.0% 1.00x
DictionaryLiteral 1723 1723 +0.0% 1.00x
DictionaryOfObjects 2246 2246 +0.0% 1.00x
DictionaryRemove 3796 3794 -0.1% 1.00x (?)
DictionaryRemoveOfObjects 23252 23245 -0.0% 1.00x (?)
DictionarySubscriptDefaultMutation 236 236 +0.0% 1.00x
DictionarySubscriptDefaultMutationArray 558 557 -0.2% 1.00x (?)
DictionarySubscriptDefaultMutationArrayOfObjects 3572 3569 -0.1% 1.00x (?)
DictionarySubscriptDefaultMutationOfObjects 1533 1533 +0.0% 1.00x
DictionarySwap 930 930 +0.0% 1.00x
DictionarySwapAt 6225 6234 +0.1% 1.00x (?)
DictionarySwapAtOfObjects 46927 46892 -0.1% 1.00x (?)
DictionarySwapOfObjects 7801 7875 +0.9% 0.99x (?)
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollection 75 75 +0.0% 1.00x
DropFirstAnyCollectionLazy 56133 56154 +0.0% 1.00x (?)
DropFirstAnySeqCRangeIter 19441 19434 -0.0% 1.00x (?)
DropFirstAnySeqCRangeIterLazy 19430 19431 +0.0% 1.00x (?)
DropFirstAnySeqCntRange 37 37 +0.0% 1.00x
DropFirstAnySeqCntRangeLazy 36 36 +0.0% 1.00x
DropFirstAnySequence 4445 4445 +0.0% 1.00x
DropFirstAnySequenceLazy 4445 4444 -0.0% 1.00x (?)
DropFirstArray 31 31 +0.0% 1.00x
DropFirstArrayLazy 31 31 +0.0% 1.00x
DropFirstCountableRange 31 31 +0.0% 1.00x
DropFirstCountableRangeLazy 31 31 +0.0% 1.00x
DropFirstSequence 2405 2405 +0.0% 1.00x
DropFirstSequenceLazy 2489 2488 -0.0% 1.00x (?)
DropLastAnyCollection 28 27 -3.6% 1.04x (?)
DropLastAnyCollectionLazy 18639 18656 +0.1% 1.00x (?)
DropLastAnySeqCRangeIter 3212 3212 +0.0% 1.00x
DropLastAnySeqCRangeIterLazy 3212 3213 +0.0% 1.00x (?)
DropLastAnySeqCntRangeLazy 12 12 +0.0% 1.00x
DropLastAnySequence 4404 4404 +0.0% 1.00x
DropLastAnySequenceLazy 4484 4487 +0.1% 1.00x (?)
DropLastCountableRange 10 10 +0.0% 1.00x
DropLastCountableRangeLazy 10 10 +0.0% 1.00x
DropLastSequence 562 561 -0.2% 1.00x (?)
DropLastSequenceLazy 561 561 +0.0% 1.00x
DropWhileAnyCollection 96 96 +0.0% 1.00x
DropWhileAnyCollectionLazy 112 112 +0.0% 1.00x
DropWhileAnySeqCRangeIter 15233 15247 +0.1% 1.00x (?)
DropWhileAnySeqCRangeIterLazy 112 112 +0.0% 1.00x
DropWhileAnySeqCntRange 45 45 +0.0% 1.00x
DropWhileAnySeqCntRangeLazy 112 112 +0.0% 1.00x
DropWhileAnySequence 4385 4384 -0.0% 1.00x (?)
DropWhileAnySequenceLazy 1665 1665 +0.0% 1.00x
DropWhileArrayLazy 79 79 +0.0% 1.00x
DropWhileCountableRange 32 32 +0.0% 1.00x
DropWhileCountableRangeLazy 94 94 +0.0% 1.00x
DropWhileSequence 1994 1994 +0.0% 1.00x
DropWhileSequenceLazy 79 79 +0.0% 1.00x
EqualStringSubstring 44 44 +0.0% 1.00x
EqualSubstringString 44 44 +0.0% 1.00x
EqualSubstringSubstring 44 44 +0.0% 1.00x
EqualSubstringSubstringGenericEquatable 44 44 +0.0% 1.00x
ErrorHandling 1440 1436 -0.3% 1.00x (?)
ExclusivityGlobal 5 5 +0.0% 1.00x
ExclusivityIndependent 2 2 +0.0% 1.00x
FatCompactMap 179291 179229 -0.0% 1.00x (?)
FilterEvenUsingReduce 1170 1167 -0.3% 1.00x (?)
FilterEvenUsingReduceInto 133 133 +0.0% 1.00x
FloatingPointPrinting_Double_description_small 21155 21198 +0.2% 1.00x (?)
FloatingPointPrinting_Double_description_uniform 20867 20857 -0.0% 1.00x (?)
FloatingPointPrinting_Double_interpolated 60684 61442 +1.2% 0.99x (?)
FloatingPointPrinting_Float80_description_small 27504 27498 -0.0% 1.00x (?)
FloatingPointPrinting_Float80_description_uniform 26560 26562 +0.0% 1.00x (?)
FloatingPointPrinting_Float80_interpolated 64287 63870 -0.6% 1.01x (?)
FloatingPointPrinting_Float_description_small 5113 5109 -0.1% 1.00x (?)
FloatingPointPrinting_Float_description_uniform 4676 4674 -0.0% 1.00x (?)
FloatingPointPrinting_Float_interpolated 37982 38122 +0.4% 1.00x (?)
FrequenciesUsingReduce 4513 4509 -0.1% 1.00x (?)
FrequenciesUsingReduceInto 1390 1390 +0.0% 1.00x
Hanoi 2037 2041 +0.2% 1.00x (?)
HashTest 947 945 -0.2% 1.00x (?)
Histogram 623 623 +0.0% 1.00x
Integrate 305 305 +0.0% 1.00x
IterateData 1337 1336 -0.1% 1.00x (?)
Join 145 145 +0.0% 1.00x
LazilyFilteredArrayContains 33606 33603 -0.0% 1.00x (?)
LazilyFilteredArrays 58853 58866 +0.0% 1.00x (?)
LazilyFilteredRange 3469 3469 +0.0% 1.00x
LessSubstringSubstring 44 44 +0.0% 1.00x
LessSubstringSubstringGenericComparable 44 43 -2.3% 1.02x
LinkedList 6778 6778 +0.0% 1.00x
LuhnAlgoEager 287 287 +0.0% 1.00x
LuhnAlgoLazy 284 284 +0.0% 1.00x
MapReduce 332 332 +0.0% 1.00x
MapReduceAnyCollection 385 385 +0.0% 1.00x
MapReduceAnyCollectionShort 2025 2065 +2.0% 0.98x (?)
MapReduceClass 2706 2715 +0.3% 1.00x (?)
MapReduceClassShort 4172 4172 +0.0% 1.00x
MapReduceLazyCollection 12 12 +0.0% 1.00x
MapReduceLazyCollectionShort 33 33 +0.0% 1.00x
MapReduceLazySequence 77 77 +0.0% 1.00x
MapReduceSequence 416 416 +0.0% 1.00x
MapReduceShort 1777 1774 -0.2% 1.00x (?)
MapReduceShortString 20 20 +0.0% 1.00x
MapReduceString 71 71 +0.0% 1.00x
Memset 192 192 +0.0% 1.00x
MonteCarloE 9301 9302 +0.0% 1.00x (?)
MonteCarloPi 38418 38414 -0.0% 1.00x (?)
NSDictionaryCastToSwift 6043 6063 +0.3% 1.00x (?)
NSError 155 153 -1.3% 1.01x (?)
NSStringConversion 622 622 +0.0% 1.00x
NibbleSort 3293 3292 -0.0% 1.00x (?)
NopDeinit 28958 28952 -0.0% 1.00x (?)
ObjectAllocation 118 118 +0.0% 1.00x
ObjectiveCBridgeFromNSArrayAnyObject 22558 22583 +0.1% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 4155 4063 -2.2% 1.02x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 40947 41790 +2.1% 0.98x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 37974 38492 +1.4% 0.99x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 97678 100910 +3.3% 0.97x (?)
ObjectiveCBridgeFromNSSetAnyObject 45306 45315 +0.0% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 4477 4477 +0.0% 1.00x
ObjectiveCBridgeFromNSSetAnyObjectToString 57607 57596 -0.0% 1.00x (?)
ObjectiveCBridgeFromNSString 1064 1064 +0.0% 1.00x
ObjectiveCBridgeFromNSStringForced 2386 2385 -0.0% 1.00x (?)
ObjectiveCBridgeStubDataAppend 10249 10190 -0.6% 1.01x (?)
ObjectiveCBridgeStubDateMutation 359 359 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 28379 29414 +3.6% 0.96x (?)
ObjectiveCBridgeStubFromNSDate 5722 5712 -0.2% 1.00x (?)
ObjectiveCBridgeStubFromNSString 936 934 -0.2% 1.00x (?)
ObjectiveCBridgeStubFromNSStringRef 152 152 +0.0% 1.00x
ObjectiveCBridgeStubNSDataAppend 2278 2280 +0.1% 1.00x (?)
ObjectiveCBridgeStubNSDateMutationRef 11848 12028 +1.5% 0.99x (?)
ObjectiveCBridgeStubToArrayOfNSString 34585 34459 -0.4% 1.00x (?)
ObjectiveCBridgeStubToNSDate 13600 13491 -0.8% 1.01x (?)
ObjectiveCBridgeStubToNSDateRef 3061 3071 +0.3% 1.00x (?)
ObjectiveCBridgeStubToNSString 2139 2139 +0.0% 1.00x
ObjectiveCBridgeStubToNSStringRef 109 109 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 254664 259982 +2.1% 0.98x (?)
ObjectiveCBridgeStubURLAppendPathRef 256768 253280 -1.4% 1.01x (?)
ObjectiveCBridgeToNSArray 13179 13098 -0.6% 1.01x (?)
ObjectiveCBridgeToNSDictionary 22724 23388 +2.9% 0.97x (?)
ObjectiveCBridgeToNSSet 14936 15378 +3.0% 0.97x (?)
ObjectiveCBridgeToNSString 441 442 +0.2% 1.00x (?)
ObserverClosure 1911 1909 -0.1% 1.00x (?)
ObserverForwarderStruct 1050 1053 +0.3% 1.00x (?)
ObserverPartiallyAppliedMethod 3327 3330 +0.1% 1.00x (?)
ObserverUnappliedMethod 2182 2189 +0.3% 1.00x (?)
OpenClose 305 305 +0.0% 1.00x
PartialApplyDynamicType 0 0 +0.0% 1.00x
Phonebook 4219 4221 +0.0% 1.00x (?)
PointerArithmetics 30819 30824 +0.0% 1.00x (?)
PolymorphicCalls 22 22 +0.0% 1.00x
PopFrontArray 1761 1760 -0.1% 1.00x (?)
PopFrontArrayGeneric 1767 1767 +0.0% 1.00x
PopFrontUnsafePointer 8512 8508 -0.0% 1.00x (?)
PrefixAnyCollection 75 75 +0.0% 1.00x
PrefixAnyCollectionLazy 55996 56021 +0.0% 1.00x (?)
PrefixAnySeqCRangeIter 15109 15114 +0.0% 1.00x (?)
PrefixAnySeqCRangeIterLazy 15111 15117 +0.0% 1.00x (?)
PrefixAnySeqCntRange 25 25 +0.0% 1.00x
PrefixAnySeqCntRangeLazy 25 25 +0.0% 1.00x
PrefixAnySequence 3877 3877 +0.0% 1.00x
PrefixAnySequenceLazy 3866 3866 +0.0% 1.00x
PrefixArray 31 31 +0.0% 1.00x
PrefixArrayLazy 31 31 +0.0% 1.00x
PrefixCountableRange 31 31 +0.0% 1.00x
PrefixCountableRangeLazy 31 31 +0.0% 1.00x
PrefixSequence 1994 1993 -0.1% 1.00x (?)
PrefixSequenceLazy 2041 2041 +0.0% 1.00x
PrefixWhileAnyCollection 138 138 +0.0% 1.00x
PrefixWhileAnyCollectionLazy 81 81 +0.0% 1.00x
PrefixWhileAnySeqCRangeIter 7951 7950 -0.0% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 65 65 +0.0% 1.00x
PrefixWhileAnySeqCntRange 53 53 +0.0% 1.00x
PrefixWhileAnySeqCntRangeLazy 81 81 +0.0% 1.00x
PrefixWhileAnySequence 8913 8836 -0.9% 1.01x (?)
PrefixWhileAnySequenceLazy 1249 1249 +0.0% 1.00x
PrefixWhileArray 79 79 +0.0% 1.00x
PrefixWhileArrayLazy 63 63 +0.0% 1.00x
PrefixWhileCountableRange 32 32 +0.0% 1.00x
PrefixWhileCountableRangeLazy 31 31 +0.0% 1.00x
PrefixWhileSequence 322 323 +0.3% 1.00x (?)
PrefixWhileSequenceLazy 47 47 +0.0% 1.00x
Prims 816 815 -0.1% 1.00x (?)
PrimsSplit 812 814 +0.2% 1.00x (?)
QueueConcrete 1025 1024 -0.1% 1.00x (?)
QueueGeneric 1024 1025 +0.1% 1.00x (?)
RC4 134 134 +0.0% 1.00x
RGBHistogram 2932 2936 +0.1% 1.00x (?)
RGBHistogramOfObjects 21242 21258 +0.1% 1.00x (?)
RandomDoubleDef 25005 25012 +0.0% 1.00x (?)
RandomDoubleLCG 3979 3980 +0.0% 1.00x (?)
RandomIntegersDef 23125 23122 -0.0% 1.00x (?)
RandomIntegersLCG 2108 2108 +0.0% 1.00x
RandomShuffleDef 744971 744716 -0.0% 1.00x (?)
RandomShuffleLCG 136450 136774 +0.2% 1.00x (?)
RangeAssignment 302 302 +0.0% 1.00x
RangeIterationSigned 154 154 +0.0% 1.00x
RangeReplaceableCollectionPlusDefault 911 910 -0.1% 1.00x (?)
RecursiveOwnedParameter 103 103 +0.0% 1.00x
RemoveWhereFilterInts 46 46 +0.0% 1.00x
RemoveWhereFilterString 224 224 +0.0% 1.00x
RemoveWhereFilterStrings 390 390 +0.0% 1.00x
RemoveWhereMoveInts 13 13 +0.0% 1.00x
RemoveWhereMoveStrings 635 635 +0.0% 1.00x
RemoveWhereQuadraticInts 1161 1161 +0.0% 1.00x
RemoveWhereQuadraticString 340 340 +0.0% 1.00x
RemoveWhereQuadraticStrings 2478 2479 +0.0% 1.00x (?)
RemoveWhereSwapInts 17 17 +0.0% 1.00x
RemoveWhereSwapStrings 771 773 +0.3% 1.00x (?)
ReversedArray 51 51 +0.0% 1.00x
ReversedBidirectional 15131 15141 +0.1% 1.00x (?)
ReversedDictionary 203 203 +0.0% 1.00x
RomanNumbers 76923 76936 +0.0% 1.00x (?)
SequenceAlgosAnySequence 10862 10874 +0.1% 1.00x (?)
SequenceAlgosArray 1386 1386 +0.0% 1.00x
SequenceAlgosContiguousArray 1386 1386 +0.0% 1.00x
SequenceAlgosList 1211 1216 +0.4% 1.00x (?)
SequenceAlgosRange 2311 2312 +0.0% 1.00x (?)
SequenceAlgosUnfoldSequence 989 989 +0.0% 1.00x
SetExclusiveOr 4694 4694 +0.0% 1.00x
SetExclusiveOr_OfObjects 10566 10565 -0.0% 1.00x (?)
SetIntersect 626 625 -0.2% 1.00x (?)
SetIntersect_OfObjects 1581 1591 +0.6% 0.99x (?)
SetIsSubsetOf 318 317 -0.3% 1.00x (?)
SetIsSubsetOf_OfObjects 404 404 +0.0% 1.00x
SetUnion 3969 3945 -0.6% 1.01x (?)
SetUnion_OfObjects 9022 9057 +0.4% 1.00x (?)
SevenBoom 785 788 +0.4% 1.00x (?)
Sim2DArray 373 373 +0.0% 1.00x
SortLargeExistentials 5417 5420 +0.1% 1.00x (?)
SortLettersInPlace 952 952 +0.0% 1.00x
SortSortedStrings 941 942 +0.1% 1.00x (?)
SortStrings 1828 1827 -0.1% 1.00x (?)
SortStringsUnicode 2325 2325 +0.0% 1.00x
StackPromo 22844 22846 +0.0% 1.00x (?)
StaticArray 8 8 +0.0% 1.00x
StrComplexWalk 1600 1600 +0.0% 1.00x
StrToInt 2899 2898 -0.0% 1.00x (?)
StringAdder 763 764 +0.1% 1.00x (?)
StringBuilder 684 684 +0.0% 1.00x
StringBuilderLong 1150 1130 -1.7% 1.02x (?)
StringBuilderSmallReservingCapacity 703 703 +0.0% 1.00x
StringBuilderWithLongSubstring 1318 1333 +1.1% 0.99x (?)
StringComparison_abnormal 696 696 +0.0% 1.00x
StringComparison_ascii 1162 1162 +0.0% 1.00x
StringComparison_emoji 734 736 +0.3% 1.00x (?)
StringComparison_fastPrenormal 750 750 +0.0% 1.00x
StringComparison_latin1 586 586 +0.0% 1.00x
StringComparison_longSharedPrefix 846 846 +0.0% 1.00x
StringComparison_nonBMPSlowestPrenormal 1447 1448 +0.1% 1.00x (?)
StringComparison_slowerPrenormal 1550 1552 +0.1% 1.00x (?)
StringComparison_zalgo 111376 111778 +0.4% 1.00x (?)
StringEdits 150135 150046 -0.1% 1.00x (?)
StringEnumRawValueInitialization 836 836 +0.0% 1.00x
StringEqualPointerComparison 256 256 +0.0% 1.00x
StringFromLongWholeSubstring 21 21 +0.0% 1.00x
StringFromLongWholeSubstringGeneric 19 19 +0.0% 1.00x
StringHasPrefixAscii 2054 2054 +0.0% 1.00x
StringHasPrefixUnicode 91563 91772 +0.2% 1.00x (?)
StringHasSuffixAscii 2240 2241 +0.0% 1.00x (?)
StringHasSuffixUnicode 91203 91250 +0.1% 1.00x (?)
StringInterpolation 8877 8907 +0.3% 1.00x (?)
StringInterpolationManySmallSegments 18673 18521 -0.8% 1.01x (?)
StringInterpolationSmall 5415 5419 +0.1% 1.00x (?)
StringMatch 11377 11372 -0.0% 1.00x (?)
StringRemoveDupes 470 471 +0.2% 1.00x (?)
StringUTF16Builder 2417 2415 -0.1% 1.00x (?)
StringUTF16SubstringBuilder 5256 5277 +0.4% 1.00x (?)
StringWalk 1290 1289 -0.1% 1.00x (?)
StringWithCString 38131 38147 +0.0% 1.00x (?)
StringWordBuilder 2151 2149 -0.1% 1.00x (?)
StringWordBuilderReservingCapacity 1712 1710 -0.1% 1.00x (?)
SubstringComparable 24 24 +0.0% 1.00x
SubstringEqualString 546 547 +0.2% 1.00x (?)
SubstringEquatable 1227 1226 -0.1% 1.00x (?)
SubstringFromLongString 9 9 +0.0% 1.00x
SubstringFromLongStringGeneric 67 68 +1.5% 0.99x
SuffixAnyCollection 28 28 +0.0% 1.00x
SuffixAnyCollectionLazy 18622 18639 +0.1% 1.00x (?)
SuffixAnySeqCRangeIter 3413 3413 +0.0% 1.00x
SuffixAnySeqCRangeIterLazy 3414 3413 -0.0% 1.00x (?)
SuffixAnySeqCntRange 18 18 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 18 18 +0.0% 1.00x
SuffixAnySequence 4395 4383 -0.3% 1.00x (?)
SuffixAnySequenceLazy 4545 4537 -0.2% 1.00x (?)
SuffixCountableRange 10 10 +0.0% 1.00x
SuffixCountableRangeLazy 10 10 +0.0% 1.00x
SuffixSequence 3198 3200 +0.1% 1.00x (?)
SuffixSequenceLazy 3200 3197 -0.1% 1.00x (?)
SumUsingReduce 91 91 +0.0% 1.00x
SumUsingReduceInto 87 87 +0.0% 1.00x
SuperChars 13343 13308 -0.3% 1.00x (?)
TwoSum 1306 1311 +0.4% 1.00x (?)
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode 285 285 +0.0% 1.00x
Walsh 376 377 +0.3% 1.00x (?)
WordCountHistogramASCII 7052 7070 +0.3% 1.00x (?)
WordCountHistogramUTF16 12944 12947 +0.0% 1.00x (?)
WordCountUniqueASCII 1934 1935 +0.1% 1.00x (?)
WordCountUniqueUTF16 6717 6779 +0.9% 0.99x (?)
WordSplitASCII 5881 5887 +0.1% 1.00x (?)
WordSplitUTF16 7508 7489 -0.3% 1.00x (?)
XorLoop 343 343 +0.0% 1.00x

Unoptimized (Onone)

Regression (5)
TEST OLD NEW DELTA SPEEDUP
CharIteration_japanese_unicodeScalars_Backwards 277666 318412 +14.7% 0.87x (?)
DataReplaceMediumBuffer 14565 16197 +11.2% 0.90x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 8116 8813 +8.6% 0.92x (?)
TypeFlood 175 187 +6.9% 0.94x (?)
DropFirstAnyCollectionLazy 89040 94710 +6.4% 0.94x (?)
Improvement (2)
TEST OLD NEW DELTA SPEEDUP
DictionarySwapOfObjects 18027 17112 -5.1% 1.05x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 46658 44389 -4.9% 1.05x (?)
No Changes (429)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 5048 5190 +2.8% 0.97x (?)
AnyHashableWithAClass 92505 92546 +0.0% 1.00x (?)
Array2D 553855 552262 -0.3% 1.00x (?)
ArrayAppend 4086 4078 -0.2% 1.00x (?)
ArrayAppendArrayOfInt 727 728 +0.1% 1.00x (?)
ArrayAppendAscii 25668 25666 -0.0% 1.00x (?)
ArrayAppendAsciiSubstring 120467 120554 +0.1% 1.00x (?)
ArrayAppendFromGeneric 732 735 +0.4% 1.00x (?)
ArrayAppendGenericStructs 1276 1273 -0.2% 1.00x (?)
ArrayAppendLatin1 59864 59927 +0.1% 1.00x (?)
ArrayAppendLatin1Substring 235353 235783 +0.2% 1.00x (?)
ArrayAppendLazyMap 148242 148190 -0.0% 1.00x (?)
ArrayAppendOptionals 1269 1271 +0.2% 1.00x (?)
ArrayAppendRepeatCol 170130 170078 -0.0% 1.00x (?)
ArrayAppendReserved 3742 3739 -0.1% 1.00x (?)
ArrayAppendSequence 91868 91834 -0.0% 1.00x (?)
ArrayAppendStrings 5739 5749 +0.2% 1.00x
ArrayAppendToFromGeneric 732 731 -0.1% 1.00x (?)
ArrayAppendToGeneric 732 735 +0.4% 1.00x (?)
ArrayAppendUTF16 59082 59035 -0.1% 1.00x (?)
ArrayAppendUTF16Substring 237538 237012 -0.2% 1.00x (?)
ArrayInClass 5660 5650 -0.2% 1.00x (?)
ArrayLiteral 1607 1605 -0.1% 1.00x (?)
ArrayOfGenericPOD2 1062 1063 +0.1% 1.00x (?)
ArrayOfGenericRef 9347 9365 +0.2% 1.00x (?)
ArrayOfPOD 679 679 +0.0% 1.00x
ArrayOfRef 8660 8613 -0.5% 1.01x (?)
ArrayPlusEqualArrayOfInt 731 730 -0.1% 1.00x (?)
ArrayPlusEqualFiveElementCollection 202508 202610 +0.1% 1.00x (?)
ArrayPlusEqualSingleElementCollection 200035 199802 -0.1% 1.00x (?)
ArrayPlusEqualThreeElements 8198 8214 +0.2% 1.00x (?)
ArraySubscript 95840 96098 +0.3% 1.00x (?)
ArrayValueProp 3254 3267 +0.4% 1.00x (?)
ArrayValueProp2 13526 13532 +0.0% 1.00x (?)
ArrayValueProp3 3700 3713 +0.4% 1.00x (?)
ArrayValueProp4 3669 3703 +0.9% 0.99x (?)
BinaryFloatingPointPropertiesBinade 77 77 +0.0% 1.00x
BinaryFloatingPointPropertiesNextUp 118 118 +0.0% 1.00x
BinaryFloatingPointPropertiesUlp 115 115 +0.0% 1.00x
BitCount 7939 7937 -0.0% 1.00x (?)
ByteSwap 8643 8656 +0.2% 1.00x (?)
COWTree 10712 10667 -0.4% 1.00x (?)
CSVParsing 2628099 2638404 +0.4% 1.00x (?)
CSVParsingAlt 1294295 1288265 -0.5% 1.00x (?)
CSVParsingAltIndices 2011342 2067961 +2.8% 0.97x (?)
CStringLongAscii 3854 3859 +0.1% 1.00x (?)
CStringLongNonAscii 2365 2367 +0.1% 1.00x (?)
CStringShortAscii 5665 5448 -3.8% 1.04x (?)
Calculator 1748 1742 -0.3% 1.00x (?)
CaptureProp 252533 252553 +0.0% 1.00x (?)
ChainedFilterMap 204241 204334 +0.0% 1.00x (?)
CharIndexing_ascii_unicodeScalars 285174 284513 -0.2% 1.00x (?)
CharIndexing_ascii_unicodeScalars_Backwards 327901 326074 -0.6% 1.01x (?)
CharIndexing_chinese_unicodeScalars 217835 217754 -0.0% 1.00x (?)
CharIndexing_chinese_unicodeScalars_Backwards 249039 247414 -0.7% 1.01x (?)
CharIndexing_japanese_unicodeScalars 341811 344142 +0.7% 0.99x (?)
CharIndexing_japanese_unicodeScalars_Backwards 383628 388306 +1.2% 0.99x (?)
CharIndexing_korean_unicodeScalars 285354 284808 -0.2% 1.00x (?)
CharIndexing_korean_unicodeScalars_Backwards 317512 318701 +0.4% 1.00x (?)
CharIndexing_punctuatedJapanese_unicodeScalars 50547 50525 -0.0% 1.00x (?)
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 57069 57232 +0.3% 1.00x (?)
CharIndexing_punctuated_unicodeScalars 64234 64599 +0.6% 0.99x (?)
CharIndexing_punctuated_unicodeScalars_Backwards 70847 71048 +0.3% 1.00x (?)
CharIndexing_russian_unicodeScalars 242064 237845 -1.7% 1.02x (?)
CharIndexing_russian_unicodeScalars_Backwards 269608 268565 -0.4% 1.00x (?)
CharIndexing_tweet_unicodeScalars 567162 573265 +1.1% 0.99x (?)
CharIndexing_tweet_unicodeScalars_Backwards 638299 638003 -0.0% 1.00x (?)
CharIndexing_utf16_unicodeScalars 255614 255126 -0.2% 1.00x (?)
CharIndexing_utf16_unicodeScalars_Backwards 287802 285735 -0.7% 1.01x (?)
CharIteration_ascii_unicodeScalars 131954 131915 -0.0% 1.00x (?)
CharIteration_ascii_unicodeScalars_Backwards 227962 228300 +0.1% 1.00x (?)
CharIteration_chinese_unicodeScalars 109288 109228 -0.1% 1.00x (?)
CharIteration_chinese_unicodeScalars_Backwards 176215 177038 +0.5% 1.00x (?)
CharIteration_japanese_unicodeScalars 173093 174406 +0.8% 0.99x (?)
CharIteration_korean_unicodeScalars 127436 127945 +0.4% 1.00x (?)
CharIteration_korean_unicodeScalars_Backwards 219860 220064 +0.1% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars 23483 23474 -0.0% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 40169 39907 -0.7% 1.01x (?)
CharIteration_punctuated_unicodeScalars 29441 29367 -0.3% 1.00x (?)
CharIteration_punctuated_unicodeScalars_Backwards 51402 51405 +0.0% 1.00x (?)
CharIteration_russian_unicodeScalars 109474 109528 +0.0% 1.00x (?)
CharIteration_russian_unicodeScalars_Backwards 189756 190030 +0.1% 1.00x (?)
CharIteration_tweet_unicodeScalars 260463 260737 +0.1% 1.00x (?)
CharIteration_tweet_unicodeScalars_Backwards 448535 447652 -0.2% 1.00x (?)
CharIteration_utf16_unicodeScalars 112802 113093 +0.3% 1.00x (?)
CharIteration_utf16_unicodeScalars_Backwards 201805 199950 -0.9% 1.01x (?)
CharacterLiteralsLarge 5142 5146 +0.1% 1.00x (?)
CharacterLiteralsSmall 610 610 +0.0% 1.00x
CharacterPropertiesFetch 4936 5004 +1.4% 0.99x (?)
CharacterPropertiesPrecomputed 3307 3166 -4.3% 1.04x (?)
CharacterPropertiesStashed 2041 2043 +0.1% 1.00x (?)
CharacterPropertiesStashedMemo 4089 3910 -4.4% 1.05x (?)
Chars 30923 30913 -0.0% 1.00x (?)
ClassArrayGetter 861 862 +0.1% 1.00x
Combos 1933 1979 +2.4% 0.98x (?)
DataAccessBytes 2089 2074 -0.7% 1.01x (?)
DataAppendArray 4697 4750 +1.1% 0.99x (?)
DataAppendBytes 4481 4481 +0.0% 1.00x
DataAppendDataLargeToLarge 61236 61079 -0.3% 1.00x (?)
DataAppendDataLargeToMedium 31699 31827 +0.4% 1.00x (?)
DataAppendDataLargeToSmall 30730 30672 -0.2% 1.00x (?)
DataAppendDataMediumToLarge 33765 33694 -0.2% 1.00x (?)
DataAppendDataMediumToMedium 6134 5947 -3.0% 1.03x (?)
DataAppendDataMediumToSmall 5322 5315 -0.1% 1.00x (?)
DataAppendDataSmallToLarge 32840 33417 +1.8% 0.98x (?)
DataAppendDataSmallToMedium 5585 5563 -0.4% 1.00x (?)
DataAppendDataSmallToSmall 5341 5362 +0.4% 1.00x (?)
DataAppendSequence 1764052 1766057 +0.1% 1.00x (?)
DataCopyBytes 2334 2354 +0.9% 0.99x (?)
DataCount 200 200 +0.0% 1.00x
DataMutateBytes 4735 4729 -0.1% 1.00x (?)
DataReplaceLarge 34593 34771 +0.5% 0.99x (?)
DataReplaceLargeBuffer 55278 55840 +1.0% 0.99x (?)
DataReplaceMedium 8487 8446 -0.5% 1.00x (?)
DataReplaceSmall 6027 6038 +0.2% 1.00x (?)
DataReplaceSmallBuffer 11323 11493 +1.5% 0.99x (?)
DataReset 2570 2570 +0.0% 1.00x
DataSetCount 506 505 -0.2% 1.00x (?)
DataSubscript 398 398 +0.0% 1.00x
DictOfArraysToArrayOfDicts 2994 2999 +0.2% 1.00x (?)
Dictionary 2198 2194 -0.2% 1.00x (?)
Dictionary2 1316 1316 +0.0% 1.00x
Dictionary2OfObjects 3951 3974 +0.6% 0.99x (?)
Dictionary3 775 775 +0.0% 1.00x
Dictionary3OfObjects 1963 2034 +3.6% 0.97x (?)
Dictionary4 1071 1069 -0.2% 1.00x (?)
Dictionary4Legacy 1343 1337 -0.4% 1.00x (?)
Dictionary4OfObjects 1595 1583 -0.8% 1.01x (?)
Dictionary4OfObjectsLegacy 1890 1938 +2.5% 0.98x (?)
DictionaryBridge 1163 1209 +4.0% 0.96x (?)
DictionaryCopy 275528 275617 +0.0% 1.00x (?)
DictionaryFilter 292481 292626 +0.0% 1.00x (?)
DictionaryGroup 3962 3976 +0.4% 1.00x
DictionaryGroupOfObjects 6219 6184 -0.6% 1.01x (?)
DictionaryKeysContainsCocoa 59 57 -3.4% 1.04x (?)
DictionaryKeysContainsNative 49 51 +4.1% 0.96x (?)
DictionaryLiteral 7856 7829 -0.3% 1.00x (?)
DictionaryOfObjects 5317 5405 +1.7% 0.98x (?)
DictionaryRemove 15659 15654 -0.0% 1.00x (?)
DictionaryRemoveOfObjects 47996 47620 -0.8% 1.01x (?)
DictionarySubscriptDefaultMutation 1776 1775 -0.1% 1.00x (?)
DictionarySubscriptDefaultMutationArray 2007 2016 +0.4% 1.00x (?)
DictionarySubscriptDefaultMutationArrayOfObjects 8460 8379 -1.0% 1.01x (?)
DictionarySubscriptDefaultMutationOfObjects 4823 4764 -1.2% 1.01x (?)
DictionarySwap 4425 4424 -0.0% 1.00x (?)
DictionarySwapAt 31734 31497 -0.7% 1.01x (?)
DictionarySwapAtOfObjects 102589 101798 -0.8% 1.01x (?)
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollection 14048 14036 -0.1% 1.00x (?)
DropFirstAnySeqCRangeIter 21497 21494 -0.0% 1.00x (?)
DropFirstAnySeqCRangeIterLazy 21558 21608 +0.2% 1.00x (?)
DropFirstAnySeqCntRange 14034 14010 -0.2% 1.00x (?)
DropFirstAnySeqCntRangeLazy 14027 14022 -0.0% 1.00x (?)
DropFirstAnySequence 11661 11653 -0.1% 1.00x (?)
DropFirstAnySequenceLazy 11504 11493 -0.1% 1.00x (?)
DropFirstArray 2982 2981 -0.0% 1.00x (?)
DropFirstArrayLazy 26430 26439 +0.0% 1.00x (?)
DropFirstCountableRange 277 278 +0.4% 1.00x
DropFirstCountableRangeLazy 31471 31515 +0.1% 1.00x (?)
DropFirstSequence 11530 11534 +0.0% 1.00x (?)
DropFirstSequenceLazy 11361 11383 +0.2% 1.00x (?)
DropLastAnyCollection 4714 4709 -0.1% 1.00x (?)
DropLastAnyCollectionLazy 31188 29874 -4.2% 1.04x (?)
DropLastAnySeqCRangeIter 36055 36181 +0.3% 1.00x
DropLastAnySeqCRangeIterLazy 36119 36087 -0.1% 1.00x (?)
DropLastAnySeqCntRange 4678 4675 -0.1% 1.00x (?)
DropLastAnySeqCntRangeLazy 4665 4668 +0.1% 1.00x (?)
DropLastAnySequence 26109 26208 +0.4% 1.00x (?)
DropLastAnySequenceLazy 26161 26162 +0.0% 1.00x (?)
DropLastCountableRange 96 96 +0.0% 1.00x
DropLastCountableRangeLazy 10495 10651 +1.5% 0.99x (?)
DropLastSequence 26247 26262 +0.1% 1.00x (?)
DropLastSequenceLazy 26184 26095 -0.3% 1.00x (?)
DropWhileAnyCollection 18162 18167 +0.0% 1.00x (?)
DropWhileAnyCollectionLazy 20467 20469 +0.0% 1.00x (?)
DropWhileAnySeqCRangeIter 22330 22322 -0.0% 1.00x (?)
DropWhileAnySeqCRangeIterLazy 20350 20348 -0.0% 1.00x (?)
DropWhileAnySeqCntRange 18104 18098 -0.0% 1.00x (?)
DropWhileAnySeqCntRangeLazy 20267 20313 +0.2% 1.00x (?)
DropWhileAnySequence 12322 12340 +0.1% 1.00x (?)
DropWhileAnySequenceLazy 11182 11175 -0.1% 1.00x (?)
DropWhileArrayLazy 12281 12291 +0.1% 1.00x (?)
DropWhileCountableRange 4401 4400 -0.0% 1.00x (?)
DropWhileCountableRangeLazy 20138 20126 -0.1% 1.00x (?)
DropWhileSequence 11928 11958 +0.3% 1.00x
DropWhileSequenceLazy 10710 10719 +0.1% 1.00x (?)
EqualStringSubstring 64 64 +0.0% 1.00x
EqualSubstringString 66 66 +0.0% 1.00x
EqualSubstringSubstring 65 65 +0.0% 1.00x
EqualSubstringSubstringGenericEquatable 53 53 +0.0% 1.00x
ErrorHandling 5251 5236 -0.3% 1.00x (?)
ExclusivityGlobal 172 172 +0.0% 1.00x
ExclusivityIndependent 66 68 +3.0% 0.97x (?)
FatCompactMap 259524 259030 -0.2% 1.00x (?)
FilterEvenUsingReduce 3174 3193 +0.6% 0.99x (?)
FilterEvenUsingReduceInto 1631 1630 -0.1% 1.00x (?)
FloatingPointPrinting_Double_description_small 21809 21693 -0.5% 1.01x (?)
FloatingPointPrinting_Double_description_uniform 32264 32266 +0.0% 1.00x (?)
FloatingPointPrinting_Double_interpolated 87621 87864 +0.3% 1.00x (?)
FloatingPointPrinting_Float80_description_small 28009 28138 +0.5% 1.00x (?)
FloatingPointPrinting_Float80_description_uniform 52608 52660 +0.1% 1.00x (?)
FloatingPointPrinting_Float80_interpolated 109179 112756 +3.3% 0.97x (?)
FloatingPointPrinting_Float_description_small 5620 5615 -0.1% 1.00x (?)
FloatingPointPrinting_Float_description_uniform 15081 15080 -0.0% 1.00x (?)
FloatingPointPrinting_Float_interpolated 66103 66425 +0.5% 1.00x (?)
FrequenciesUsingReduce 10095 9739 -3.5% 1.04x (?)
FrequenciesUsingReduceInto 2833 2839 +0.2% 1.00x (?)
Hanoi 17243 17254 +0.1% 1.00x (?)
HashTest 19240 19267 +0.1% 1.00x (?)
Histogram 5617 5613 -0.1% 1.00x (?)
Integrate 411 410 -0.2% 1.00x (?)
IterateData 4502 4495 -0.2% 1.00x (?)
Join 165 165 +0.0% 1.00x
LazilyFilteredArrayContains 652325 652425 +0.0% 1.00x (?)
LazilyFilteredArrays 1269670 1271230 +0.1% 1.00x (?)
LazilyFilteredRange 491387 483208 -1.7% 1.02x (?)
LessSubstringSubstring 65 65 +0.0% 1.00x
LessSubstringSubstringGenericComparable 53 53 +0.0% 1.00x
LinkedList 29030 29028 -0.0% 1.00x (?)
LuhnAlgoEager 4966 4961 -0.1% 1.00x (?)
LuhnAlgoLazy 5015 5106 +1.8% 0.98x (?)
MapReduce 22129 22102 -0.1% 1.00x (?)
MapReduceAnyCollection 22139 22158 +0.1% 1.00x (?)
MapReduceAnyCollectionShort 32138 31895 -0.8% 1.01x (?)
MapReduceClass 25885 25883 -0.0% 1.00x (?)
MapReduceClassShort 35240 34985 -0.7% 1.01x (?)
MapReduceLazyCollection 20605 20983 +1.8% 0.98x (?)
MapReduceLazyCollectionShort 29587 29435 -0.5% 1.01x (?)
MapReduceLazySequence 17926 17951 +0.1% 1.00x (?)
MapReduceSequence 26765 26749 -0.1% 1.00x (?)
MapReduceShort 31651 31742 +0.3% 1.00x (?)
MapReduceShortString 184 184 +0.0% 1.00x
MapReduceString 1512 1513 +0.1% 1.00x (?)
Memset 40169 40150 -0.0% 1.00x (?)
MonteCarloE 1016685 1018515 +0.2% 1.00x (?)
MonteCarloPi 4631899 4635541 +0.1% 1.00x (?)
NSDictionaryCastToSwift 7543 7311 -3.1% 1.03x (?)
NSError 542 544 +0.4% 1.00x (?)
NSStringConversion 668 668 +0.0% 1.00x
NibbleSort 456213 455856 -0.1% 1.00x (?)
NopDeinit 177698 178618 +0.5% 0.99x (?)
ObjectAllocation 1117 1099 -1.6% 1.02x (?)
ObjectiveCBridgeFromNSArrayAnyObject 26581 25721 -3.2% 1.03x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 41520 41037 -1.2% 1.01x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 105070 102055 -2.9% 1.03x (?)
ObjectiveCBridgeFromNSSetAnyObject 49469 48720 -1.5% 1.02x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 5302 5109 -3.6% 1.04x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 64436 62962 -2.3% 1.02x (?)
ObjectiveCBridgeFromNSString 2579 2579 +0.0% 1.00x
ObjectiveCBridgeFromNSStringForced 2511 2502 -0.4% 1.00x (?)
ObjectiveCBridgeStubDataAppend 5703 5696 -0.1% 1.00x (?)
ObjectiveCBridgeStubDateMutation 669 668 -0.1% 1.00x (?)
ObjectiveCBridgeStubFromArrayOfNSString 30447 29996 -1.5% 1.02x (?)
ObjectiveCBridgeStubFromNSDate 6303 6303 +0.0% 1.00x
ObjectiveCBridgeStubFromNSString 958 951 -0.7% 1.01x (?)
ObjectiveCBridgeStubFromNSStringRef 172 171 -0.6% 1.01x (?)
ObjectiveCBridgeStubNSDataAppend 2767 2640 -4.6% 1.05x (?)
ObjectiveCBridgeStubNSDateMutationRef 14447 14014 -3.0% 1.03x (?)
ObjectiveCBridgeStubToArrayOfNSString 34619 34788 +0.5% 1.00x (?)
ObjectiveCBridgeStubToNSDate 15002 14842 -1.1% 1.01x (?)
ObjectiveCBridgeStubToNSDateRef 3124 3110 -0.4% 1.00x (?)
ObjectiveCBridgeStubToNSString 2170 2172 +0.1% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 135 135 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 274586 273325 -0.5% 1.00x (?)
ObjectiveCBridgeStubURLAppendPathRef 261084 261285 +0.1% 1.00x (?)
ObjectiveCBridgeToNSArray 13223 13270 +0.4% 1.00x (?)
ObjectiveCBridgeToNSDictionary 24982 24455 -2.1% 1.02x (?)
ObjectiveCBridgeToNSSet 16060 15774 -1.8% 1.02x (?)
ObjectiveCBridgeToNSString 475 468 -1.5% 1.01x (?)
ObserverClosure 5693 5687 -0.1% 1.00x (?)
ObserverForwarderStruct 3933 3932 -0.0% 1.00x (?)
ObserverPartiallyAppliedMethod 7014 7018 +0.1% 1.00x (?)
ObserverUnappliedMethod 7378 7408 +0.4% 1.00x (?)
OpenClose 715 715 +0.0% 1.00x
PartialApplyDynamicType 35812 35646 -0.5% 1.00x (?)
Phonebook 17208 17209 +0.0% 1.00x (?)
PointerArithmetics 102782 102802 +0.0% 1.00x (?)
PolymorphicCalls 2113 2116 +0.1% 1.00x (?)
PopFrontArray 4119 4120 +0.0% 1.00x (?)
PopFrontArrayGeneric 4564 4570 +0.1% 1.00x (?)
PopFrontUnsafePointer 10020 10020 +0.0% 1.00x
PrefixAnyCollection 14043 14042 -0.0% 1.00x (?)
PrefixAnyCollectionLazy 89436 89475 +0.0% 1.00x (?)
PrefixAnySeqCRangeIter 17227 17214 -0.1% 1.00x (?)
PrefixAnySeqCRangeIterLazy 17126 17091 -0.2% 1.00x (?)
PrefixAnySeqCntRange 14060 14039 -0.1% 1.00x (?)
PrefixAnySeqCntRangeLazy 14057 14059 +0.0% 1.00x (?)
PrefixAnySequence 9768 9756 -0.1% 1.00x (?)
PrefixAnySequenceLazy 9478 9469 -0.1% 1.00x (?)
PrefixArray 2980 2980 +0.0% 1.00x
PrefixArrayLazy 26472 26445 -0.1% 1.00x (?)
PrefixCountableRange 278 278 +0.0% 1.00x
PrefixCountableRangeLazy 31486 31638 +0.5% 1.00x (?)
PrefixSequence 9381 9398 +0.2% 1.00x (?)
PrefixSequenceLazy 9271 9280 +0.1% 1.00x (?)
PrefixWhileAnyCollection 26338 26310 -0.1% 1.00x (?)
PrefixWhileAnyCollectionLazy 16987 17037 +0.3% 1.00x (?)
PrefixWhileAnySeqCRangeIter 30159 30031 -0.4% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 16920 16916 -0.0% 1.00x (?)
PrefixWhileAnySeqCntRange 26182 26186 +0.0% 1.00x (?)
PrefixWhileAnySeqCntRangeLazy 16744 16717 -0.2% 1.00x (?)
PrefixWhileAnySequence 23051 23059 +0.0% 1.00x (?)
PrefixWhileAnySequenceLazy 9859 9853 -0.1% 1.00x (?)
PrefixWhileArray 9150 9153 +0.0% 1.00x (?)
PrefixWhileArrayLazy 10886 10879 -0.1% 1.00x (?)
PrefixWhileCountableRange 12499 12501 +0.0% 1.00x (?)
PrefixWhileCountableRangeLazy 16615 16606 -0.1% 1.00x (?)
PrefixWhileSequence 22899 22801 -0.4% 1.00x (?)
PrefixWhileSequenceLazy 9643 9638 -0.1% 1.00x (?)
Prims 8219 8250 +0.4% 1.00x (?)
PrimsSplit 8404 8344 -0.7% 1.01x (?)
QueueConcrete 12307 12303 -0.0% 1.00x (?)
QueueGeneric 16140 16149 +0.1% 1.00x (?)
RC4 14301 14308 +0.0% 1.00x (?)
RGBHistogram 22859 22878 +0.1% 1.00x (?)
RGBHistogramOfObjects 71662 71785 +0.2% 1.00x (?)
RandomDoubleDef 79539 78952 -0.7% 1.01x (?)
RandomDoubleLCG 54599 54475 -0.2% 1.00x (?)
RandomIntegersDef 39929 40072 +0.4% 1.00x (?)
RandomIntegersLCG 19862 19851 -0.1% 1.00x (?)
RandomShuffleDef 1968246 1967608 -0.0% 1.00x (?)
RandomShuffleLCG 1347772 1348608 +0.1% 1.00x (?)
RangeAssignment 2343 2341 -0.1% 1.00x (?)
RangeIterationSigned 13298 13307 +0.1% 1.00x (?)
RangeReplaceableCollectionPlusDefault 9540 9808 +2.8% 0.97x (?)
RecursiveOwnedParameter 5268 5262 -0.1% 1.00x (?)
RemoveWhereFilterInts 1696 1697 +0.1% 1.00x (?)
RemoveWhereFilterString 1137 1137 +0.0% 1.00x
RemoveWhereFilterStrings 2157 2157 +0.0% 1.00x
RemoveWhereMoveInts 2911 2911 +0.0% 1.00x
RemoveWhereMoveStrings 3400 3399 -0.0% 1.00x (?)
RemoveWhereQuadraticInts 7480 7476 -0.1% 1.00x (?)
RemoveWhereQuadraticString 2286 2286 +0.0% 1.00x
RemoveWhereQuadraticStrings 8956 8951 -0.1% 1.00x (?)
RemoveWhereSwapInts 5292 5293 +0.0% 1.00x (?)
RemoveWhereSwapStrings 5927 5925 -0.0% 1.00x (?)
ReversedArray 11517 11508 -0.1% 1.00x (?)
ReversedBidirectional 39221 39522 +0.8% 0.99x (?)
ReversedDictionary 21702 21714 +0.1% 1.00x (?)
RomanNumbers 1184883 1172384 -1.1% 1.01x (?)
SequenceAlgosAnySequence 11772 11773 +0.0% 1.00x (?)
SequenceAlgosArray 652167 652610 +0.1% 1.00x (?)
SequenceAlgosContiguousArray 254419 254591 +0.1% 1.00x (?)
SequenceAlgosList 7809 7810 +0.0% 1.00x (?)
SequenceAlgosRange 1153233 1153870 +0.1% 1.00x (?)
SequenceAlgosUnfoldSequence 5814 5808 -0.1% 1.00x (?)
SetExclusiveOr 15111 14946 -1.1% 1.01x (?)
SetExclusiveOr_OfObjects 37295 37295 +0.0% 1.00x
SetIntersect 5957 5955 -0.0% 1.00x (?)
SetIntersect_OfObjects 9221 9226 +0.1% 1.00x (?)
SetIsSubsetOf 1092 1093 +0.1% 1.00x (?)
SetIsSubsetOf_OfObjects 2004 2004 +0.0% 1.00x
SetUnion 10737 10742 +0.0% 1.00x (?)
SetUnion_OfObjects 26724 26669 -0.2% 1.00x (?)
SevenBoom 947 949 +0.2% 1.00x (?)
Sim2DArray 39659 39206 -1.1% 1.01x (?)
SortLargeExistentials 10470 10459 -0.1% 1.00x (?)
SortLettersInPlace 1744 1738 -0.3% 1.00x (?)
SortSortedStrings 1025 1025 +0.0% 1.00x
SortStrings 1981 1983 +0.1% 1.00x (?)
SortStringsUnicode 2511 2511 +0.0% 1.00x
StackPromo 88708 88229 -0.5% 1.01x (?)
StaticArray 2276 2275 -0.0% 1.00x (?)
StrComplexWalk 6127 6130 +0.0% 1.00x (?)
StrToInt 76802 74568 -2.9% 1.03x (?)
StringAdder 933 932 -0.1% 1.00x (?)
StringBuilder 4821 4819 -0.0% 1.00x (?)
StringBuilderLong 1256 1260 +0.3% 1.00x (?)
StringBuilderSmallReservingCapacity 4831 4833 +0.0% 1.00x (?)
StringBuilderWithLongSubstring 2926 2873 -1.8% 1.02x (?)
StringComparison_abnormal 1149 1149 +0.0% 1.00x
StringComparison_ascii 8223 8226 +0.0% 1.00x (?)
StringComparison_emoji 1743 1754 +0.6% 0.99x (?)
StringComparison_fastPrenormal 4342 4342 +0.0% 1.00x
StringComparison_latin1 3349 3348 -0.0% 1.00x (?)
StringComparison_longSharedPrefix 2078 2076 -0.1% 1.00x (?)
StringComparison_nonBMPSlowestPrenormal 3233 3230 -0.1% 1.00x (?)
StringComparison_slowerPrenormal 3631 3631 +0.0% 1.00x
StringComparison_zalgo 114284 113926 -0.3% 1.00x (?)
StringEdits 332000 328870 -0.9% 1.01x (?)
StringEnumRawValueInitialization 24655 24798 +0.6% 0.99x (?)
StringEqualPointerComparison 1430 1429 -0.1% 1.00x (?)
StringFromLongWholeSubstring 20 20 +0.0% 1.00x
StringFromLongWholeSubstringGeneric 178 178 +0.0% 1.00x
StringHasPrefixAscii 2777 2777 +0.0% 1.00x
StringHasPrefixUnicode 92648 92490 -0.2% 1.00x (?)
StringHasSuffixAscii 3019 3017 -0.1% 1.00x (?)
StringHasSuffixUnicode 92346 92452 +0.1% 1.00x (?)
StringInterpolation 12003 12030 +0.2% 1.00x (?)
StringInterpolationManySmallSegments 18977 19156 +0.9% 0.99x (?)
StringInterpolationSmall 6427 6297 -2.0% 1.02x (?)
StringMatch 34460 34482 +0.1% 1.00x (?)
StringRemoveDupes 677 666 -1.6% 1.02x (?)
StringUTF16Builder 7154 7132 -0.3% 1.00x (?)
StringUTF16SubstringBuilder 19046 19450 +2.1% 0.98x (?)
StringWalk 11933 11927 -0.1% 1.00x (?)
StringWithCString 37101 37075 -0.1% 1.00x (?)
StringWordBuilder 2384 2394 +0.4% 1.00x (?)
StringWordBuilderReservingCapacity 1846 1845 -0.1% 1.00x (?)
SubstringComparable 1423 1425 +0.1% 1.00x (?)
SubstringEqualString 1573 1531 -2.7% 1.03x (?)
SubstringEquatable 4770 4810 +0.8% 0.99x (?)
SubstringFromLongString 16 16 +0.0% 1.00x
SubstringFromLongStringGeneric 94 94 +0.0% 1.00x
SuffixAnyCollection 4707 4699 -0.2% 1.00x (?)
SuffixAnyCollectionLazy 30434 31629 +3.9% 0.96x (?)
SuffixAnySeqCRangeIter 31977 31951 -0.1% 1.00x (?)
SuffixAnySeqCRangeIterLazy 31975 32025 +0.2% 1.00x (?)
SuffixAnySeqCntRange 4701 4687 -0.3% 1.00x (?)
SuffixAnySeqCntRangeLazy 4688 4691 +0.1% 1.00x (?)
SuffixAnySequence 22609 22579 -0.1% 1.00x (?)
SuffixAnySequenceLazy 22582 22579 -0.0% 1.00x (?)
SuffixCountableRange 96 96 +0.0% 1.00x
SuffixCountableRangeLazy 10522 10505 -0.2% 1.00x (?)
SuffixSequence 22455 22449 -0.0% 1.00x (?)
SuffixSequenceLazy 22657 22578 -0.3% 1.00x (?)
SumUsingReduce 138595 138424 -0.1% 1.00x (?)
SumUsingReduceInto 132790 132713 -0.1% 1.00x (?)
SuperChars 73153 73172 +0.0% 1.00x (?)
TwoSum 3174 3184 +0.3% 1.00x (?)
UTF8Decode 25823 25823 +0.0% 1.00x
Walsh 10830 10830 +0.0% 1.00x
WordCountHistogramASCII 35771 35847 +0.2% 1.00x (?)
WordCountHistogramUTF16 42399 42497 +0.2% 1.00x (?)
WordCountUniqueASCII 6320 6327 +0.1% 1.00x (?)
WordCountUniqueUTF16 11196 11278 +0.7% 0.99x (?)
WordSplitASCII 8922 8619 -3.4% 1.04x (?)
WordSplitUTF16 10554 10669 +1.1% 0.99x (?)
XorLoop 20967 20957 -0.0% 1.00x (?)
Hardware Overview
  Model Name: Mac Pro
  Model Identifier: MacPro6,1
  Processor Name: 8-Core Intel Xeon E5
  Processor Speed: 3 GHz
  Number of Processors: 1
  Total Number of Cores: 8
  L2 Cache (per Core): 256 KB
  L3 Cache: 25 MB
  Memory: 64 GB

@atrick
Copy link
Contributor Author

atrick commented May 24, 2018

The benchmark results above aren't meaningful. With exclusivity enabled, this optimization improves the "MultiFile" benchmarks by 10%. This pass only removes local access markers when either:
(a) static diagnostics sees escaping access, but closures are subsequently inlined by the optimization pipeline.
(b) static diagnostics sees escaping access, but none of the local accesses span a call site.

@atrick atrick merged commit c773a0a into swiftlang:master May 24, 2018
@jrose-apple
Copy link
Contributor

Looks like this broke the debug stdlib: https://ci.swift.org/view/Dashboard/job/oss-swift_tools-RA_stdlib-DA_test-simulator/295/. Are you going to have time to look at this or should I revert?

@atrick
Copy link
Contributor Author

atrick commented May 24, 2018

I'll look at it now, but I will revert the aggressive verification in the meantime.

@atrick
Copy link
Contributor Author

atrick commented May 24, 2018

Attempting to revert the verifier change here: #16823

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