Skip to content
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

[stdlib] add more debug-mode range checking to UnsafeBufferPointer #13340

Merged
merged 2 commits into from Mar 8, 2018

Conversation

glessard
Copy link
Contributor

@glessard glessard commented Dec 8, 2017

Adds _debugPrecondition calls to _failEarlyRangeCheck in Unsafe{Mutable}BufferPointer.

_failEarlyRangeCheck in Slice forwards to its Base. In the case of the UnsafeBufferPointers, that is an empty function. This means that one can use a Slice to get or set to any index of its base BufferPointer, not limited to the indices in the slice's startIndex..<endIndex range. While this is fine in release mode, this is surprising in debug mode, where the UnsafeBufferPointers do perform some range checking.

Should be merged after #12504

Resolves SR-6549.

@glessard
Copy link
Contributor Author

glessard commented Dec 8, 2017

Ping @lorentey

@lorentey
Copy link
Member

lorentey commented Dec 8, 2017

@swift-ci Please smoke test

@lorentey
Copy link
Member

lorentey commented Dec 8, 2017

@swift-ci Please benchmark

@lorentey
Copy link
Member

@swift-ci please benchmark OS X platform

@swift-ci
Copy link
Collaborator

Build comment file:

Optimized (O)

Regression (2)
TEST OLD NEW DELTA SPEEDUP
ClassArrayGetter 14 15 +7.1% 0.93x
ArraySetElement 515 544 +5.6% 0.95x
Improvement (1)
TEST OLD NEW DELTA SPEEDUP
NSError 303 287 -5.3% 1.06x (?)
No Changes (328)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 2891 2889 -0.1% 1.00x (?)
AnyHashableWithAClass 70529 70981 +0.6% 0.99x (?)
Array2D 2520 2518 -0.1% 1.00x (?)
ArrayAppend 968 975 +0.7% 0.99x (?)
ArrayAppendArrayOfInt 739 742 +0.4% 1.00x (?)
ArrayAppendAscii 21829 22969 +5.2% 0.95x
ArrayAppendFromGeneric 730 742 +1.6% 0.98x (?)
ArrayAppendGenericStructs 1328 1357 +2.2% 0.98x (?)
ArrayAppendLatin1 42442 42703 +0.6% 0.99x (?)
ArrayAppendLazyMap 1278 1286 +0.6% 0.99x (?)
ArrayAppendOptionals 1358 1357 -0.1% 1.00x (?)
ArrayAppendRepeatCol 1284 1285 +0.1% 1.00x (?)
ArrayAppendReserved 723 719 -0.6% 1.01x (?)
ArrayAppendSequence 1078 1071 -0.6% 1.01x (?)
ArrayAppendStrings 14992 15007 +0.1% 1.00x (?)
ArrayAppendToFromGeneric 727 743 +2.2% 0.98x (?)
ArrayAppendToGeneric 729 742 +1.8% 0.98x (?)
ArrayAppendUTF16 43047 43504 +1.1% 0.99x (?)
ArrayInClass 85 85 +0.0% 1.00x
ArrayLiteral 0 0 +0.0% 1.00x
ArrayOfGenericPOD 222 217 -2.3% 1.02x (?)
ArrayOfGenericRef 4230 4231 +0.0% 1.00x (?)
ArrayOfPOD 177 177 +0.0% 1.00x
ArrayOfRef 4224 4217 -0.2% 1.00x (?)
ArrayPlusEqualArrayOfInt 742 742 +0.0% 1.00x
ArrayPlusEqualFiveElementCollection 5559 5574 +0.3% 1.00x (?)
ArrayPlusEqualSingleElementCollection 975 975 +0.0% 1.00x
ArrayPlusEqualThreeElements 1574 1570 -0.3% 1.00x (?)
ArraySubscript 1483 1488 +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
BitCount 211 211 +0.0% 1.00x
ByteSwap 102 102 +0.0% 1.00x
CStringLongAscii 5732 5733 +0.0% 1.00x (?)
CStringLongNonAscii 2451 2460 +0.4% 1.00x (?)
CStringShortAscii 4755 4761 +0.1% 1.00x (?)
Calculator 41 41 +0.0% 1.00x
CaptureProp 7728 8015 +3.7% 0.96x
CharIndexing_ascii_unicodeScalars 20112 20110 -0.0% 1.00x (?)
CharIndexing_ascii_unicodeScalars_Backwards 18196 18199 +0.0% 1.00x (?)
CharIndexing_chinese_unicodeScalars 15199 15206 +0.0% 1.00x (?)
CharIndexing_chinese_unicodeScalars_Backwards 13774 13779 +0.0% 1.00x (?)
CharIndexing_japanese_unicodeScalars 24056 24062 +0.0% 1.00x (?)
CharIndexing_japanese_unicodeScalars_Backwards 21786 21795 +0.0% 1.00x (?)
CharIndexing_korean_unicodeScalars 19501 19502 +0.0% 1.00x (?)
CharIndexing_korean_unicodeScalars_Backwards 17645 17653 +0.0% 1.00x (?)
CharIndexing_punctuatedJapanese_unicodeScalars 3610 3612 +0.1% 1.00x (?)
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 3270 3277 +0.2% 1.00x
CharIndexing_punctuated_unicodeScalars 4526 4527 +0.0% 1.00x (?)
CharIndexing_punctuated_unicodeScalars_Backwards 4100 4106 +0.1% 1.00x (?)
CharIndexing_russian_unicodeScalars 16748 16751 +0.0% 1.00x (?)
CharIndexing_russian_unicodeScalars_Backwards 15158 15162 +0.0% 1.00x (?)
CharIndexing_tweet_unicodeScalars 39594 39665 +0.2% 1.00x (?)
CharIndexing_tweet_unicodeScalars_Backwards 35519 35516 -0.0% 1.00x (?)
CharIndexing_utf16_unicodeScalars 69721 69733 +0.0% 1.00x (?)
CharIndexing_utf16_unicodeScalars_Backwards 66237 66282 +0.1% 1.00x (?)
CharIteration_ascii_unicodeScalars 22623 22597 -0.1% 1.00x (?)
CharIteration_ascii_unicodeScalars_Backwards 23047 23052 +0.0% 1.00x (?)
CharIteration_chinese_unicodeScalars 17092 17072 -0.1% 1.00x (?)
CharIteration_chinese_unicodeScalars_Backwards 17428 17440 +0.1% 1.00x (?)
CharIteration_japanese_unicodeScalars 27067 27042 -0.1% 1.00x (?)
CharIteration_japanese_unicodeScalars_Backwards 27615 27618 +0.0% 1.00x (?)
CharIteration_korean_unicodeScalars 21916 21908 -0.0% 1.00x (?)
CharIteration_korean_unicodeScalars_Backwards 22342 22355 +0.1% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars 4013 4024 +0.3% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 4089 4101 +0.3% 1.00x
CharIteration_punctuated_unicodeScalars 5072 5102 +0.6% 0.99x (?)
CharIteration_punctuated_unicodeScalars_Backwards 5144 5155 +0.2% 1.00x (?)
CharIteration_russian_unicodeScalars 18819 18811 -0.0% 1.00x (?)
CharIteration_russian_unicodeScalars_Backwards 19185 19198 +0.1% 1.00x (?)
CharIteration_tweet_unicodeScalars 44629 44586 -0.1% 1.00x (?)
CharIteration_tweet_unicodeScalars_Backwards 45715 45732 +0.0% 1.00x (?)
CharIteration_utf16_unicodeScalars 98470 98411 -0.1% 1.00x (?)
CharIteration_utf16_unicodeScalars_Backwards 96758 96813 +0.1% 1.00x (?)
CharacterLiteralsLarge 5705 5701 -0.1% 1.00x (?)
CharacterLiteralsSmall 509 509 +0.0% 1.00x
Chars 1093 1092 -0.1% 1.00x (?)
Dictionary 652 654 +0.3% 1.00x (?)
Dictionary2 1868 1864 -0.2% 1.00x (?)
Dictionary2OfObjects 3219 3218 -0.0% 1.00x (?)
Dictionary3 549 551 +0.4% 1.00x (?)
Dictionary3OfObjects 878 878 +0.0% 1.00x
DictionaryBridge 3694 3715 +0.6% 0.99x (?)
DictionaryGroup 270 266 -1.5% 1.02x (?)
DictionaryGroupOfObjects 1945 1951 +0.3% 1.00x (?)
DictionaryLiteral 1488 1479 -0.6% 1.01x (?)
DictionaryOfObjects 2281 2281 +0.0% 1.00x
DictionaryRemove 2854 2787 -2.3% 1.02x (?)
DictionaryRemoveOfObjects 22549 22546 -0.0% 1.00x (?)
DictionarySubscriptDefaultMutation 151 151 +0.0% 1.00x
DictionarySubscriptDefaultMutationArray 487 489 +0.4% 1.00x (?)
DictionarySubscriptDefaultMutationArrayOfObjects 3629 3617 -0.3% 1.00x (?)
DictionarySubscriptDefaultMutationOfObjects 1285 1287 +0.2% 1.00x (?)
DictionarySwap 507 505 -0.4% 1.00x
DictionarySwapOfObjects 7181 7202 +0.3% 1.00x (?)
DropFirstAnyCollection 34 34 +0.0% 1.00x
DropFirstAnyCollectionLazy 66448 69217 +4.2% 0.96x (?)
DropFirstAnySeqCRangeIter 20774 20854 +0.4% 1.00x (?)
DropFirstAnySeqCRangeIterLazy 20776 20863 +0.4% 1.00x (?)
DropFirstAnySeqCntRange 71 71 +0.0% 1.00x
DropFirstAnySeqCntRangeLazy 71 71 +0.0% 1.00x
DropFirstAnySequence 4682 4715 +0.7% 0.99x
DropFirstAnySequenceLazy 4693 4718 +0.5% 0.99x
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 2620 2620 +0.0% 1.00x
DropFirstSequenceLazy 2714 2714 +0.0% 1.00x
DropLastAnyCollection 19 19 +0.0% 1.00x
DropLastAnyCollectionLazy 22168 22579 +1.9% 0.98x (?)
DropLastAnySeqCRangeIter 4332 4269 -1.5% 1.01x (?)
DropLastAnySeqCRangeIterLazy 4354 4273 -1.9% 1.02x
DropLastAnySeqCntRange 23 23 +0.0% 1.00x
DropLastAnySeqCntRangeLazy 23 23 +0.0% 1.00x
DropLastAnySequence 6012 5953 -1.0% 1.01x (?)
DropLastAnySequenceLazy 6040 6043 +0.0% 1.00x (?)
DropLastCountableRange 11 11 +0.0% 1.00x
DropLastCountableRangeLazy 11 11 +0.0% 1.00x
DropLastSequence 692 700 +1.2% 0.99x (?)
DropLastSequenceLazy 697 698 +0.1% 1.00x (?)
DropWhileAnyCollection 99 99 +0.0% 1.00x
DropWhileAnyCollectionLazy 147 147 +0.0% 1.00x
DropWhileAnySeqCRangeIter 16682 16774 +0.6% 0.99x (?)
DropWhileAnySeqCRangeIterLazy 147 147 +0.0% 1.00x
DropWhileAnySeqCntRange 95 95 +0.0% 1.00x
DropWhileAnySeqCntRangeLazy 147 147 +0.0% 1.00x
DropWhileAnySequence 5299 5242 -1.1% 1.01x
DropWhileAnySequenceLazy 1830 1830 +0.0% 1.00x
DropWhileArrayLazy 129 129 +0.0% 1.00x
DropWhileCountableRange 36 36 +0.0% 1.00x
DropWhileCountableRangeLazy 111 111 +0.0% 1.00x
DropWhileSequence 1322 1322 +0.0% 1.00x
DropWhileSequenceLazy 88 88 +0.0% 1.00x
EqualStringSubstring 398 402 +1.0% 0.99x
EqualSubstringString 403 405 +0.5% 1.00x (?)
EqualSubstringSubstring 404 406 +0.5% 1.00x (?)
EqualSubstringSubstringGenericEquatable 402 401 -0.2% 1.00x (?)
ErrorHandling 1978 1989 +0.6% 0.99x (?)
ExclusivityGlobal 5 5 +0.0% 1.00x
ExclusivityInMatSet 20 20 +0.0% 1.00x
ExclusivityIndependent 2 2 +0.0% 1.00x
FilterEvenUsingReduce 1270 1272 +0.2% 1.00x (?)
FilterEvenUsingReduceInto 146 145 -0.7% 1.01x (?)
FrequenciesUsingReduce 6488 6519 +0.5% 1.00x (?)
FrequenciesUsingReduceInto 2913 2919 +0.2% 1.00x (?)
Hanoi 3817 3845 +0.7% 0.99x
HashTest 1698 1705 +0.4% 1.00x (?)
Histogram 335 342 +2.1% 0.98x
Integrate 217 217 +0.0% 1.00x
IterateData 1281 1283 +0.2% 1.00x (?)
Join 368 381 +3.5% 0.97x (?)
LazilyFilteredArrayContains 31476 32670 +3.8% 0.96x
LazilyFilteredArrays 65339 64703 -1.0% 1.01x (?)
LazilyFilteredRange 4026 3983 -1.1% 1.01x (?)
LessSubstringSubstring 407 407 +0.0% 1.00x
LessSubstringSubstringGenericComparable 402 403 +0.2% 1.00x (?)
LinkedList 7146 7146 +0.0% 1.00x
MapReduce 455 455 +0.0% 1.00x
MapReduceAnyCollection 455 455 +0.0% 1.00x
MapReduceAnyCollectionShort 2054 2036 -0.9% 1.01x (?)
MapReduceClass 2989 2988 -0.0% 1.00x (?)
MapReduceClassShort 4461 4461 +0.0% 1.00x
MapReduceLazyCollection 13 13 +0.0% 1.00x
MapReduceLazyCollectionShort 38 37 -2.6% 1.03x (?)
MapReduceLazySequence 86 86 +0.0% 1.00x
MapReduceSequence 435 435 +0.0% 1.00x
MapReduceShort 1994 1996 +0.1% 1.00x (?)
MapReduceShortString 22 22 +0.0% 1.00x
MapReduceString 106 106 +0.0% 1.00x
Memset 214 215 +0.5% 1.00x (?)
MonteCarloE 10304 10303 -0.0% 1.00x (?)
MonteCarloPi 43063 43021 -0.1% 1.00x (?)
NSDictionaryCastToSwift 5134 5151 +0.3% 1.00x (?)
NSStringConversion 397 395 -0.5% 1.01x (?)
NopDeinit 21579 21576 -0.0% 1.00x (?)
ObjectAllocation 172 173 +0.6% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObject 20486 20729 +1.2% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 3737 3683 -1.4% 1.01x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 36735 38544 +4.9% 0.95x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 32361 33150 +2.4% 0.98x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 127158 127618 +0.4% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObject 61626 62113 +0.8% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 4584 4576 -0.2% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 66868 65856 -1.5% 1.02x (?)
ObjectiveCBridgeFromNSString 1034 1009 -2.4% 1.02x (?)
ObjectiveCBridgeFromNSStringForced 2121 2109 -0.6% 1.01x (?)
ObjectiveCBridgeStubDataAppend 3994 4050 +1.4% 0.99x (?)
ObjectiveCBridgeStubDateMutation 256 256 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 25495 25399 -0.4% 1.00x (?)
ObjectiveCBridgeStubFromNSDate 4190 4190 +0.0% 1.00x
ObjectiveCBridgeStubFromNSString 616 597 -3.1% 1.03x (?)
ObjectiveCBridgeStubFromNSStringRef 175 175 +0.0% 1.00x
ObjectiveCBridgeStubNSDataAppend 2636 2640 +0.2% 1.00x (?)
ObjectiveCBridgeStubNSDateMutationRef 12489 12407 -0.7% 1.01x (?)
ObjectiveCBridgeStubToArrayOfNSString 27972 28092 +0.4% 1.00x (?)
ObjectiveCBridgeStubToNSDate 14585 14683 +0.7% 0.99x (?)
ObjectiveCBridgeStubToNSDateRef 3300 3300 +0.0% 1.00x
ObjectiveCBridgeStubToNSString 1420 1414 -0.4% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 129 129 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 330592 330938 +0.1% 1.00x (?)
ObjectiveCBridgeStubURLAppendPathRef 329508 337907 +2.5% 0.98x (?)
ObjectiveCBridgeToNSArray 28333 28317 -0.1% 1.00x (?)
ObjectiveCBridgeToNSDictionary 55655 55214 -0.8% 1.01x (?)
ObjectiveCBridgeToNSSet 46185 45967 -0.5% 1.00x (?)
ObjectiveCBridgeToNSString 1195 1194 -0.1% 1.00x (?)
ObserverClosure 1993 1984 -0.5% 1.00x (?)
ObserverForwarderStruct 865 866 +0.1% 1.00x (?)
ObserverPartiallyAppliedMethod 3441 3442 +0.0% 1.00x (?)
ObserverUnappliedMethod 2137 2188 +2.4% 0.98x (?)
OpenClose 5 5 +0.0% 1.00x
Phonebook 6356 6360 +0.1% 1.00x (?)
PolymorphicCalls 25 25 +0.0% 1.00x
PopFrontArray 1863 1864 +0.1% 1.00x (?)
PopFrontArrayGeneric 1869 1861 -0.4% 1.00x (?)
PopFrontUnsafePointer 8854 8858 +0.0% 1.00x (?)
PrefixAnyCollection 34 34 +0.0% 1.00x
PrefixAnyCollectionLazy 67358 66634 -1.1% 1.01x (?)
PrefixAnySeqCRangeIter 16031 16146 +0.7% 0.99x
PrefixAnySeqCRangeIterLazy 16022 16149 +0.8% 0.99x (?)
PrefixAnySeqCntRange 71 71 +0.0% 1.00x
PrefixAnySeqCntRangeLazy 71 71 +0.0% 1.00x
PrefixAnySequence 4266 4211 -1.3% 1.01x
PrefixAnySequenceLazy 4273 4186 -2.0% 1.02x
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 1306 1307 +0.1% 1.00x (?)
PrefixSequenceLazy 1377 1377 +0.0% 1.00x
PrefixWhileAnyCollection 146 146 +0.0% 1.00x
PrefixWhileAnyCollectionLazy 106 106 +0.0% 1.00x
PrefixWhileAnySeqCRangeIter 11730 11701 -0.2% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 106 106 +0.0% 1.00x
PrefixWhileAnySeqCntRange 141 141 +0.0% 1.00x
PrefixWhileAnySeqCntRangeLazy 106 106 +0.0% 1.00x
PrefixWhileAnySequence 12799 12744 -0.4% 1.00x (?)
PrefixWhileAnySequenceLazy 1373 1373 +0.0% 1.00x
PrefixWhileArray 105 105 +0.0% 1.00x
PrefixWhileArrayLazy 70 70 +0.0% 1.00x
PrefixWhileCountableRange 46 46 +0.0% 1.00x
PrefixWhileCountableRangeLazy 35 35 +0.0% 1.00x
PrefixWhileSequence 389 389 +0.0% 1.00x
PrefixWhileSequenceLazy 52 52 +0.0% 1.00x
Prims 766 770 +0.5% 0.99x (?)
PrimsSplit 760 764 +0.5% 0.99x (?)
RC4 165 165 +0.0% 1.00x
RGBHistogram 2829 2850 +0.7% 0.99x (?)
RGBHistogramOfObjects 22891 22879 -0.1% 1.00x (?)
RangeAssignment 379 379 +0.0% 1.00x
RangeIterationSigned 200 200 +0.0% 1.00x
RangeIterationSigned64 200 200 +0.0% 1.00x
RangeIterationUnsigned 200 200 +0.0% 1.00x
RecursiveOwnedParameter 2267 2267 +0.0% 1.00x
ReversedArray 57 57 +0.0% 1.00x
ReversedBidirectional 27655 27492 -0.6% 1.01x (?)
ReversedDictionary 121 121 +0.0% 1.00x
SetExclusiveOr 3234 3240 +0.2% 1.00x (?)
SetExclusiveOr_OfObjects 8320 8333 +0.2% 1.00x (?)
SetIntersect 318 319 +0.3% 1.00x (?)
SetIntersect_OfObjects 1721 1723 +0.1% 1.00x (?)
SetIsSubsetOf 291 291 +0.0% 1.00x
SetIsSubsetOf_OfObjects 349 349 +0.0% 1.00x
SetUnion 2935 2936 +0.0% 1.00x (?)
SetUnion_OfObjects 6966 6956 -0.1% 1.00x (?)
SevenBoom 1564 1519 -2.9% 1.03x (?)
Sim2DArray 409 409 +0.0% 1.00x
SortLargeExistentials 7632 7643 +0.1% 1.00x (?)
SortLettersInPlace 1099 1097 -0.2% 1.00x (?)
SortSortedStrings 1065 1073 +0.8% 0.99x
SortStrings 1898 1915 +0.9% 0.99x
SortStringsUnicode 8894 9045 +1.7% 0.98x
StackPromo 22013 21853 -0.7% 1.01x (?)
StaticArray 5 5 +0.0% 1.00x
StrComplexWalk 1986 1986 +0.0% 1.00x
StrToInt 2035 2030 -0.2% 1.00x (?)
StringAdder 3324 3348 +0.7% 0.99x (?)
StringBuilder 978 990 +1.2% 0.99x (?)
StringBuilderLong 965 969 +0.4% 1.00x (?)
StringComparison_abnormal 694 696 +0.3% 1.00x (?)
StringComparison_ascii 121 123 +1.7% 0.98x
StringComparison_emoji 2045 2044 -0.0% 1.00x (?)
StringComparison_fastPrenormal 6980 7019 +0.6% 0.99x (?)
StringComparison_latin1 4752 4767 +0.3% 1.00x (?)
StringComparison_nonBMPSlowestPrenormal 3706 3699 -0.2% 1.00x (?)
StringComparison_slowerPrenormal 3165 3169 +0.1% 1.00x (?)
StringComparison_zalgo 1294 1307 +1.0% 0.99x
StringEdits 168948 168370 -0.3% 1.00x (?)
StringEnumRawValueInitialization 1113 1106 -0.6% 1.01x (?)
StringEqualPointerComparison 414 415 +0.2% 1.00x (?)
StringFromLongWholeSubstring 171 170 -0.6% 1.01x (?)
StringFromLongWholeSubstringGeneric 76 76 +0.0% 1.00x
StringHasPrefixAscii 1259 1259 +0.0% 1.00x
StringHasPrefixUnicode 18319 18578 +1.4% 0.99x (?)
StringHasSuffixAscii 1402 1402 +0.0% 1.00x
StringHasSuffixUnicode 75862 78767 +3.8% 0.96x
StringInterpolation 10813 10762 -0.5% 1.00x (?)
StringMatch 8806 8585 -2.5% 1.03x
StringUTF16Builder 1809 1829 +1.1% 0.99x (?)
StringWalk 1540 1541 +0.1% 1.00x (?)
StringWithCString 72652 72658 +0.0% 1.00x (?)
SubstringComparable 1758 1774 +0.9% 0.99x (?)
SubstringEqualString 1492 1496 +0.3% 1.00x (?)
SubstringEquatable 3616 3627 +0.3% 1.00x (?)
SubstringFromLongString 10 10 +0.0% 1.00x
SubstringFromLongStringGeneric 74 74 +0.0% 1.00x
SuffixAnyCollection 27 27 +0.0% 1.00x
SuffixAnyCollectionLazy 22526 22219 -1.4% 1.01x (?)
SuffixAnySeqCRangeIter 4583 4561 -0.5% 1.00x (?)
SuffixAnySeqCRangeIterLazy 4595 4563 -0.7% 1.01x (?)
SuffixAnySeqCntRange 23 23 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 23 23 +0.0% 1.00x
SuffixAnySequence 5826 5835 +0.2% 1.00x (?)
SuffixAnySequenceLazy 5911 5901 -0.2% 1.00x (?)
SuffixCountableRange 11 11 +0.0% 1.00x
SuffixCountableRangeLazy 12 12 +0.0% 1.00x
SuffixSequence 4599 4607 +0.2% 1.00x (?)
SuffixSequenceLazy 4607 4605 -0.0% 1.00x (?)
SumUsingReduce 96 96 +0.0% 1.00x
SumUsingReduceInto 97 97 +0.0% 1.00x
SuperChars 85189 84924 -0.3% 1.00x (?)
TwoSum 993 1000 +0.7% 0.99x (?)
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode 314 314 +0.0% 1.00x
Walsh 434 449 +3.5% 0.97x
XorLoop 377 384 +1.9% 0.98x (?)

Unoptimized (Onone)

Regression (4)
TEST OLD NEW DELTA SPEEDUP
ObjectiveCBridgeStubToNSDate 14530 16171 +11.3% 0.90x
ObjectiveCBridgeFromNSArrayAnyObject 23371 25692 +9.9% 0.91x (?)
StringEdits 403958 431812 +6.9% 0.94x
ArrayOfGenericPOD 1557 1644 +5.6% 0.95x
Improvement (8)
TEST OLD NEW DELTA SPEEDUP
EqualSubstringSubstring 823 755 -8.3% 1.09x
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 89819 82780 -7.8% 1.09x (?)
EqualSubstringString 725 675 -6.9% 1.07x (?)
ObjectiveCBridgeToNSDictionary 59389 55546 -6.5% 1.07x (?)
LessSubstringSubstring 807 758 -6.1% 1.06x
StringComparison_abnormal 1500 1412 -5.9% 1.06x (?)
CharIndexing_punctuatedJapanese_unicodeScalars 83152 78593 -5.5% 1.06x (?)
CharIndexing_korean_unicodeScalars_Backwards 484074 459835 -5.0% 1.05x (?)
No Changes (319)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 4851 4856 +0.1% 1.00x (?)
AnyHashableWithAClass 87518 87483 -0.0% 1.00x (?)
Array2D 630938 631248 +0.0% 1.00x (?)
ArrayAppend 4745 4746 +0.0% 1.00x (?)
ArrayAppendArrayOfInt 786 780 -0.8% 1.01x (?)
ArrayAppendAscii 44656 44885 +0.5% 0.99x (?)
ArrayAppendFromGeneric 799 795 -0.5% 1.01x (?)
ArrayAppendGenericStructs 1378 1410 +2.3% 0.98x (?)
ArrayAppendLatin1 66951 67292 +0.5% 0.99x
ArrayAppendLazyMap 210713 210229 -0.2% 1.00x
ArrayAppendOptionals 1379 1408 +2.1% 0.98x (?)
ArrayAppendRepeatCol 183650 188685 +2.7% 0.97x
ArrayAppendReserved 4486 4486 +0.0% 1.00x
ArrayAppendSequence 141308 141449 +0.1% 1.00x (?)
ArrayAppendStrings 15240 15193 -0.3% 1.00x (?)
ArrayAppendToFromGeneric 780 796 +2.1% 0.98x (?)
ArrayAppendToGeneric 789 799 +1.3% 0.99x (?)
ArrayAppendUTF16 67912 67132 -1.1% 1.01x (?)
ArrayInClass 6308 6236 -1.1% 1.01x (?)
ArrayLiteral 1680 1689 +0.5% 0.99x
ArrayOfGenericRef 9995 10021 +0.3% 1.00x (?)
ArrayOfPOD 773 774 +0.1% 1.00x (?)
ArrayOfRef 9207 9190 -0.2% 1.00x (?)
ArrayPlusEqualArrayOfInt 805 793 -1.5% 1.02x (?)
ArrayPlusEqualFiveElementCollection 237890 237891 +0.0% 1.00x (?)
ArrayPlusEqualSingleElementCollection 257158 255204 -0.8% 1.01x (?)
ArrayPlusEqualThreeElements 9257 9399 +1.5% 0.98x (?)
ArraySetElement 4611 4612 +0.0% 1.00x (?)
ArraySubscript 83642 83791 +0.2% 1.00x (?)
ArrayValueProp 3421 3459 +1.1% 0.99x (?)
ArrayValueProp2 18589 18717 +0.7% 0.99x (?)
ArrayValueProp3 3889 3911 +0.6% 0.99x (?)
ArrayValueProp4 3828 3847 +0.5% 1.00x
BitCount 2153 2153 +0.0% 1.00x
ByteSwap 3933 3932 -0.0% 1.00x (?)
CStringLongAscii 5733 5658 -1.3% 1.01x
CStringLongNonAscii 2446 2455 +0.4% 1.00x (?)
CStringShortAscii 9496 9741 +2.6% 0.97x (?)
Calculator 1222 1209 -1.1% 1.01x (?)
CaptureProp 392080 391300 -0.2% 1.00x (?)
CharIndexing_ascii_unicodeScalars 454111 448387 -1.3% 1.01x (?)
CharIndexing_ascii_unicodeScalars_Backwards 476579 478653 +0.4% 1.00x (?)
CharIndexing_chinese_unicodeScalars 344067 336404 -2.2% 1.02x (?)
CharIndexing_chinese_unicodeScalars_Backwards 361043 360257 -0.2% 1.00x (?)
CharIndexing_japanese_unicodeScalars 539008 535496 -0.7% 1.01x (?)
CharIndexing_japanese_unicodeScalars_Backwards 578277 567295 -1.9% 1.02x (?)
CharIndexing_korean_unicodeScalars 437404 433186 -1.0% 1.01x (?)
CharIndexing_punctuated_unicodeScalars 103838 98958 -4.7% 1.05x (?)
CharIndexing_punctuated_unicodeScalars_Backwards 104915 103467 -1.4% 1.01x (?)
CharIndexing_russian_unicodeScalars 373353 372622 -0.2% 1.00x (?)
CharIndexing_russian_unicodeScalars_Backwards 411924 398978 -3.1% 1.03x (?)
CharIndexing_tweet_unicodeScalars 912256 907123 -0.6% 1.01x (?)
CharIndexing_tweet_unicodeScalars_Backwards 969363 929175 -4.1% 1.04x (?)
CharIndexing_utf16_unicodeScalars 458502 460407 +0.4% 1.00x (?)
CharIndexing_utf16_unicodeScalars_Backwards 473218 486975 +2.9% 0.97x (?)
CharIteration_ascii_unicodeScalars 186160 185149 -0.5% 1.01x (?)
CharIteration_ascii_unicodeScalars_Backwards 351409 337294 -4.0% 1.04x (?)
CharIteration_chinese_unicodeScalars 140448 139752 -0.5% 1.00x (?)
CharIteration_chinese_unicodeScalars_Backwards 261872 253518 -3.2% 1.03x (?)
CharIteration_japanese_unicodeScalars 222371 220745 -0.7% 1.01x
CharIteration_japanese_unicodeScalars_Backwards 412069 402070 -2.4% 1.02x
CharIteration_korean_unicodeScalars 179411 179149 -0.1% 1.00x (?)
CharIteration_korean_unicodeScalars_Backwards 331593 325515 -1.8% 1.02x (?)
CharIteration_punctuatedJapanese_unicodeScalars 33072 33200 +0.4% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 59867 58963 -1.5% 1.02x (?)
CharIteration_punctuated_unicodeScalars 41542 41289 -0.6% 1.01x (?)
CharIteration_punctuated_unicodeScalars_Backwards 75355 74910 -0.6% 1.01x (?)
CharIteration_russian_unicodeScalars 154516 154296 -0.1% 1.00x (?)
CharIteration_russian_unicodeScalars_Backwards 288354 280673 -2.7% 1.03x (?)
CharIteration_tweet_unicodeScalars 366929 365930 -0.3% 1.00x (?)
CharIteration_tweet_unicodeScalars_Backwards 675066 668659 -0.9% 1.01x (?)
CharIteration_utf16_unicodeScalars 215275 213995 -0.6% 1.01x (?)
CharIteration_utf16_unicodeScalars_Backwards 352073 349563 -0.7% 1.01x (?)
CharacterLiteralsLarge 5954 5935 -0.3% 1.00x (?)
CharacterLiteralsSmall 860 863 +0.3% 1.00x
Chars 49352 49357 +0.0% 1.00x (?)
ClassArrayGetter 980 980 +0.0% 1.00x
Dictionary 2951 2965 +0.5% 1.00x (?)
Dictionary2 2933 2929 -0.1% 1.00x (?)
Dictionary2OfObjects 5542 5537 -0.1% 1.00x (?)
Dictionary3 1353 1351 -0.1% 1.00x (?)
Dictionary3OfObjects 2268 2268 +0.0% 1.00x
DictionaryBridge 3834 3984 +3.9% 0.96x (?)
DictionaryGroup 4669 4689 +0.4% 1.00x
DictionaryGroupOfObjects 7858 7835 -0.3% 1.00x (?)
DictionaryLiteral 8297 8329 +0.4% 1.00x (?)
DictionaryOfObjects 6458 6349 -1.7% 1.02x (?)
DictionaryRemove 18196 18160 -0.2% 1.00x (?)
DictionaryRemoveOfObjects 48997 48786 -0.4% 1.00x (?)
DictionarySubscriptDefaultMutation 1994 2006 +0.6% 0.99x (?)
DictionarySubscriptDefaultMutationArray 2263 2293 +1.3% 0.99x (?)
DictionarySubscriptDefaultMutationArrayOfObjects 9203 8871 -3.6% 1.04x
DictionarySubscriptDefaultMutationOfObjects 5408 5368 -0.7% 1.01x (?)
DictionarySwap 5316 5359 +0.8% 0.99x
DictionarySwapOfObjects 22376 23008 +2.8% 0.97x
DropFirstAnyCollection 15638 15540 -0.6% 1.01x (?)
DropFirstAnyCollectionLazy 115679 117481 +1.6% 0.98x (?)
DropFirstAnySeqCRangeIter 22693 22609 -0.4% 1.00x (?)
DropFirstAnySeqCRangeIterLazy 22648 22634 -0.1% 1.00x (?)
DropFirstAnySeqCntRange 15639 15598 -0.3% 1.00x
DropFirstAnySeqCntRangeLazy 15592 15519 -0.5% 1.00x (?)
DropFirstAnySequence 12190 12117 -0.6% 1.01x
DropFirstAnySequenceLazy 12087 12129 +0.3% 1.00x
DropFirstArray 5854 5876 +0.4% 1.00x
DropFirstArrayLazy 32865 32631 -0.7% 1.01x
DropFirstCountableRange 327 328 +0.3% 1.00x (?)
DropFirstCountableRangeLazy 29639 29710 +0.2% 1.00x
DropFirstSequence 11771 11781 +0.1% 1.00x (?)
DropFirstSequenceLazy 11767 11727 -0.3% 1.00x
DropLastAnyCollection 5241 5216 -0.5% 1.00x
DropLastAnyCollectionLazy 38550 38233 -0.8% 1.01x (?)
DropLastAnySeqCRangeIter 41486 41851 +0.9% 0.99x (?)
DropLastAnySeqCRangeIterLazy 42452 41929 -1.2% 1.01x (?)
DropLastAnySeqCntRange 5211 5178 -0.6% 1.01x
DropLastAnySeqCntRangeLazy 5229 5191 -0.7% 1.01x
DropLastAnySequence 31203 31293 +0.3% 1.00x
DropLastAnySequenceLazy 31114 31172 +0.2% 1.00x (?)
DropLastCountableRange 114 114 +0.0% 1.00x
DropLastCountableRangeLazy 9849 9888 +0.4% 1.00x
DropLastSequence 31035 31108 +0.2% 1.00x
DropLastSequenceLazy 31048 31110 +0.2% 1.00x
DropWhileAnyCollection 19893 19984 +0.5% 1.00x
DropWhileAnyCollectionLazy 21470 21482 +0.1% 1.00x
DropWhileAnySeqCRangeIter 24422 24462 +0.2% 1.00x (?)
DropWhileAnySeqCRangeIterLazy 21300 21344 +0.2% 1.00x
DropWhileAnySeqCntRange 20040 19941 -0.5% 1.00x
DropWhileAnySeqCntRangeLazy 21441 21471 +0.1% 1.00x
DropWhileAnySequence 13952 13917 -0.3% 1.00x (?)
DropWhileAnySequenceLazy 11063 10970 -0.8% 1.01x
DropWhileArrayLazy 16924 16865 -0.3% 1.00x
DropWhileCountableRange 4789 4875 +1.8% 0.98x
DropWhileCountableRangeLazy 21039 21090 +0.2% 1.00x
DropWhileSequence 13722 13698 -0.2% 1.00x (?)
DropWhileSequenceLazy 10801 10746 -0.5% 1.01x
EqualStringSubstring 678 675 -0.4% 1.00x (?)
EqualSubstringSubstringGenericEquatable 462 461 -0.2% 1.00x (?)
ErrorHandling 7485 7245 -3.2% 1.03x (?)
ExclusivityGlobal 203 197 -3.0% 1.03x
ExclusivityInMatSet 320 314 -1.9% 1.02x
ExclusivityIndependent 74 71 -4.1% 1.04x (?)
FilterEvenUsingReduce 4164 4181 +0.4% 1.00x (?)
FilterEvenUsingReduceInto 2397 2392 -0.2% 1.00x (?)
FrequenciesUsingReduce 10895 10929 +0.3% 1.00x (?)
FrequenciesUsingReduceInto 5901 5834 -1.1% 1.01x (?)
Hanoi 21143 21589 +2.1% 0.98x
HashTest 17353 17332 -0.1% 1.00x (?)
Histogram 7193 7190 -0.0% 1.00x (?)
Integrate 810 812 +0.2% 1.00x
IterateData 7593 7581 -0.2% 1.00x (?)
Join 1471 1475 +0.3% 1.00x (?)
LazilyFilteredArrayContains 933393 934357 +0.1% 1.00x (?)
LazilyFilteredArrays 1592815 1591875 -0.1% 1.00x (?)
LazilyFilteredRange 528473 530964 +0.5% 1.00x (?)
LessSubstringSubstringGenericComparable 460 462 +0.4% 1.00x (?)
LinkedList 39661 39636 -0.1% 1.00x (?)
MapReduce 33511 33482 -0.1% 1.00x (?)
MapReduceAnyCollection 33465 33496 +0.1% 1.00x (?)
MapReduceAnyCollectionShort 45879 45368 -1.1% 1.01x (?)
MapReduceClass 38359 38374 +0.0% 1.00x (?)
MapReduceClassShort 49772 50832 +2.1% 0.98x (?)
MapReduceLazyCollection 28477 28296 -0.6% 1.01x (?)
MapReduceLazyCollectionShort 39504 39067 -1.1% 1.01x (?)
MapReduceLazySequence 20955 20912 -0.2% 1.00x (?)
MapReduceSequence 36758 36830 +0.2% 1.00x (?)
MapReduceShort 44194 44498 +0.7% 0.99x (?)
MapReduceShortString 266 268 +0.8% 0.99x (?)
MapReduceString 2327 2328 +0.0% 1.00x (?)
Memset 44961 44959 -0.0% 1.00x (?)
MonteCarloE 919196 918774 -0.0% 1.00x (?)
MonteCarloPi 4002991 4001162 -0.0% 1.00x (?)
NSDictionaryCastToSwift 6571 6820 +3.8% 0.96x (?)
NSError 698 703 +0.7% 0.99x (?)
NSStringConversion 444 440 -0.9% 1.01x
NopDeinit 182030 176274 -3.2% 1.03x
ObjectAllocation 1465 1450 -1.0% 1.01x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 8056 8186 +1.6% 0.98x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 41255 42655 +3.4% 0.97x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 36449 36861 +1.1% 0.99x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 134710 134390 -0.2% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObject 68131 67484 -0.9% 1.01x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 7267 7425 +2.2% 0.98x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 76357 80263 +5.1% 0.95x (?)
ObjectiveCBridgeFromNSString 3006 3006 +0.0% 1.00x
ObjectiveCBridgeFromNSStringForced 2490 2459 -1.2% 1.01x (?)
ObjectiveCBridgeStubDataAppend 4640 4632 -0.2% 1.00x (?)
ObjectiveCBridgeStubDateMutation 629 629 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 26642 27412 +2.9% 0.97x (?)
ObjectiveCBridgeStubFromNSDate 4387 4388 +0.0% 1.00x (?)
ObjectiveCBridgeStubFromNSString 651 627 -3.7% 1.04x (?)
ObjectiveCBridgeStubFromNSStringRef 212 212 +0.0% 1.00x
ObjectiveCBridgeStubNSDataAppend 3091 3105 +0.5% 1.00x (?)
ObjectiveCBridgeStubNSDateMutationRef 15189 15185 -0.0% 1.00x (?)
ObjectiveCBridgeStubToArrayOfNSString 28388 27798 -2.1% 1.02x (?)
ObjectiveCBridgeStubToNSDateRef 3411 3378 -1.0% 1.01x (?)
ObjectiveCBridgeStubToNSString 1487 1481 -0.4% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 161 162 +0.6% 0.99x (?)
ObjectiveCBridgeStubURLAppendPath 344953 343481 -0.4% 1.00x (?)
ObjectiveCBridgeStubURLAppendPathRef 336098 349037 +3.8% 0.96x (?)
ObjectiveCBridgeToNSArray 29142 29322 +0.6% 0.99x (?)
ObjectiveCBridgeToNSSet 48899 49011 +0.2% 1.00x (?)
ObjectiveCBridgeToNSString 1257 1246 -0.9% 1.01x
ObserverClosure 6433 6420 -0.2% 1.00x (?)
ObserverForwarderStruct 4736 4756 +0.4% 1.00x (?)
ObserverPartiallyAppliedMethod 7840 7918 +1.0% 0.99x (?)
ObserverUnappliedMethod 7914 7996 +1.0% 0.99x (?)
OpenClose 421 423 +0.5% 1.00x
Phonebook 22244 22468 +1.0% 0.99x
PolymorphicCalls 6762 6440 -4.8% 1.05x (?)
PopFrontArray 8787 8897 +1.3% 0.99x (?)
PopFrontArrayGeneric 7735 7870 +1.7% 0.98x (?)
PopFrontUnsafePointer 10509 10519 +0.1% 1.00x (?)
PrefixAnyCollection 15567 15514 -0.3% 1.00x (?)
PrefixAnyCollectionLazy 118205 118192 -0.0% 1.00x (?)
PrefixAnySeqCRangeIter 17834 17883 +0.3% 1.00x (?)
PrefixAnySeqCRangeIterLazy 17849 17861 +0.1% 1.00x (?)
PrefixAnySeqCntRange 15656 15514 -0.9% 1.01x
PrefixAnySeqCntRangeLazy 15614 15531 -0.5% 1.01x (?)
PrefixAnySequence 10006 10007 +0.0% 1.00x (?)
PrefixAnySequenceLazy 10023 10026 +0.0% 1.00x (?)
PrefixArray 5982 5822 -2.7% 1.03x
PrefixArrayLazy 32922 32718 -0.6% 1.01x
PrefixCountableRange 326 327 +0.3% 1.00x (?)
PrefixCountableRangeLazy 29575 29757 +0.6% 0.99x
PrefixSequence 9814 9832 +0.2% 1.00x (?)
PrefixSequenceLazy 9734 9755 +0.2% 1.00x (?)
PrefixWhileAnyCollection 28809 28819 +0.0% 1.00x (?)
PrefixWhileAnyCollectionLazy 17576 17612 +0.2% 1.00x (?)
PrefixWhileAnySeqCRangeIter 37505 38884 +3.7% 0.96x
PrefixWhileAnySeqCRangeIterLazy 17607 17628 +0.1% 1.00x (?)
PrefixWhileAnySeqCntRange 28856 28865 +0.0% 1.00x (?)
PrefixWhileAnySeqCntRangeLazy 17615 17605 -0.1% 1.00x (?)
PrefixWhileAnySequence 30148 30181 +0.1% 1.00x (?)
PrefixWhileAnySequenceLazy 10218 10234 +0.2% 1.00x (?)
PrefixWhileArray 15747 15835 +0.6% 0.99x
PrefixWhileArrayLazy 14604 14584 -0.1% 1.00x (?)
PrefixWhileCountableRange 13620 13771 +1.1% 0.99x (?)
PrefixWhileCountableRangeLazy 17306 17370 +0.4% 1.00x (?)
PrefixWhileSequence 29893 29796 -0.3% 1.00x
PrefixWhileSequenceLazy 9910 9893 -0.2% 1.00x (?)
Prims 10215 10266 +0.5% 1.00x (?)
PrimsSplit 10376 10370 -0.1% 1.00x (?)
RC4 17936 17937 +0.0% 1.00x (?)
RGBHistogram 29258 28960 -1.0% 1.01x (?)
RGBHistogramOfObjects 97902 97177 -0.7% 1.01x (?)
RangeAssignment 4457 4506 +1.1% 0.99x (?)
RangeIterationSigned 17352 17027 -1.9% 1.02x (?)
RangeIterationSigned64 43213 43000 -0.5% 1.00x (?)
RangeIterationUnsigned 38827 38618 -0.5% 1.01x (?)
RecursiveOwnedParameter 7785 7761 -0.3% 1.00x (?)
ReversedArray 17436 17474 +0.2% 1.00x (?)
ReversedBidirectional 63103 63273 +0.3% 1.00x (?)
ReversedDictionary 27400 27481 +0.3% 1.00x (?)
SetExclusiveOr 17772 17829 +0.3% 1.00x
SetExclusiveOr_OfObjects 42205 41840 -0.9% 1.01x (?)
SetIntersect 9133 9158 +0.3% 1.00x
SetIntersect_OfObjects 12076 12248 +1.4% 0.99x (?)
SetIsSubsetOf 1483 1480 -0.2% 1.00x (?)
SetIsSubsetOf_OfObjects 1540 1536 -0.3% 1.00x (?)
SetUnion 11884 11862 -0.2% 1.00x (?)
SetUnion_OfObjects 29027 28903 -0.4% 1.00x (?)
SevenBoom 1689 1621 -4.0% 1.04x (?)
Sim2DArray 43780 43775 -0.0% 1.00x (?)
SortLargeExistentials 15916 16088 +1.1% 0.99x
SortLettersInPlace 2846 2872 +0.9% 0.99x
SortSortedStrings 1335 1349 +1.0% 0.99x
SortStrings 2513 2504 -0.4% 1.00x
SortStringsUnicode 9355 9467 +1.2% 0.99x
StackPromo 84783 84618 -0.2% 1.00x (?)
StaticArray 2696 2689 -0.3% 1.00x (?)
StrComplexWalk 7260 7270 +0.1% 1.00x
StrToInt 71613 72472 +1.2% 0.99x (?)
StringAdder 3633 3663 +0.8% 0.99x (?)
StringBuilder 7496 7353 -1.9% 1.02x (?)
StringBuilderLong 1106 1100 -0.5% 1.01x (?)
StringComparison_ascii 13819 13824 +0.0% 1.00x (?)
StringComparison_emoji 3645 3651 +0.2% 1.00x (?)
StringComparison_fastPrenormal 12683 12662 -0.2% 1.00x (?)
StringComparison_latin1 9203 9174 -0.3% 1.00x (?)
StringComparison_nonBMPSlowestPrenormal 6589 6596 +0.1% 1.00x (?)
StringComparison_slowerPrenormal 6515 6500 -0.2% 1.00x (?)
StringComparison_zalgo 2722 2720 -0.1% 1.00x (?)
StringEnumRawValueInitialization 13907 13933 +0.2% 1.00x (?)
StringEqualPointerComparison 3354 3354 +0.0% 1.00x
StringFromLongWholeSubstring 209 205 -1.9% 1.02x
StringFromLongWholeSubstringGeneric 199 200 +0.5% 1.00x (?)
StringHasPrefixAscii 2805 2805 +0.0% 1.00x
StringHasPrefixUnicode 20185 20263 +0.4% 1.00x (?)
StringHasSuffixAscii 3006 3054 +1.6% 0.98x
StringHasSuffixUnicode 77948 79917 +2.5% 0.98x
StringInterpolation 13503 13544 +0.3% 1.00x (?)
StringMatch 35768 35451 -0.9% 1.01x (?)
StringUTF16Builder 8681 8537 -1.7% 1.02x (?)
StringWalk 13668 13315 -2.6% 1.03x
StringWithCString 69554 69613 +0.1% 1.00x (?)
SubstringComparable 4321 4334 +0.3% 1.00x (?)
SubstringEqualString 6411 6348 -1.0% 1.01x (?)
SubstringEquatable 9058 9014 -0.5% 1.00x (?)
SubstringFromLongString 15 15 +0.0% 1.00x
SubstringFromLongStringGeneric 101 102 +1.0% 0.99x
SuffixAnyCollection 5230 5196 -0.7% 1.01x
SuffixAnyCollectionLazy 38754 38854 +0.3% 1.00x (?)
SuffixAnySeqCRangeIter 37552 38360 +2.2% 0.98x (?)
SuffixAnySeqCRangeIterLazy 37988 38055 +0.2% 1.00x (?)
SuffixAnySeqCntRange 5204 5196 -0.2% 1.00x (?)
SuffixAnySeqCntRangeLazy 5231 5196 -0.7% 1.01x
SuffixAnySequence 27435 27402 -0.1% 1.00x (?)
SuffixAnySequenceLazy 27545 27470 -0.3% 1.00x
SuffixCountableRange 115 115 +0.0% 1.00x
SuffixCountableRangeLazy 9863 9853 -0.1% 1.00x (?)
SuffixSequence 27409 27312 -0.4% 1.00x
SuffixSequenceLazy 27430 27368 -0.2% 1.00x
SumUsingReduce 214902 213591 -0.6% 1.01x
SumUsingReduceInto 210934 210775 -0.1% 1.00x (?)
SuperChars 193859 191478 -1.2% 1.01x (?)
TwoSum 4069 4072 +0.1% 1.00x (?)
TypeFlood 165 164 -0.6% 1.01x (?)
UTF8Decode 37169 37187 +0.0% 1.00x (?)
Walsh 12089 12087 -0.0% 1.00x (?)
XorLoop 25224 25220 -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

@glessard glessard force-pushed the umbp-failearlyrangecheck branch 4 times, most recently from 3106b15 to 4dc74b3 Compare December 14, 2017 00:32
@lorentey
Copy link
Member

@swift-ci Please smoke test

@lorentey
Copy link
Member

The benchmarks look just fine! I think this is ready to merge after #12504, so
we can remove the cherry-picked commit.

@glessard glessard changed the title [stdlib] WIP - add more debug-mode range checking to UnsafeBufferPointer [stdlib] add more debug-mode range checking to UnsafeBufferPointer Dec 15, 2017
@glessard
Copy link
Contributor Author

Cool! I removed the cherry-picked commits from this branch. Thanks for your help

@glessard
Copy link
Contributor Author

glessard commented Mar 6, 2018

@lorentey thanks for merging #12504; this one should be ready too

@lorentey
Copy link
Member

lorentey commented Mar 8, 2018

@swift-ci test and merge

@swift-ci swift-ci merged commit 9bda1e5 into apple:master Mar 8, 2018
@glessard glessard deleted the umbp-failearlyrangecheck branch March 8, 2018 20:51
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.

None yet

3 participants