Skip to content

[String] Bug fix for opaque slicing in comparison #14709

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 3 commits into from
Feb 19, 2018

Conversation

milseman
Copy link
Member

Starting a PR with a minor re-organization attempting to reduce bugs and make _asOpaque only appear in non-inlineable code.

@milseman
Copy link
Member Author

@lancep can you take this over and add test case that fails without this? This fixes the issue where we ignore the trailing end of the slice for pathological or complex comparisons.

@milseman
Copy link
Member Author

(this reorganization specifically is to unblock some of my small string work, but might as well fix bugs too!)

@milseman
Copy link
Member Author

Just to see if it's still good:

@swift-ci please test

@milseman
Copy link
Member Author

(Not expecting much here)

@swift-ci please smoke benchmark

@swift-ci
Copy link
Contributor

Build failed
Swift Test Linux Platform
Git Sha - 588e296

@milseman
Copy link
Member Author

Linux failure might be the expected failure until after swiftlang/swift-corelibs-foundation#1441 (comment) is merged

Test Case 'TestNSString.test_PrefixSuffix' started at 2018-02-18 22:55:45.216
TestFoundation/TestNSString.swift:1412: error: TestNSString.test_PrefixSuffix : XCTAssertTrue failed - Unexpected success: 1241

func _compareUnicode(
_ lhs: _StringGuts._RawBitPattern, _ rhs: _StringGuts._RawBitPattern
) -> Int {
let left = _StringGuts(rawBits: lhs)
let right = _StringGuts(rawBits: rhs)
return left._compare(right)

if _slowPath(!left._isContiguous || !right._isContiguous) {
Copy link
Member Author

Choose a reason for hiding this comment

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

Derp, this might be over-indented by one space

@swift-ci
Copy link
Contributor

Build comment file:

Optimized (O)

Regression (5)
TEST OLD NEW DELTA SPEEDUP
ObjectiveCBridgeStubToNSDate 14510 15807 +8.9% 0.92x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 4135 4492 +8.6% 0.92x (?)
Hanoi 3358 3624 +7.9% 0.93x
ObjectiveCBridgeFromNSStringForced 2378 2546 +7.1% 0.93x
ObjectiveCBridgeFromNSSetAnyObjectForced 4153 4374 +5.3% 0.95x (?)
Improvement (9)
TEST OLD NEW DELTA SPEEDUP
StringBuilderLong 1602 1166 -27.2% 1.37x
WordCountHistogramUTF16 27276 24048 -11.8% 1.13x (?)
ArrayAppendReserved 832 753 -9.5% 1.10x
WordCountUniqueUTF16 18434 16720 -9.3% 1.10x (?)
StringComparison_latin1 639 582 -8.9% 1.10x
StringComparison_fastPrenormal 833 763 -8.4% 1.09x
ArrayAppend 1108 1023 -7.7% 1.08x
ObjectiveCBridgeFromNSArrayAnyObject 21344 19729 -7.6% 1.08x (?)
SortStringsUnicode 2705 2573 -4.9% 1.05x
No Changes (364)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 3646 3652 +0.2% 1.00x (?)
AnyHashableWithAClass 70902 70401 -0.7% 1.01x (?)
Array2D 2553 2572 +0.7% 0.99x (?)
ArrayAppendArrayOfInt 798 799 +0.1% 1.00x (?)
ArrayAppendAscii 13084 13226 +1.1% 0.99x
ArrayAppendFromGeneric 798 801 +0.4% 1.00x (?)
ArrayAppendGenericStructs 1432 1434 +0.1% 1.00x (?)
ArrayAppendLatin1 37785 37826 +0.1% 1.00x (?)
ArrayAppendLazyMap 1342 1345 +0.2% 1.00x
ArrayAppendOptionals 1430 1428 -0.1% 1.00x (?)
ArrayAppendRepeatCol 1339 1337 -0.1% 1.00x (?)
ArrayAppendSequence 1134 1131 -0.3% 1.00x (?)
ArrayAppendStrings 15307 15307 +0.0% 1.00x
ArrayAppendToFromGeneric 798 800 +0.3% 1.00x (?)
ArrayAppendToGeneric 800 800 +0.0% 1.00x
ArrayAppendUTF16 36337 37573 +3.4% 0.97x
ArrayInClass 86 85 -1.2% 1.01x
ArrayLiteral 0 0 +0.0% 1.00x
ArrayOfGenericPOD2 151 151 +0.0% 1.00x
ArrayOfGenericRef 4390 4383 -0.2% 1.00x (?)
ArrayOfPOD 184 184 +0.0% 1.00x
ArrayOfRef 4348 4349 +0.0% 1.00x (?)
ArrayPlusEqualArrayOfInt 795 795 +0.0% 1.00x
ArrayPlusEqualFiveElementCollection 5659 5512 -2.6% 1.03x
ArrayPlusEqualSingleElementCollection 1064 1019 -4.2% 1.04x
ArrayPlusEqualThreeElements 1658 1654 -0.2% 1.00x (?)
ArraySubscript 1522 1513 -0.6% 1.01x (?)
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
BinaryFloatingPointConversionFromBinaryInteger 38 37 -2.6% 1.03x
BitCount 211 211 +0.0% 1.00x
ByteSwap 100 100 +0.0% 1.00x
COWTree 3576 3614 +1.1% 0.99x
CSVParsing 757556 759138 +0.2% 1.00x (?)
CSVParsingAlt 725557 728962 +0.5% 1.00x (?)
CSVParsingAltIndices 360381 356654 -1.0% 1.01x (?)
CStringLongAscii 4774 4774 +0.0% 1.00x
CStringLongNonAscii 2165 2100 -3.0% 1.03x (?)
CStringShortAscii 4733 4716 -0.4% 1.00x (?)
Calculator 650 653 +0.5% 1.00x (?)
CaptureProp 3918 3901 -0.4% 1.00x
CharIndexing_ascii_unicodeScalars 15408 15410 +0.0% 1.00x (?)
CharIndexing_ascii_unicodeScalars_Backwards 14354 14346 -0.1% 1.00x (?)
CharIndexing_chinese_unicodeScalars 11679 11671 -0.1% 1.00x (?)
CharIndexing_chinese_unicodeScalars_Backwards 10866 10868 +0.0% 1.00x (?)
CharIndexing_japanese_unicodeScalars 18452 18454 +0.0% 1.00x (?)
CharIndexing_japanese_unicodeScalars_Backwards 17178 17159 -0.1% 1.00x (?)
CharIndexing_korean_unicodeScalars 14947 14939 -0.1% 1.00x (?)
CharIndexing_korean_unicodeScalars_Backwards 13909 13912 +0.0% 1.00x (?)
CharIndexing_punctuatedJapanese_unicodeScalars 2785 2788 +0.1% 1.00x
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 2610 2612 +0.1% 1.00x (?)
CharIndexing_punctuated_unicodeScalars 3486 3488 +0.1% 1.00x
CharIndexing_punctuated_unicodeScalars_Backwards 3267 3266 -0.0% 1.00x (?)
CharIndexing_russian_unicodeScalars 12837 12839 +0.0% 1.00x (?)
CharIndexing_russian_unicodeScalars_Backwards 11957 11955 -0.0% 1.00x (?)
CharIndexing_tweet_unicodeScalars 30293 30295 +0.0% 1.00x (?)
CharIndexing_tweet_unicodeScalars_Backwards 28254 28251 -0.0% 1.00x (?)
CharIndexing_utf16_unicodeScalars 20343 20334 -0.0% 1.00x (?)
CharIndexing_utf16_unicodeScalars_Backwards 20902 20898 -0.0% 1.00x (?)
CharIteration_ascii_unicodeScalars 20792 20612 -0.9% 1.01x
CharIteration_ascii_unicodeScalars_Backwards 13515 13513 -0.0% 1.00x (?)
CharIteration_chinese_unicodeScalars 15698 15691 -0.0% 1.00x (?)
CharIteration_chinese_unicodeScalars_Backwards 10237 10249 +0.1% 1.00x (?)
CharIteration_japanese_unicodeScalars 24771 24678 -0.4% 1.00x
CharIteration_japanese_unicodeScalars_Backwards 16179 16179 +0.0% 1.00x
CharIteration_korean_unicodeScalars 20151 19958 -1.0% 1.01x
CharIteration_korean_unicodeScalars_Backwards 13115 13110 -0.0% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars 3730 3690 -1.1% 1.01x
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 2470 2474 +0.2% 1.00x
CharIteration_punctuated_unicodeScalars 4676 4643 -0.7% 1.01x
CharIteration_punctuated_unicodeScalars_Backwards 3084 3085 +0.0% 1.00x (?)
CharIteration_russian_unicodeScalars 17290 17112 -1.0% 1.01x
CharIteration_russian_unicodeScalars_Backwards 11269 11266 -0.0% 1.00x (?)
CharIteration_tweet_unicodeScalars 40975 40653 -0.8% 1.01x
CharIteration_tweet_unicodeScalars_Backwards 26717 26689 -0.1% 1.00x
CharIteration_utf16_unicodeScalars 27231 27294 +0.2% 1.00x (?)
CharIteration_utf16_unicodeScalars_Backwards 17266 17122 -0.8% 1.01x
CharacterLiteralsLarge 5952 5989 +0.6% 0.99x (?)
CharacterLiteralsSmall 409 410 +0.2% 1.00x (?)
CharacterPropertiesFetch 4603 4626 +0.5% 1.00x (?)
CharacterPropertiesPrecomputed 976 978 +0.2% 1.00x (?)
CharacterPropertiesStashed 1534 1585 +3.3% 0.97x
CharacterPropertiesStashedMemo 1526 1537 +0.7% 0.99x
Chars 969 970 +0.1% 1.00x (?)
ClassArrayGetter 15 15 +0.0% 1.00x
Combos 456 457 +0.2% 1.00x (?)
DictOfArraysToArrayOfDicts 798 793 -0.6% 1.01x (?)
Dictionary 507 504 -0.6% 1.01x
Dictionary2 1617 1622 +0.3% 1.00x (?)
Dictionary2OfObjects 2973 2974 +0.0% 1.00x (?)
Dictionary3 237 234 -1.3% 1.01x (?)
Dictionary3OfObjects 673 672 -0.1% 1.00x (?)
Dictionary4 149 152 +2.0% 0.98x (?)
Dictionary4OfObjects 200 200 +0.0% 1.00x
DictionaryBridge 2099 2054 -2.1% 1.02x (?)
DictionaryGroup 132 132 +0.0% 1.00x
DictionaryGroupOfObjects 1926 1917 -0.5% 1.00x
DictionaryLiteral 1614 1593 -1.3% 1.01x
DictionaryOfObjects 2199 2178 -1.0% 1.01x (?)
DictionaryRemove 2801 2763 -1.4% 1.01x (?)
DictionaryRemoveOfObjects 23768 23824 +0.2% 1.00x
DictionarySubscriptDefaultMutation 144 144 +0.0% 1.00x
DictionarySubscriptDefaultMutationArray 493 494 +0.2% 1.00x (?)
DictionarySubscriptDefaultMutationArrayOfObjects 3846 3845 -0.0% 1.00x (?)
DictionarySubscriptDefaultMutationOfObjects 1395 1403 +0.6% 0.99x (?)
DictionarySwap 471 470 -0.2% 1.00x (?)
DictionarySwapOfObjects 7420 7374 -0.6% 1.01x (?)
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollection 76 76 +0.0% 1.00x
DropFirstAnyCollectionLazy 64095 65062 +1.5% 0.99x
DropFirstAnySeqCRangeIter 163 163 +0.0% 1.00x
DropFirstAnySeqCRangeIterLazy 163 163 +0.0% 1.00x
DropFirstAnySeqCntRange 71 71 +0.0% 1.00x
DropFirstAnySeqCntRangeLazy 71 71 +0.0% 1.00x
DropFirstAnySequence 1842 1843 +0.1% 1.00x (?)
DropFirstAnySequenceLazy 1842 1841 -0.1% 1.00x (?)
DropFirstArray 35 35 +0.0% 1.00x
DropFirstArrayLazy 35 35 +0.0% 1.00x
DropFirstCountableRange 35 35 +0.0% 1.00x
DropFirstCountableRangeLazy 35 35 +0.0% 1.00x
DropFirstSequence 2699 2699 +0.0% 1.00x
DropFirstSequenceLazy 2785 2793 +0.3% 1.00x
DropLastAnyCollection 28 28 +0.0% 1.00x
DropLastAnyCollectionLazy 21506 21401 -0.5% 1.00x (?)
DropLastAnySeqCRangeIter 3517 3524 +0.2% 1.00x (?)
DropLastAnySeqCRangeIterLazy 3562 3552 -0.3% 1.00x
DropLastAnySeqCntRange 23 23 +0.0% 1.00x
DropLastAnySeqCntRangeLazy 23 23 +0.0% 1.00x
DropLastAnySequence 5094 5101 +0.1% 1.00x
DropLastAnySequenceLazy 5186 5191 +0.1% 1.00x (?)
DropLastCountableRange 11 11 +0.0% 1.00x
DropLastCountableRangeLazy 12 12 +0.0% 1.00x
DropLastSequence 636 636 +0.0% 1.00x
DropLastSequenceLazy 637 633 -0.6% 1.01x
DropWhileAnyCollection 100 100 +0.0% 1.00x
DropWhileAnyCollectionLazy 153 153 +0.0% 1.00x
DropWhileAnySeqCRangeIter 157 157 +0.0% 1.00x
DropWhileAnySeqCRangeIterLazy 153 153 +0.0% 1.00x
DropWhileAnySeqCntRange 95 95 +0.0% 1.00x
DropWhileAnySeqCntRangeLazy 153 153 +0.0% 1.00x
DropWhileAnySequence 1863 1860 -0.2% 1.00x (?)
DropWhileAnySequenceLazy 1855 1856 +0.1% 1.00x
DropWhileArrayLazy 129 129 +0.0% 1.00x
DropWhileCountableRange 36 36 +0.0% 1.00x
DropWhileCountableRangeLazy 111 111 +0.0% 1.00x
DropWhileSequence 1341 1341 +0.0% 1.00x
DropWhileSequenceLazy 88 88 +0.0% 1.00x
EqualStringSubstring 49 48 -2.0% 1.02x
EqualSubstringString 49 48 -2.0% 1.02x
EqualSubstringSubstring 48 48 +0.0% 1.00x
EqualSubstringSubstringGenericEquatable 48 48 +0.0% 1.00x
ErrorHandling 2395 2427 +1.3% 0.99x (?)
ExclusivityGlobal 5 5 +0.0% 1.00x
ExclusivityIndependent 2 2 +0.0% 1.00x
FilterEvenUsingReduce 1323 1321 -0.2% 1.00x (?)
FilterEvenUsingReduceInto 149 149 +0.0% 1.00x
FrequenciesUsingReduce 6802 6671 -1.9% 1.02x (?)
FrequenciesUsingReduceInto 3137 3150 +0.4% 1.00x (?)
HashTest 1786 1740 -2.6% 1.03x (?)
Histogram 323 326 +0.9% 0.99x
Integrate 217 217 +0.0% 1.00x
IterateData 1266 1264 -0.2% 1.00x
Join 373 373 +0.0% 1.00x
LazilyFilteredArrayContains 35475 36664 +3.4% 0.97x
LazilyFilteredArrays 67067 65137 -2.9% 1.03x (?)
LazilyFilteredRange 3980 3946 -0.9% 1.01x
LessSubstringSubstring 49 48 -2.0% 1.02x
LessSubstringSubstringGenericComparable 49 48 -2.0% 1.02x
LinkedList 7541 7545 +0.1% 1.00x (?)
LuhnAlgoEager 582 585 +0.5% 0.99x (?)
LuhnAlgoLazy 585 586 +0.2% 1.00x (?)
MapReduce 400 400 +0.0% 1.00x
MapReduceAnyCollection 398 398 +0.0% 1.00x
MapReduceAnyCollectionShort 2053 2051 -0.1% 1.00x (?)
MapReduceClass 3061 3057 -0.1% 1.00x
MapReduceClassShort 4648 4588 -1.3% 1.01x
MapReduceLazyCollection 13 13 +0.0% 1.00x
MapReduceLazyCollectionShort 34 34 +0.0% 1.00x
MapReduceLazySequence 86 86 +0.0% 1.00x
MapReduceSequence 471 464 -1.5% 1.02x
MapReduceShort 2032 2013 -0.9% 1.01x (?)
MapReduceShortString 21 21 +0.0% 1.00x
MapReduceString 81 81 +0.0% 1.00x
Memset 218 219 +0.5% 1.00x (?)
MonteCarloE 10279 10252 -0.3% 1.00x
MonteCarloPi 42907 42876 -0.1% 1.00x (?)
NSDictionaryCastToSwift 5407 5440 +0.6% 0.99x (?)
NSError 304 305 +0.3% 1.00x (?)
NSStringConversion 289 300 +3.8% 0.96x (?)
NibbleSort 3959 3960 +0.0% 1.00x (?)
NopDeinit 21577 21575 -0.0% 1.00x (?)
ObjectAllocation 183 183 +0.0% 1.00x
ObjectiveCBridgeFromNSArrayAnyObjectToString 38790 37200 -4.1% 1.04x
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 33646 34992 +4.0% 0.96x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 126386 122086 -3.4% 1.04x (?)
ObjectiveCBridgeFromNSSetAnyObject 59536 58474 -1.8% 1.02x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 68400 68935 +0.8% 0.99x (?)
ObjectiveCBridgeFromNSString 1300 1323 +1.8% 0.98x
ObjectiveCBridgeStubDataAppend 3902 4082 +4.6% 0.96x (?)
ObjectiveCBridgeStubDateMutation 257 257 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 26581 25963 -2.3% 1.02x (?)
ObjectiveCBridgeStubFromNSDate 4052 4054 +0.0% 1.00x (?)
ObjectiveCBridgeStubFromNSString 857 849 -0.9% 1.01x
ObjectiveCBridgeStubFromNSStringRef 159 159 +0.0% 1.00x
ObjectiveCBridgeStubNSDataAppend 2498 2539 +1.6% 0.98x (?)
ObjectiveCBridgeStubNSDateMutationRef 13547 13430 -0.9% 1.01x (?)
ObjectiveCBridgeStubToArrayOfNSString 29137 29304 +0.6% 0.99x (?)
ObjectiveCBridgeStubToNSDateRef 3426 3439 +0.4% 1.00x (?)
ObjectiveCBridgeStubToNSString 1527 1522 -0.3% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 116 115 -0.9% 1.01x
ObjectiveCBridgeStubURLAppendPath 329253 316839 -3.8% 1.04x (?)
ObjectiveCBridgeStubURLAppendPathRef 330068 343122 +4.0% 0.96x (?)
ObjectiveCBridgeToNSArray 28877 29280 +1.4% 0.99x
ObjectiveCBridgeToNSDictionary 49399 51866 +5.0% 0.95x
ObjectiveCBridgeToNSSet 42178 41662 -1.2% 1.01x (?)
ObjectiveCBridgeToNSString 1295 1293 -0.2% 1.00x
ObserverClosure 2184 2182 -0.1% 1.00x (?)
ObserverForwarderStruct 1003 1008 +0.5% 1.00x (?)
ObserverPartiallyAppliedMethod 3809 3801 -0.2% 1.00x (?)
ObserverUnappliedMethod 2375 2368 -0.3% 1.00x
OpenClose 123 126 +2.4% 0.98x
PartialApplyDynamicType 0 0 +0.0% 1.00x
Phonebook 3775 3860 +2.3% 0.98x
PointerArithmetics 31491 31523 +0.1% 1.00x
PolymorphicCalls 25 25 +0.0% 1.00x
PopFrontArray 1962 1966 +0.2% 1.00x (?)
PopFrontArrayGeneric 1963 1965 +0.1% 1.00x (?)
PopFrontUnsafePointer 9433 9574 +1.5% 0.99x (?)
PrefixAnyCollection 76 76 +0.0% 1.00x
PrefixAnyCollectionLazy 64331 65079 +1.2% 0.99x (?)
PrefixAnySeqCRangeIter 128 128 +0.0% 1.00x
PrefixAnySeqCRangeIterLazy 128 128 +0.0% 1.00x
PrefixAnySeqCntRange 71 71 +0.0% 1.00x
PrefixAnySeqCntRangeLazy 71 71 +0.0% 1.00x
PrefixAnySequence 1378 1378 +0.0% 1.00x
PrefixAnySequenceLazy 1377 1379 +0.1% 1.00x
PrefixArray 35 35 +0.0% 1.00x
PrefixArrayLazy 35 35 +0.0% 1.00x
PrefixCountableRange 35 35 +0.0% 1.00x
PrefixCountableRangeLazy 35 35 +0.0% 1.00x
PrefixSequence 1325 1325 +0.0% 1.00x
PrefixSequenceLazy 1413 1414 +0.1% 1.00x (?)
PrefixWhileAnyCollection 147 147 +0.0% 1.00x
PrefixWhileAnyCollectionLazy 106 106 +0.0% 1.00x
PrefixWhileAnySeqCRangeIter 417 415 -0.5% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 106 106 +0.0% 1.00x
PrefixWhileAnySeqCntRange 142 142 +0.0% 1.00x
PrefixWhileAnySeqCntRangeLazy 106 106 +0.0% 1.00x
PrefixWhileAnySequence 1540 1540 +0.0% 1.00x
PrefixWhileAnySequenceLazy 1392 1392 +0.0% 1.00x
PrefixWhileArray 88 88 +0.0% 1.00x
PrefixWhileArrayLazy 70 70 +0.0% 1.00x
PrefixWhileCountableRange 53 53 +0.0% 1.00x
PrefixWhileCountableRangeLazy 35 35 +0.0% 1.00x
PrefixWhileSequence 358 357 -0.3% 1.00x (?)
PrefixWhileSequenceLazy 52 52 +0.0% 1.00x
Prims 761 756 -0.7% 1.01x (?)
PrimsSplit 761 762 +0.1% 1.00x (?)
QueueConcrete 1310 1312 +0.2% 1.00x (?)
QueueGeneric 1158 1158 +0.0% 1.00x
RC4 171 171 +0.0% 1.00x
RGBHistogram 2194 2211 +0.8% 0.99x
RGBHistogramOfObjects 23548 23508 -0.2% 1.00x (?)
RangeAssignment 352 350 -0.6% 1.01x (?)
RangeIterationSigned 171 171 +0.0% 1.00x
RangeIterationSigned64 200 200 +0.0% 1.00x
RangeIterationUnsigned 200 200 +0.0% 1.00x
RangeReplaceableCollectionPlusDefault 986 990 +0.4% 1.00x
RecursiveOwnedParameter 2375 2373 -0.1% 1.00x (?)
RemoveWhereFilterInts 46 46 +0.0% 1.00x
RemoveWhereFilterString 308 313 +1.6% 0.98x
RemoveWhereFilterStrings 434 432 -0.5% 1.00x
RemoveWhereMoveInts 17 17 +0.0% 1.00x
RemoveWhereMoveStrings 520 519 -0.2% 1.00x
RemoveWhereQuadraticInts 1286 1286 +0.0% 1.00x
RemoveWhereQuadraticString 200 198 -1.0% 1.01x (?)
RemoveWhereQuadraticStrings 2755 2757 +0.1% 1.00x (?)
RemoveWhereSwapInts 19 19 +0.0% 1.00x
RemoveWhereSwapStrings 851 850 -0.1% 1.00x
ReversedArray 57 57 +0.0% 1.00x
ReversedBidirectional 15413 15385 -0.2% 1.00x (?)
ReversedDictionary 135 137 +1.5% 0.99x (?)
RomanNumbers 114471 118208 +3.3% 0.97x (?)
SequenceAlgosAnySequence 10248 10171 -0.8% 1.01x
SequenceAlgosArray 1579 1581 +0.1% 1.00x
SequenceAlgosContiguousArray 1580 1579 -0.1% 1.00x (?)
SequenceAlgosList 1354 1354 +0.0% 1.00x
SequenceAlgosRange 4296 4294 -0.0% 1.00x (?)
SequenceAlgosUnfoldSequence 1080 1080 +0.0% 1.00x
SetExclusiveOr 3468 3421 -1.4% 1.01x (?)
SetExclusiveOr_OfObjects 8798 8884 +1.0% 0.99x
SetIntersect 323 320 -0.9% 1.01x
SetIntersect_OfObjects 1755 1763 +0.5% 1.00x
SetIsSubsetOf 299 298 -0.3% 1.00x (?)
SetIsSubsetOf_OfObjects 363 363 +0.0% 1.00x
SetUnion 3154 3089 -2.1% 1.02x
SetUnion_OfObjects 7259 7232 -0.4% 1.00x (?)
SevenBoom 1529 1532 +0.2% 1.00x (?)
Sim2DArray 411 412 +0.2% 1.00x
SortLargeExistentials 6723 6771 +0.7% 0.99x
SortLettersInPlace 1123 1123 +0.0% 1.00x
SortSortedStrings 964 999 +3.6% 0.96x
SortStrings 1725 1783 +3.4% 0.97x
StackPromo 22247 22194 -0.2% 1.00x
StaticArray 5 5 +0.0% 1.00x
StrComplexWalk 1559 1559 +0.0% 1.00x
StrToInt 2075 2146 +3.4% 0.97x
StringAdder 4203 4192 -0.3% 1.00x
StringBuilder 1369 1386 +1.2% 0.99x
StringComparison_abnormal 749 740 -1.2% 1.01x (?)
StringComparison_ascii 993 1010 +1.7% 0.98x
StringComparison_emoji 832 807 -3.0% 1.03x
StringComparison_longSharedPrefix 947 904 -4.5% 1.05x
StringComparison_nonBMPSlowestPrenormal 1652 1584 -4.1% 1.04x
StringComparison_slowerPrenormal 1748 1673 -4.3% 1.04x
StringComparison_zalgo 114755 114112 -0.6% 1.01x
StringEdits 117140 117025 -0.1% 1.00x (?)
StringEnumRawValueInitialization 959 979 +2.1% 0.98x
StringEqualPointerComparison 314 315 +0.3% 1.00x
StringFromLongWholeSubstring 21 21 +0.0% 1.00x
StringFromLongWholeSubstringGeneric 10 10 +0.0% 1.00x
StringHasPrefixAscii 1318 1346 +2.1% 0.98x
StringHasPrefixUnicode 27693 27806 +0.4% 1.00x (?)
StringHasSuffixAscii 1433 1460 +1.9% 0.98x
StringHasSuffixUnicode 84658 84566 -0.1% 1.00x (?)
StringInterpolation 10810 10839 +0.3% 1.00x (?)
StringMatch 8357 8426 +0.8% 0.99x
StringRemoveDupes 1199 1192 -0.6% 1.01x (?)
StringUTF16Builder 2372 2346 -1.1% 1.01x (?)
StringWalk 1456 1473 +1.2% 0.99x
StringWithCString 43045 43174 +0.3% 1.00x
StringWordBuilder 1719 1771 +3.0% 0.97x
StringWordBuilderReservingCapacity 1274 1319 +3.5% 0.97x
SubstringComparable 48 48 +0.0% 1.00x
SubstringEqualString 537 535 -0.4% 1.00x (?)
SubstringEquatable 1362 1374 +0.9% 0.99x
SubstringFromLongString 10 10 +0.0% 1.00x
SubstringFromLongStringGeneric 69 69 +0.0% 1.00x
SuffixAnyCollection 28 28 +0.0% 1.00x
SuffixAnyCollectionLazy 21368 21747 +1.8% 0.98x
SuffixAnySeqCRangeIter 3806 3821 +0.4% 1.00x (?)
SuffixAnySeqCRangeIterLazy 3820 3820 +0.0% 1.00x
SuffixAnySeqCntRange 23 23 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 23 23 +0.0% 1.00x
SuffixAnySequence 5101 5108 +0.1% 1.00x
SuffixAnySequenceLazy 5207 5200 -0.1% 1.00x (?)
SuffixCountableRange 11 11 +0.0% 1.00x
SuffixCountableRangeLazy 12 12 +0.0% 1.00x
SuffixSequence 3743 3752 +0.2% 1.00x (?)
SuffixSequenceLazy 3737 3750 +0.3% 1.00x
SumUsingReduce 96 96 +0.0% 1.00x
SumUsingReduceInto 96 96 +0.0% 1.00x
SuperChars 42554 42543 -0.0% 1.00x (?)
TwoSum 994 993 -0.1% 1.00x (?)
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode 317 322 +1.6% 0.98x
Walsh 429 418 -2.6% 1.03x
WordCountHistogramASCII 7364 7447 +1.1% 0.99x
WordCountUniqueASCII 1827 1795 -1.8% 1.02x (?)
WordSplitASCII 22047 21406 -2.9% 1.03x (?)
WordSplitUTF16 23515 23311 -0.9% 1.01x (?)
XorLoop 395 395 +0.0% 1.00x

Unoptimized (Onone)

Regression (9)
TEST OLD NEW DELTA SPEEDUP
RangeIterationSigned64 39169 43696 +11.6% 0.90x (?)
DropWhileAnySeqCRangeIterLazy 18885 20987 +11.1% 0.90x (?)
StringEqualPointerComparison 3361 3619 +7.7% 0.93x
ObjectiveCBridgeFromNSArrayAnyObjectForced 8354 8994 +7.7% 0.93x (?)
StackPromo 90682 97254 +7.2% 0.93x
RangeIterationUnsigned 34686 36910 +6.4% 0.94x
StringWalk 12381 13159 +6.3% 0.94x
CStringShortAscii 7556 7992 +5.8% 0.95x (?)
ErrorHandling 6776 7150 +5.5% 0.95x (?)
Improvement (9)
TEST OLD NEW DELTA SPEEDUP
ArrayOfPOD 848 760 -10.4% 1.12x
CStringLongNonAscii 2311 2076 -10.2% 1.11x
ObjectiveCBridgeFromNSArrayAnyObjectToString 43531 39393 -9.5% 1.11x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 7096 6528 -8.0% 1.09x (?)
SortStringsUnicode 3032 2844 -6.2% 1.07x
SuperChars 132584 124390 -6.2% 1.07x
WordCountHistogramUTF16 73961 69459 -6.1% 1.06x (?)
Dictionary3OfObjects 2413 2272 -5.8% 1.06x (?)
DropWhileAnyCollectionLazy 19578 18631 -4.8% 1.05x
No Changes (360)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 5077 5105 +0.6% 0.99x (?)
AnyHashableWithAClass 86984 87488 +0.6% 0.99x
Array2D 631181 631525 +0.1% 1.00x (?)
ArrayAppend 4669 4672 +0.1% 1.00x (?)
ArrayAppendArrayOfInt 863 855 -0.9% 1.01x (?)
ArrayAppendAscii 40403 40483 +0.2% 1.00x (?)
ArrayAppendFromGeneric 871 867 -0.5% 1.00x (?)
ArrayAppendGenericStructs 1504 1502 -0.1% 1.00x (?)
ArrayAppendLatin1 63358 63918 +0.9% 0.99x
ArrayAppendLazyMap 167238 167755 +0.3% 1.00x
ArrayAppendOptionals 1502 1504 +0.1% 1.00x (?)
ArrayAppendRepeatCol 170187 169696 -0.3% 1.00x
ArrayAppendReserved 4394 4393 -0.0% 1.00x (?)
ArrayAppendSequence 147959 143729 -2.9% 1.03x
ArrayAppendStrings 15400 15406 +0.0% 1.00x (?)
ArrayAppendToFromGeneric 864 863 -0.1% 1.00x (?)
ArrayAppendToGeneric 870 868 -0.2% 1.00x (?)
ArrayAppendUTF16 63401 63561 +0.3% 1.00x (?)
ArrayInClass 6249 6256 +0.1% 1.00x (?)
ArrayLiteral 1788 1783 -0.3% 1.00x
ArrayOfGenericPOD2 1130 1129 -0.1% 1.00x
ArrayOfGenericRef 10094 10104 +0.1% 1.00x (?)
ArrayOfRef 9368 9315 -0.6% 1.01x (?)
ArrayPlusEqualArrayOfInt 865 860 -0.6% 1.01x
ArrayPlusEqualFiveElementCollection 240352 234736 -2.3% 1.02x (?)
ArrayPlusEqualSingleElementCollection 235531 230683 -2.1% 1.02x
ArrayPlusEqualThreeElements 9519 9440 -0.8% 1.01x (?)
ArraySubscript 114245 115180 +0.8% 0.99x (?)
ArrayValueProp 3643 3618 -0.7% 1.01x
ArrayValueProp2 16721 16518 -1.2% 1.01x (?)
ArrayValueProp3 4117 4111 -0.1% 1.00x (?)
ArrayValueProp4 4064 4070 +0.1% 1.00x (?)
BinaryFloatingPointConversionFromBinaryInteger 6181 6171 -0.2% 1.00x (?)
BitCount 7653 7656 +0.0% 1.00x (?)
ByteSwap 9133 9147 +0.2% 1.00x (?)
COWTree 11516 11602 +0.7% 0.99x (?)
CSVParsing 2423063 2431699 +0.4% 1.00x (?)
CSVParsingAlt 1308232 1320548 +0.9% 0.99x (?)
CSVParsingAltIndices 2388693 2367041 -0.9% 1.01x (?)
CStringLongAscii 4605 4763 +3.4% 0.97x
Calculator 1458 1529 +4.9% 0.95x
CaptureProp 245817 246847 +0.4% 1.00x
CharIndexing_ascii_unicodeScalars 403449 406488 +0.8% 0.99x (?)
CharIndexing_ascii_unicodeScalars_Backwards 427534 425222 -0.5% 1.01x (?)
CharIndexing_chinese_unicodeScalars 301333 300488 -0.3% 1.00x (?)
CharIndexing_chinese_unicodeScalars_Backwards 327018 318402 -2.6% 1.03x (?)
CharIndexing_japanese_unicodeScalars 474450 487744 +2.8% 0.97x (?)
CharIndexing_japanese_unicodeScalars_Backwards 501472 501965 +0.1% 1.00x (?)
CharIndexing_korean_unicodeScalars 391557 398464 +1.8% 0.98x (?)
CharIndexing_korean_unicodeScalars_Backwards 424728 437315 +3.0% 0.97x
CharIndexing_punctuatedJapanese_unicodeScalars 69127 69357 +0.3% 1.00x (?)
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 73264 74101 +1.1% 0.99x (?)
CharIndexing_punctuated_unicodeScalars 90585 87682 -3.2% 1.03x
CharIndexing_punctuated_unicodeScalars_Backwards 93865 91211 -2.8% 1.03x (?)
CharIndexing_russian_unicodeScalars 335735 332476 -1.0% 1.01x (?)
CharIndexing_russian_unicodeScalars_Backwards 350320 350890 +0.2% 1.00x (?)
CharIndexing_tweet_unicodeScalars 782471 799836 +2.2% 0.98x (?)
CharIndexing_tweet_unicodeScalars_Backwards 857847 834928 -2.7% 1.03x (?)
CharIndexing_utf16_unicodeScalars 325773 325741 -0.0% 1.00x (?)
CharIndexing_utf16_unicodeScalars_Backwards 349222 351157 +0.6% 0.99x (?)
CharIteration_ascii_unicodeScalars 156022 157354 +0.9% 0.99x
CharIteration_ascii_unicodeScalars_Backwards 333572 326784 -2.0% 1.02x (?)
CharIteration_chinese_unicodeScalars 119162 118860 -0.3% 1.00x (?)
CharIteration_chinese_unicodeScalars_Backwards 256957 249086 -3.1% 1.03x (?)
CharIteration_japanese_unicodeScalars 187438 187666 +0.1% 1.00x (?)
CharIteration_japanese_unicodeScalars_Backwards 404730 411991 +1.8% 0.98x (?)
CharIteration_korean_unicodeScalars 151970 152833 +0.6% 0.99x (?)
CharIteration_korean_unicodeScalars_Backwards 331874 320468 -3.4% 1.04x (?)
CharIteration_punctuatedJapanese_unicodeScalars 28566 28625 +0.2% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 58776 58210 -1.0% 1.01x (?)
CharIteration_punctuated_unicodeScalars 35659 35238 -1.2% 1.01x (?)
CharIteration_punctuated_unicodeScalars_Backwards 73199 73739 +0.7% 0.99x (?)
CharIteration_russian_unicodeScalars 130287 130817 +0.4% 1.00x (?)
CharIteration_russian_unicodeScalars_Backwards 280623 276350 -1.5% 1.02x (?)
CharIteration_tweet_unicodeScalars 307496 310100 +0.8% 0.99x
CharIteration_tweet_unicodeScalars_Backwards 663268 656926 -1.0% 1.01x (?)
CharIteration_utf16_unicodeScalars 138340 135498 -2.1% 1.02x (?)
CharIteration_utf16_unicodeScalars_Backwards 287200 277193 -3.5% 1.04x (?)
CharacterLiteralsLarge 5910 5906 -0.1% 1.00x (?)
CharacterLiteralsSmall 668 692 +3.6% 0.97x
CharacterPropertiesFetch 5540 5476 -1.2% 1.01x
CharacterPropertiesPrecomputed 4352 4301 -1.2% 1.01x (?)
CharacterPropertiesStashed 2382 2452 +2.9% 0.97x
CharacterPropertiesStashedMemo 5189 5194 +0.1% 1.00x (?)
Chars 39620 39550 -0.2% 1.00x (?)
ClassArrayGetter 992 985 -0.7% 1.01x (?)
Combos 2112 2106 -0.3% 1.00x (?)
DictOfArraysToArrayOfDicts 3360 3419 +1.8% 0.98x (?)
Dictionary 2606 2617 +0.4% 1.00x (?)
Dictionary2 3064 2929 -4.4% 1.05x (?)
Dictionary2OfObjects 5576 5645 +1.2% 0.99x (?)
Dictionary3 1349 1334 -1.1% 1.01x
Dictionary4 1195 1185 -0.8% 1.01x (?)
Dictionary4OfObjects 1824 1835 +0.6% 0.99x (?)
DictionaryBridge 2138 2224 +4.0% 0.96x (?)
DictionaryGroup 4194 4185 -0.2% 1.00x (?)
DictionaryGroupOfObjects 7561 7437 -1.6% 1.02x (?)
DictionaryLiteral 8598 8622 +0.3% 1.00x (?)
DictionaryOfObjects 6307 6181 -2.0% 1.02x (?)
DictionaryRemove 18378 18409 +0.2% 1.00x (?)
DictionaryRemoveOfObjects 49921 50574 +1.3% 0.99x
DictionarySubscriptDefaultMutation 2096 2096 +0.0% 1.00x
DictionarySubscriptDefaultMutationArray 2341 2343 +0.1% 1.00x (?)
DictionarySubscriptDefaultMutationArrayOfObjects 8986 9117 +1.5% 0.99x (?)
DictionarySubscriptDefaultMutationOfObjects 5685 5544 -2.5% 1.03x (?)
DictionarySwap 5238 5220 -0.3% 1.00x (?)
DictionarySwapOfObjects 22477 22205 -1.2% 1.01x (?)
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollection 13795 13685 -0.8% 1.01x
DropFirstAnyCollectionLazy 109295 111928 +2.4% 0.98x (?)
DropFirstAnySeqCRangeIter 20272 20330 +0.3% 1.00x (?)
DropFirstAnySeqCRangeIterLazy 20350 20348 -0.0% 1.00x (?)
DropFirstAnySeqCntRange 13766 13701 -0.5% 1.00x (?)
DropFirstAnySeqCntRangeLazy 13746 13680 -0.5% 1.00x (?)
DropFirstAnySequence 10997 11036 +0.4% 1.00x (?)
DropFirstAnySequenceLazy 10966 11136 +1.6% 0.98x
DropFirstArray 4038 3964 -1.8% 1.02x (?)
DropFirstArrayLazy 29724 29689 -0.1% 1.00x (?)
DropFirstCountableRange 325 325 +0.0% 1.00x
DropFirstCountableRangeLazy 30446 31217 +2.5% 0.98x (?)
DropFirstSequence 10487 10581 +0.9% 0.99x
DropFirstSequenceLazy 10503 10586 +0.8% 0.99x
DropLastAnyCollection 4635 4623 -0.3% 1.00x (?)
DropLastAnyCollectionLazy 36743 37820 +2.9% 0.97x (?)
DropLastAnySeqCRangeIter 37241 37399 +0.4% 1.00x (?)
DropLastAnySeqCRangeIterLazy 37350 37526 +0.5% 1.00x (?)
DropLastAnySeqCntRange 4661 4597 -1.4% 1.01x
DropLastAnySeqCntRangeLazy 4613 4576 -0.8% 1.01x (?)
DropLastAnySequence 28913 29112 +0.7% 0.99x
DropLastAnySequenceLazy 28646 28999 +1.2% 0.99x
DropLastCountableRange 112 112 +0.0% 1.00x
DropLastCountableRangeLazy 10028 10502 +4.7% 0.95x
DropLastSequence 28800 29311 +1.8% 0.98x
DropLastSequenceLazy 28553 28874 +1.1% 0.99x
DropWhileAnyCollection 17407 17289 -0.7% 1.01x
DropWhileAnySeqCRangeIter 25446 25342 -0.4% 1.00x (?)
DropWhileAnySeqCntRange 17434 17366 -0.4% 1.00x
DropWhileAnySeqCntRangeLazy 18864 18871 +0.0% 1.00x (?)
DropWhileAnySequence 12030 12181 +1.3% 0.99x
DropWhileAnySequenceLazy 10112 10126 +0.1% 1.00x
DropWhileArrayLazy 13693 13593 -0.7% 1.01x
DropWhileCountableRange 4018 4004 -0.3% 1.00x
DropWhileCountableRangeLazy 18662 18644 -0.1% 1.00x (?)
DropWhileSequence 11889 11986 +0.8% 0.99x
DropWhileSequenceLazy 9722 9821 +1.0% 0.99x (?)
EqualStringSubstring 93 91 -2.2% 1.02x
EqualSubstringString 94 94 +0.0% 1.00x
EqualSubstringSubstring 92 92 +0.0% 1.00x
EqualSubstringSubstringGenericEquatable 98 99 +1.0% 0.99x
ExclusivityGlobal 183 189 +3.3% 0.97x
ExclusivityIndependent 68 71 +4.4% 0.96x (?)
FilterEvenUsingReduce 3640 3641 +0.0% 1.00x (?)
FilterEvenUsingReduceInto 1913 1911 -0.1% 1.00x (?)
FrequenciesUsingReduce 10403 10453 +0.5% 1.00x (?)
FrequenciesUsingReduceInto 5386 5299 -1.6% 1.02x (?)
Hanoi 19757 20249 +2.5% 0.98x (?)
HashTest 21556 21993 +2.0% 0.98x
Histogram 6612 6484 -1.9% 1.02x
Integrate 797 813 +2.0% 0.98x
IterateData 5901 5805 -1.6% 1.02x
Join 1108 1107 -0.1% 1.00x (?)
LazilyFilteredArrayContains 769345 770340 +0.1% 1.00x (?)
LazilyFilteredArrays 1451816 1456529 +0.3% 1.00x (?)
LazilyFilteredRange 481553 474011 -1.6% 1.02x
LessSubstringSubstring 92 92 +0.0% 1.00x
LessSubstringSubstringGenericComparable 97 97 +0.0% 1.00x
LinkedList 32135 32169 +0.1% 1.00x (?)
LuhnAlgoEager 4803 4865 +1.3% 0.99x (?)
LuhnAlgoLazy 4878 4997 +2.4% 0.98x (?)
MapReduce 25571 25642 +0.3% 1.00x
MapReduceAnyCollection 25622 25614 -0.0% 1.00x (?)
MapReduceAnyCollectionShort 36560 36940 +1.0% 0.99x (?)
MapReduceClass 29984 30225 +0.8% 0.99x (?)
MapReduceClassShort 41185 41632 +1.1% 0.99x (?)
MapReduceLazyCollection 22973 23089 +0.5% 0.99x
MapReduceLazyCollectionShort 32644 33723 +3.3% 0.97x (?)
MapReduceLazySequence 17766 18134 +2.1% 0.98x
MapReduceSequence 28969 29408 +1.5% 0.99x
MapReduceShort 36884 37530 +1.8% 0.98x
MapReduceShortString 221 231 +4.5% 0.96x (?)
MapReduceString 1796 1805 +0.5% 1.00x (?)
Memset 44722 44785 +0.1% 1.00x
MonteCarloE 1226148 1230123 +0.3% 1.00x
MonteCarloPi 5525817 5558454 +0.6% 0.99x (?)
NSDictionaryCastToSwift 6620 6625 +0.1% 1.00x (?)
NSError 713 714 +0.1% 1.00x (?)
NSStringConversion 332 343 +3.3% 0.97x
NibbleSort 407787 407832 +0.0% 1.00x (?)
NopDeinit 163693 169239 +3.4% 0.97x
ObjectAllocation 1369 1373 +0.3% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObject 25258 24665 -2.3% 1.02x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 38210 36475 -4.5% 1.05x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 129908 125899 -3.1% 1.03x (?)
ObjectiveCBridgeFromNSSetAnyObject 65029 66300 +2.0% 0.98x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 74677 76763 +2.8% 0.97x (?)
ObjectiveCBridgeFromNSString 3155 3103 -1.6% 1.02x (?)
ObjectiveCBridgeFromNSStringForced 2708 2710 +0.1% 1.00x (?)
ObjectiveCBridgeStubDataAppend 4388 4381 -0.2% 1.00x (?)
ObjectiveCBridgeStubDateMutation 640 652 +1.9% 0.98x (?)
ObjectiveCBridgeStubFromArrayOfNSString 26915 26210 -2.6% 1.03x (?)
ObjectiveCBridgeStubFromNSDate 4981 4934 -0.9% 1.01x
ObjectiveCBridgeStubFromNSString 889 904 +1.7% 0.98x
ObjectiveCBridgeStubFromNSStringRef 197 196 -0.5% 1.01x
ObjectiveCBridgeStubNSDataAppend 3058 3020 -1.2% 1.01x (?)
ObjectiveCBridgeStubNSDateMutationRef 16623 17086 +2.8% 0.97x
ObjectiveCBridgeStubToArrayOfNSString 28944 29034 +0.3% 1.00x (?)
ObjectiveCBridgeStubToNSDate 16101 16697 +3.7% 0.96x (?)
ObjectiveCBridgeStubToNSDateRef 3452 3479 +0.8% 0.99x (?)
ObjectiveCBridgeStubToNSString 1577 1573 -0.3% 1.00x
ObjectiveCBridgeStubToNSStringRef 159 159 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 336013 340383 +1.3% 0.99x (?)
ObjectiveCBridgeStubURLAppendPathRef 346072 335487 -3.1% 1.03x (?)
ObjectiveCBridgeToNSArray 29364 29511 +0.5% 1.00x (?)
ObjectiveCBridgeToNSDictionary 50755 51914 +2.3% 0.98x (?)
ObjectiveCBridgeToNSSet 42236 42579 +0.8% 0.99x (?)
ObjectiveCBridgeToNSString 1350 1348 -0.1% 1.00x (?)
ObserverClosure 6315 6348 +0.5% 0.99x (?)
ObserverForwarderStruct 4507 4489 -0.4% 1.00x
ObserverPartiallyAppliedMethod 7944 7920 -0.3% 1.00x (?)
ObserverUnappliedMethod 8250 8222 -0.3% 1.00x (?)
OpenClose 547 532 -2.7% 1.03x
PartialApplyDynamicType 41940 41850 -0.2% 1.00x (?)
Phonebook 19925 20094 +0.8% 0.99x
PointerArithmetics 120377 120233 -0.1% 1.00x (?)
PolymorphicCalls 6109 6245 +2.2% 0.98x (?)
PopFrontArray 4609 4661 +1.1% 0.99x
PopFrontArrayGeneric 5771 5828 +1.0% 0.99x (?)
PopFrontUnsafePointer 11262 11276 +0.1% 1.00x (?)
PrefixAnyCollection 13761 13806 +0.3% 1.00x (?)
PrefixAnyCollectionLazy 108142 111512 +3.1% 0.97x (?)
PrefixAnySeqCRangeIter 16507 16595 +0.5% 0.99x (?)
PrefixAnySeqCRangeIterLazy 16341 16409 +0.4% 1.00x (?)
PrefixAnySeqCntRange 13874 13766 -0.8% 1.01x
PrefixAnySeqCntRangeLazy 13773 13678 -0.7% 1.01x
PrefixAnySequence 9215 9203 -0.1% 1.00x (?)
PrefixAnySequenceLazy 9125 9190 +0.7% 0.99x
PrefixArray 3994 3963 -0.8% 1.01x (?)
PrefixArrayLazy 29795 29782 -0.0% 1.00x (?)
PrefixCountableRange 326 325 -0.3% 1.00x
PrefixCountableRangeLazy 30327 31544 +4.0% 0.96x (?)
PrefixSequence 8899 8978 +0.9% 0.99x
PrefixSequenceLazy 8781 8877 +1.1% 0.99x
PrefixWhileAnyCollection 24605 24521 -0.3% 1.00x
PrefixWhileAnyCollectionLazy 15813 15741 -0.5% 1.00x
PrefixWhileAnySeqCRangeIter 32699 32570 -0.4% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 15750 15696 -0.3% 1.00x (?)
PrefixWhileAnySeqCntRange 24591 24473 -0.5% 1.00x (?)
PrefixWhileAnySeqCntRangeLazy 16006 15875 -0.8% 1.01x
PrefixWhileAnySequence 25728 26126 +1.5% 0.98x
PrefixWhileAnySequenceLazy 9347 9381 +0.4% 1.00x
PrefixWhileArray 10818 10802 -0.1% 1.00x (?)
PrefixWhileArrayLazy 11911 11955 +0.4% 1.00x
PrefixWhileCountableRange 11216 11164 -0.5% 1.00x
PrefixWhileCountableRangeLazy 15537 15615 +0.5% 1.00x (?)
PrefixWhileSequence 25713 25963 +1.0% 0.99x
PrefixWhileSequenceLazy 8944 9031 +1.0% 0.99x
Prims 9759 9671 -0.9% 1.01x
PrimsSplit 9590 9650 +0.6% 0.99x (?)
QueueConcrete 14924 14992 +0.5% 1.00x
QueueGeneric 19028 19190 +0.9% 0.99x
RC4 16818 16920 +0.6% 0.99x
RGBHistogram 26016 25952 -0.2% 1.00x (?)
RGBHistogramOfObjects 96168 96363 +0.2% 1.00x (?)
RangeAssignment 2223 2249 +1.2% 0.99x
RangeIterationSigned 16513 17054 +3.3% 0.97x (?)
RangeReplaceableCollectionPlusDefault 8140 8266 +1.5% 0.98x
RecursiveOwnedParameter 7971 8040 +0.9% 0.99x
RemoveWhereFilterInts 2037 2053 +0.8% 0.99x
RemoveWhereFilterString 1454 1463 +0.6% 0.99x
RemoveWhereFilterStrings 2866 2863 -0.1% 1.00x
RemoveWhereMoveInts 3348 3343 -0.1% 1.00x
RemoveWhereMoveStrings 4048 4035 -0.3% 1.00x
RemoveWhereQuadraticInts 7699 7677 -0.3% 1.00x (?)
RemoveWhereQuadraticString 2285 2292 +0.3% 1.00x (?)
RemoveWhereQuadraticStrings 9384 9367 -0.2% 1.00x (?)
RemoveWhereSwapInts 5983 5990 +0.1% 1.00x (?)
RemoveWhereSwapStrings 6729 6738 +0.1% 1.00x
ReversedArray 13912 13819 -0.7% 1.01x
ReversedBidirectional 42356 42296 -0.1% 1.00x (?)
ReversedDictionary 22737 22875 +0.6% 0.99x
RomanNumbers 1236552 1245471 +0.7% 0.99x (?)
SequenceAlgosAnySequence 12617 12594 -0.2% 1.00x (?)
SequenceAlgosArray 773617 772080 -0.2% 1.00x (?)
SequenceAlgosContiguousArray 319109 324043 +1.5% 0.98x
SequenceAlgosList 8142 8146 +0.0% 1.00x (?)
SequenceAlgosRange 1080359 1076617 -0.3% 1.00x (?)
SequenceAlgosUnfoldSequence 5606 5631 +0.4% 1.00x
SetExclusiveOr 17211 17226 +0.1% 1.00x (?)
SetExclusiveOr_OfObjects 41865 41710 -0.4% 1.00x (?)
SetIntersect 8202 8376 +2.1% 0.98x
SetIntersect_OfObjects 12163 12214 +0.4% 1.00x (?)
SetIsSubsetOf 1359 1360 +0.1% 1.00x (?)
SetIsSubsetOf_OfObjects 1579 1565 -0.9% 1.01x (?)
SetUnion 11827 11798 -0.2% 1.00x
SetUnion_OfObjects 29370 29247 -0.4% 1.00x
SevenBoom 1679 1668 -0.7% 1.01x (?)
Sim2DArray 43538 43724 +0.4% 1.00x
SortLargeExistentials 15418 15437 +0.1% 1.00x
SortLettersInPlace 2646 2685 +1.5% 0.99x
SortSortedStrings 1029 1056 +2.6% 0.97x
SortStrings 2005 2062 +2.8% 0.97x
StaticArray 2646 2701 +2.1% 0.98x (?)
StrComplexWalk 6464 6662 +3.1% 0.97x
StrToInt 57840 59285 +2.5% 0.98x
StringAdder 4690 4699 +0.2% 1.00x (?)
StringBuilder 7097 7114 +0.2% 1.00x (?)
StringBuilderLong 2709 2754 +1.7% 0.98x (?)
StringComparison_abnormal 1329 1319 -0.8% 1.01x (?)
StringComparison_ascii 9760 9774 +0.1% 1.00x (?)
StringComparison_emoji 2123 2110 -0.6% 1.01x (?)
StringComparison_fastPrenormal 5455 5320 -2.5% 1.03x
StringComparison_latin1 4240 4131 -2.6% 1.03x
StringComparison_longSharedPrefix 2534 2492 -1.7% 1.02x
StringComparison_nonBMPSlowestPrenormal 3939 3901 -1.0% 1.01x (?)
StringComparison_slowerPrenormal 4434 4373 -1.4% 1.01x
StringComparison_zalgo 116705 115944 -0.7% 1.01x (?)
StringEdits 334123 340352 +1.9% 0.98x (?)
StringEnumRawValueInitialization 17956 17524 -2.4% 1.02x (?)
StringFromLongWholeSubstring 24 24 +0.0% 1.00x
StringFromLongWholeSubstringGeneric 205 205 +0.0% 1.00x
StringHasPrefixAscii 3073 3094 +0.7% 0.99x
StringHasPrefixUnicode 29490 29256 -0.8% 1.01x (?)
StringHasSuffixAscii 3125 3173 +1.5% 0.98x
StringHasSuffixUnicode 86673 86371 -0.3% 1.00x (?)
StringInterpolation 14206 13655 -3.9% 1.04x (?)
StringMatch 34049 34660 +1.8% 0.98x (?)
StringRemoveDupes 1370 1369 -0.1% 1.00x (?)
StringUTF16Builder 7953 7962 +0.1% 1.00x (?)
StringWithCString 37589 39437 +4.9% 0.95x
StringWordBuilder 2705 2697 -0.3% 1.00x
StringWordBuilderReservingCapacity 2541 2539 -0.1% 1.00x (?)
SubstringComparable 2047 2067 +1.0% 0.99x
SubstringEqualString 1889 1916 +1.4% 0.99x (?)
SubstringEquatable 5969 5953 -0.3% 1.00x (?)
SubstringFromLongString 25 25 +0.0% 1.00x
SubstringFromLongStringGeneric 106 106 +0.0% 1.00x
SuffixAnyCollection 4610 4613 +0.1% 1.00x (?)
SuffixAnyCollectionLazy 36323 36352 +0.1% 1.00x (?)
SuffixAnySeqCRangeIter 33236 33368 +0.4% 1.00x
SuffixAnySeqCRangeIterLazy 33409 33571 +0.5% 1.00x (?)
SuffixAnySeqCntRange 4632 4578 -1.2% 1.01x
SuffixAnySeqCntRangeLazy 4610 4589 -0.5% 1.00x
SuffixAnySequence 24966 25334 +1.5% 0.99x
SuffixAnySequenceLazy 24897 25302 +1.6% 0.98x
SuffixCountableRange 112 112 +0.0% 1.00x
SuffixCountableRangeLazy 10120 10416 +2.9% 0.97x (?)
SuffixSequence 24971 25461 +2.0% 0.98x
SuffixSequenceLazy 24804 25224 +1.7% 0.98x
SumUsingReduce 164160 163944 -0.1% 1.00x
SumUsingReduceInto 157354 156832 -0.3% 1.00x (?)
TwoSum 3984 3997 +0.3% 1.00x (?)
TypeFlood 156 162 +3.8% 0.96x (?)
UTF8Decode 29926 29812 -0.4% 1.00x
Walsh 12009 12007 -0.0% 1.00x (?)
WordCountHistogramASCII 46551 47892 +2.9% 0.97x
WordCountUniqueASCII 8373 8200 -2.1% 1.02x
WordCountUniqueUTF16 27539 27661 +0.4% 1.00x (?)
WordSplitASCII 26277 26164 -0.4% 1.00x (?)
WordSplitUTF16 27911 26865 -3.7% 1.04x (?)
XorLoop 23505 23626 +0.5% 0.99x
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

@lancep
Copy link
Contributor

lancep commented Feb 18, 2018

@swift-ci please test

@lancep lancep changed the title [DO NOT MERGE] WIP: Attempt at re-organizing a little bit of comparison code [stdlib] WIP: Attempt at re-organizing a little bit of comparison code Feb 19, 2018
@milseman milseman changed the title [stdlib] WIP: Attempt at re-organizing a little bit of comparison code [String] Bug fix for opaque slicing Feb 19, 2018
@milseman milseman changed the title [String] Bug fix for opaque slicing [String] Bug fix for opaque slicing in comparison Feb 19, 2018
@milseman
Copy link
Member Author

@swift-ci please test

@lancep
Copy link
Contributor

lancep commented Feb 19, 2018

@swift-ci please smoke benchmark

@swift-ci
Copy link
Contributor

Build failed
Swift Test Linux Platform
Git Sha - 588e296

* Ditched the simple/complex test distinction as they all pass now

* fixed indentation
@milseman
Copy link
Member Author

@swift-ci please test

@swift-ci
Copy link
Contributor

Build failed
Swift Test OS X Platform
Git Sha - 7cc222e

@swift-ci
Copy link
Contributor

Build failed
Swift Test Linux Platform
Git Sha - 7cc222e

@swift-ci
Copy link
Contributor

Build comment file:

Optimized (O)

Regression (4)
TEST OLD NEW DELTA SPEEDUP
WordCountHistogramUTF16 24782 27553 +11.2% 0.90x (?)
Hanoi 3359 3616 +7.7% 0.93x
ObjectiveCBridgeStubFromArrayOfNSString 26324 28201 +7.1% 0.93x (?)
ObjectiveCBridgeStubURLAppendPath 323038 342375 +6.0% 0.94x
Improvement (10)
TEST OLD NEW DELTA SPEEDUP
StringBuilderLong 1606 1166 -27.4% 1.38x
StringComparison_latin1 649 582 -10.3% 1.12x
StringComparison_fastPrenormal 837 764 -8.7% 1.10x
StringComparison_slowerPrenormal 1760 1612 -8.4% 1.09x
WordCountUniqueUTF16 19508 18063 -7.4% 1.08x
ObjectiveCBridgeFromNSArrayAnyObject 20746 19347 -6.7% 1.07x (?)
StringComparison_emoji 833 784 -5.9% 1.06x
StringComparison_nonBMPSlowestPrenormal 1647 1556 -5.5% 1.06x
ArrayAppendReserved 801 761 -5.0% 1.05x
SortStringsUnicode 2701 2572 -4.8% 1.05x
No Changes (364)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 3634 3628 -0.2% 1.00x (?)
AnyHashableWithAClass 70811 70440 -0.5% 1.01x (?)
Array2D 2521 2517 -0.2% 1.00x (?)
ArrayAppend 1068 1021 -4.4% 1.05x
ArrayAppendArrayOfInt 801 799 -0.2% 1.00x
ArrayAppendAscii 13085 13344 +2.0% 0.98x
ArrayAppendFromGeneric 800 806 +0.7% 0.99x (?)
ArrayAppendGenericStructs 1431 1433 +0.1% 1.00x (?)
ArrayAppendLatin1 37845 37776 -0.2% 1.00x
ArrayAppendLazyMap 1333 1346 +1.0% 0.99x
ArrayAppendOptionals 1430 1428 -0.1% 1.00x (?)
ArrayAppendRepeatCol 1338 1339 +0.1% 1.00x (?)
ArrayAppendSequence 1137 1137 +0.0% 1.00x
ArrayAppendStrings 15321 15321 +0.0% 1.00x
ArrayAppendToFromGeneric 801 801 +0.0% 1.00x
ArrayAppendToGeneric 802 804 +0.2% 1.00x
ArrayAppendUTF16 36349 37486 +3.1% 0.97x
ArrayInClass 86 86 +0.0% 1.00x
ArrayLiteral 0 0 +0.0% 1.00x
ArrayOfGenericPOD2 150 151 +0.7% 0.99x
ArrayOfGenericRef 4398 4385 -0.3% 1.00x
ArrayOfPOD 184 184 +0.0% 1.00x
ArrayOfRef 4349 4349 +0.0% 1.00x
ArrayPlusEqualArrayOfInt 800 799 -0.1% 1.00x (?)
ArrayPlusEqualFiveElementCollection 5635 5491 -2.6% 1.03x
ArrayPlusEqualSingleElementCollection 1065 1024 -3.8% 1.04x
ArrayPlusEqualThreeElements 1658 1654 -0.2% 1.00x (?)
ArraySubscript 1523 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
BinaryFloatingPointConversionFromBinaryInteger 38 38 +0.0% 1.00x
BitCount 211 202 -4.3% 1.04x
ByteSwap 100 97 -3.0% 1.03x (?)
COWTree 3570 3611 +1.1% 0.99x (?)
CSVParsing 761443 758960 -0.3% 1.00x (?)
CSVParsingAlt 720928 725870 +0.7% 0.99x (?)
CSVParsingAltIndices 360209 358535 -0.5% 1.00x
CStringLongAscii 4774 4772 -0.0% 1.00x (?)
CStringLongNonAscii 2163 2081 -3.8% 1.04x
CStringShortAscii 4722 4727 +0.1% 1.00x (?)
Calculator 650 639 -1.7% 1.02x
CaptureProp 3919 3928 +0.2% 1.00x (?)
CharIndexing_ascii_unicodeScalars 15416 15413 -0.0% 1.00x (?)
CharIndexing_ascii_unicodeScalars_Backwards 14341 14351 +0.1% 1.00x (?)
CharIndexing_chinese_unicodeScalars 11680 11677 -0.0% 1.00x (?)
CharIndexing_chinese_unicodeScalars_Backwards 10861 10880 +0.2% 1.00x
CharIndexing_japanese_unicodeScalars 18454 18475 +0.1% 1.00x (?)
CharIndexing_japanese_unicodeScalars_Backwards 17165 17174 +0.1% 1.00x (?)
CharIndexing_korean_unicodeScalars 14941 14955 +0.1% 1.00x
CharIndexing_korean_unicodeScalars_Backwards 13905 13908 +0.0% 1.00x (?)
CharIndexing_punctuatedJapanese_unicodeScalars 2785 2790 +0.2% 1.00x
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 2611 2613 +0.1% 1.00x (?)
CharIndexing_punctuated_unicodeScalars 3488 3491 +0.1% 1.00x
CharIndexing_punctuated_unicodeScalars_Backwards 3265 3269 +0.1% 1.00x
CharIndexing_russian_unicodeScalars 12844 12839 -0.0% 1.00x (?)
CharIndexing_russian_unicodeScalars_Backwards 11950 11963 +0.1% 1.00x (?)
CharIndexing_tweet_unicodeScalars 30338 30301 -0.1% 1.00x
CharIndexing_tweet_unicodeScalars_Backwards 28252 28242 -0.0% 1.00x
CharIndexing_utf16_unicodeScalars 20320 20329 +0.0% 1.00x (?)
CharIndexing_utf16_unicodeScalars_Backwards 20904 20905 +0.0% 1.00x (?)
CharIteration_ascii_unicodeScalars 20723 20603 -0.6% 1.01x (?)
CharIteration_ascii_unicodeScalars_Backwards 13539 13512 -0.2% 1.00x
CharIteration_chinese_unicodeScalars 15635 15478 -1.0% 1.01x (?)
CharIteration_chinese_unicodeScalars_Backwards 10250 10246 -0.0% 1.00x (?)
CharIteration_japanese_unicodeScalars 24797 24686 -0.4% 1.00x
CharIteration_japanese_unicodeScalars_Backwards 16183 16243 +0.4% 1.00x
CharIteration_korean_unicodeScalars 20087 19993 -0.5% 1.00x
CharIteration_korean_unicodeScalars_Backwards 13108 13124 +0.1% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars 3690 3741 +1.4% 0.99x
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 2469 2471 +0.1% 1.00x (?)
CharIteration_punctuated_unicodeScalars 4649 4682 +0.7% 0.99x
CharIteration_punctuated_unicodeScalars_Backwards 3084 3085 +0.0% 1.00x
CharIteration_russian_unicodeScalars 17233 17191 -0.2% 1.00x
CharIteration_russian_unicodeScalars_Backwards 11265 11268 +0.0% 1.00x (?)
CharIteration_tweet_unicodeScalars 40977 40642 -0.8% 1.01x
CharIteration_tweet_unicodeScalars_Backwards 26681 26692 +0.0% 1.00x (?)
CharIteration_utf16_unicodeScalars 27255 27318 +0.2% 1.00x (?)
CharIteration_utf16_unicodeScalars_Backwards 17277 17123 -0.9% 1.01x
CharacterLiteralsLarge 5968 5969 +0.0% 1.00x (?)
CharacterLiteralsSmall 412 412 +0.0% 1.00x
CharacterPropertiesFetch 4586 4579 -0.2% 1.00x (?)
CharacterPropertiesPrecomputed 976 980 +0.4% 1.00x (?)
CharacterPropertiesStashed 1569 1563 -0.4% 1.00x (?)
CharacterPropertiesStashedMemo 1547 1561 +0.9% 0.99x (?)
Chars 969 970 +0.1% 1.00x (?)
ClassArrayGetter 15 15 +0.0% 1.00x
Combos 455 460 +1.1% 0.99x (?)
DictOfArraysToArrayOfDicts 790 799 +1.1% 0.99x (?)
Dictionary 505 513 +1.6% 0.98x
Dictionary2 1620 1618 -0.1% 1.00x (?)
Dictionary2OfObjects 2980 3005 +0.8% 0.99x (?)
Dictionary3 235 234 -0.4% 1.00x (?)
Dictionary3OfObjects 673 671 -0.3% 1.00x (?)
Dictionary4 147 147 +0.0% 1.00x
Dictionary4OfObjects 201 200 -0.5% 1.00x
DictionaryBridge 2053 2003 -2.4% 1.02x (?)
DictionaryGroup 132 132 +0.0% 1.00x
DictionaryGroupOfObjects 1923 1920 -0.2% 1.00x (?)
DictionaryLiteral 1620 1607 -0.8% 1.01x (?)
DictionaryOfObjects 2175 2193 +0.8% 0.99x (?)
DictionaryRemove 2766 2800 +1.2% 0.99x
DictionaryRemoveOfObjects 23768 23745 -0.1% 1.00x (?)
DictionarySubscriptDefaultMutation 150 150 +0.0% 1.00x
DictionarySubscriptDefaultMutationArray 490 490 +0.0% 1.00x
DictionarySubscriptDefaultMutationArrayOfObjects 3820 3833 +0.3% 1.00x (?)
DictionarySubscriptDefaultMutationOfObjects 1395 1387 -0.6% 1.01x
DictionarySwap 474 474 +0.0% 1.00x
DictionarySwapOfObjects 7439 7430 -0.1% 1.00x (?)
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollection 76 76 +0.0% 1.00x
DropFirstAnyCollectionLazy 64047 64888 +1.3% 0.99x (?)
DropFirstAnySeqCRangeIter 163 164 +0.6% 0.99x
DropFirstAnySeqCRangeIterLazy 163 163 +0.0% 1.00x
DropFirstAnySeqCntRange 71 71 +0.0% 1.00x
DropFirstAnySeqCntRangeLazy 71 71 +0.0% 1.00x
DropFirstAnySequence 1843 1841 -0.1% 1.00x (?)
DropFirstAnySequenceLazy 1842 1843 +0.1% 1.00x (?)
DropFirstArray 35 35 +0.0% 1.00x
DropFirstArrayLazy 35 35 +0.0% 1.00x
DropFirstCountableRange 35 35 +0.0% 1.00x
DropFirstCountableRangeLazy 35 35 +0.0% 1.00x
DropFirstSequence 2702 2700 -0.1% 1.00x
DropFirstSequenceLazy 2785 2794 +0.3% 1.00x
DropLastAnyCollection 28 28 +0.0% 1.00x
DropLastAnyCollectionLazy 21687 21319 -1.7% 1.02x (?)
DropLastAnySeqCRangeIter 3521 3528 +0.2% 1.00x (?)
DropLastAnySeqCRangeIterLazy 3529 3504 -0.7% 1.01x
DropLastAnySeqCntRange 23 23 +0.0% 1.00x
DropLastAnySeqCntRangeLazy 23 23 +0.0% 1.00x
DropLastAnySequence 5085 5093 +0.2% 1.00x (?)
DropLastAnySequenceLazy 5183 5197 +0.3% 1.00x (?)
DropLastCountableRange 12 12 +0.0% 1.00x
DropLastCountableRangeLazy 12 12 +0.0% 1.00x
DropLastSequence 636 631 -0.8% 1.01x (?)
DropLastSequenceLazy 635 630 -0.8% 1.01x
DropWhileAnyCollection 100 100 +0.0% 1.00x
DropWhileAnyCollectionLazy 153 154 +0.7% 0.99x
DropWhileAnySeqCRangeIter 157 157 +0.0% 1.00x
DropWhileAnySeqCRangeIterLazy 153 154 +0.7% 0.99x
DropWhileAnySeqCntRange 95 95 +0.0% 1.00x
DropWhileAnySeqCntRangeLazy 153 153 +0.0% 1.00x
DropWhileAnySequence 1860 1861 +0.1% 1.00x (?)
DropWhileAnySequenceLazy 1855 1855 +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 1340 1341 +0.1% 1.00x (?)
DropWhileSequenceLazy 88 88 +0.0% 1.00x
EqualStringSubstring 49 48 -2.0% 1.02x
EqualSubstringString 49 48 -2.0% 1.02x
EqualSubstringSubstring 48 48 +0.0% 1.00x
EqualSubstringSubstringGenericEquatable 48 48 +0.0% 1.00x
ErrorHandling 2528 2419 -4.3% 1.05x (?)
ExclusivityGlobal 5 5 +0.0% 1.00x
ExclusivityIndependent 2 2 +0.0% 1.00x
FilterEvenUsingReduce 1317 1321 +0.3% 1.00x (?)
FilterEvenUsingReduceInto 148 148 +0.0% 1.00x
FrequenciesUsingReduce 6727 6671 -0.8% 1.01x (?)
FrequenciesUsingReduceInto 3168 3151 -0.5% 1.01x (?)
HashTest 1757 1747 -0.6% 1.01x (?)
Histogram 324 323 -0.3% 1.00x
Integrate 217 218 +0.5% 1.00x
IterateData 1312 1312 +0.0% 1.00x
Join 374 373 -0.3% 1.00x
LazilyFilteredArrayContains 35486 36672 +3.3% 0.97x
LazilyFilteredArrays 65025 65319 +0.5% 1.00x (?)
LazilyFilteredRange 3974 3974 +0.0% 1.00x
LessSubstringSubstring 49 48 -2.0% 1.02x
LessSubstringSubstringGenericComparable 49 48 -2.0% 1.02x
LinkedList 7543 7540 -0.0% 1.00x (?)
LuhnAlgoEager 584 584 +0.0% 1.00x
LuhnAlgoLazy 584 585 +0.2% 1.00x (?)
MapReduce 398 398 +0.0% 1.00x
MapReduceAnyCollection 398 399 +0.3% 1.00x (?)
MapReduceAnyCollectionShort 2075 2070 -0.2% 1.00x (?)
MapReduceClass 3053 3046 -0.2% 1.00x
MapReduceClassShort 4627 4625 -0.0% 1.00x (?)
MapReduceLazyCollection 13 13 +0.0% 1.00x
MapReduceLazyCollectionShort 34 34 +0.0% 1.00x
MapReduceLazySequence 86 86 +0.0% 1.00x
MapReduceSequence 466 456 -2.1% 1.02x (?)
MapReduceShort 2006 2018 +0.6% 0.99x (?)
MapReduceShortString 21 21 +0.0% 1.00x
MapReduceString 81 81 +0.0% 1.00x
Memset 217 215 -0.9% 1.01x (?)
MonteCarloE 10276 10394 +1.1% 0.99x
MonteCarloPi 42946 42827 -0.3% 1.00x
NSDictionaryCastToSwift 5475 5461 -0.3% 1.00x (?)
NSError 304 302 -0.7% 1.01x
NSStringConversion 289 300 +3.8% 0.96x
NibbleSort 3962 3960 -0.1% 1.00x (?)
NopDeinit 21603 21595 -0.0% 1.00x (?)
ObjectAllocation 183 184 +0.5% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 3946 3980 +0.9% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 39893 38723 -2.9% 1.03x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 34717 33081 -4.7% 1.05x
ObjectiveCBridgeFromNSDictionaryAnyObject 121076 121239 +0.1% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObject 62997 60310 -4.3% 1.04x
ObjectiveCBridgeFromNSSetAnyObjectForced 4309 4243 -1.5% 1.02x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 68519 70445 +2.8% 0.97x (?)
ObjectiveCBridgeFromNSString 1315 1271 -3.3% 1.03x
ObjectiveCBridgeFromNSStringForced 2365 2380 +0.6% 0.99x
ObjectiveCBridgeStubDataAppend 3990 4116 +3.2% 0.97x (?)
ObjectiveCBridgeStubDateMutation 257 257 +0.0% 1.00x
ObjectiveCBridgeStubFromNSDate 3991 3992 +0.0% 1.00x (?)
ObjectiveCBridgeStubFromNSString 858 842 -1.9% 1.02x
ObjectiveCBridgeStubFromNSStringRef 158 158 +0.0% 1.00x
ObjectiveCBridgeStubNSDataAppend 2520 2512 -0.3% 1.00x (?)
ObjectiveCBridgeStubNSDateMutationRef 13021 13316 +2.3% 0.98x (?)
ObjectiveCBridgeStubToArrayOfNSString 28856 29359 +1.7% 0.98x
ObjectiveCBridgeStubToNSDate 15707 15640 -0.4% 1.00x (?)
ObjectiveCBridgeStubToNSDateRef 3444 3462 +0.5% 0.99x (?)
ObjectiveCBridgeStubToNSString 1528 1521 -0.5% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 115 116 +0.9% 0.99x (?)
ObjectiveCBridgeStubURLAppendPathRef 349864 337402 -3.6% 1.04x (?)
ObjectiveCBridgeToNSArray 29964 29539 -1.4% 1.01x (?)
ObjectiveCBridgeToNSDictionary 49271 51679 +4.9% 0.95x (?)
ObjectiveCBridgeToNSSet 42720 41430 -3.0% 1.03x
ObjectiveCBridgeToNSString 1296 1294 -0.2% 1.00x (?)
ObserverClosure 2195 2187 -0.4% 1.00x
ObserverForwarderStruct 1002 990 -1.2% 1.01x (?)
ObserverPartiallyAppliedMethod 3779 3770 -0.2% 1.00x (?)
ObserverUnappliedMethod 2373 2376 +0.1% 1.00x (?)
OpenClose 123 128 +4.1% 0.96x
PartialApplyDynamicType 0 0 +0.0% 1.00x
Phonebook 3774 3846 +1.9% 0.98x
PointerArithmetics 31515 31527 +0.0% 1.00x (?)
PolymorphicCalls 25 25 +0.0% 1.00x
PopFrontArray 1969 1883 -4.4% 1.05x (?)
PopFrontArrayGeneric 1965 1967 +0.1% 1.00x (?)
PopFrontUnsafePointer 9509 9497 -0.1% 1.00x (?)
PrefixAnyCollection 76 76 +0.0% 1.00x
PrefixAnyCollectionLazy 64014 64843 +1.3% 0.99x (?)
PrefixAnySeqCRangeIter 128 128 +0.0% 1.00x
PrefixAnySeqCRangeIterLazy 128 128 +0.0% 1.00x
PrefixAnySeqCntRange 71 71 +0.0% 1.00x
PrefixAnySeqCntRangeLazy 71 71 +0.0% 1.00x
PrefixAnySequence 1378 1378 +0.0% 1.00x
PrefixAnySequenceLazy 1379 1377 -0.1% 1.00x (?)
PrefixArray 35 35 +0.0% 1.00x
PrefixArrayLazy 35 35 +0.0% 1.00x
PrefixCountableRange 35 35 +0.0% 1.00x
PrefixCountableRangeLazy 35 35 +0.0% 1.00x
PrefixSequence 1325 1326 +0.1% 1.00x (?)
PrefixSequenceLazy 1414 1414 +0.0% 1.00x
PrefixWhileAnyCollection 147 147 +0.0% 1.00x
PrefixWhileAnyCollectionLazy 106 106 +0.0% 1.00x
PrefixWhileAnySeqCRangeIter 418 417 -0.2% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 106 106 +0.0% 1.00x
PrefixWhileAnySeqCntRange 142 141 -0.7% 1.01x (?)
PrefixWhileAnySeqCntRangeLazy 106 106 +0.0% 1.00x
PrefixWhileAnySequence 1541 1541 +0.0% 1.00x
PrefixWhileAnySequenceLazy 1392 1393 +0.1% 1.00x (?)
PrefixWhileArray 88 88 +0.0% 1.00x
PrefixWhileArrayLazy 70 70 +0.0% 1.00x
PrefixWhileCountableRange 53 53 +0.0% 1.00x
PrefixWhileCountableRangeLazy 35 35 +0.0% 1.00x
PrefixWhileSequence 357 364 +2.0% 0.98x
PrefixWhileSequenceLazy 52 52 +0.0% 1.00x
Prims 758 750 -1.1% 1.01x (?)
PrimsSplit 772 762 -1.3% 1.01x
QueueConcrete 1311 1310 -0.1% 1.00x
QueueGeneric 1158 1159 +0.1% 1.00x (?)
RC4 171 171 +0.0% 1.00x
RGBHistogram 2242 2237 -0.2% 1.00x (?)
RGBHistogramOfObjects 23521 23491 -0.1% 1.00x
RangeAssignment 351 353 +0.6% 0.99x (?)
RangeIterationSigned 171 171 +0.0% 1.00x
RangeIterationSigned64 200 200 +0.0% 1.00x
RangeIterationUnsigned 200 200 +0.0% 1.00x
RangeReplaceableCollectionPlusDefault 995 990 -0.5% 1.01x
RecursiveOwnedParameter 2372 2374 +0.1% 1.00x
RemoveWhereFilterInts 46 46 +0.0% 1.00x
RemoveWhereFilterString 308 307 -0.3% 1.00x
RemoveWhereFilterStrings 433 433 +0.0% 1.00x
RemoveWhereMoveInts 17 17 +0.0% 1.00x
RemoveWhereMoveStrings 520 520 +0.0% 1.00x
RemoveWhereQuadraticInts 1291 1287 -0.3% 1.00x
RemoveWhereQuadraticString 202 199 -1.5% 1.02x (?)
RemoveWhereQuadraticStrings 2759 2757 -0.1% 1.00x (?)
RemoveWhereSwapInts 19 19 +0.0% 1.00x
RemoveWhereSwapStrings 851 850 -0.1% 1.00x (?)
ReversedArray 57 57 +0.0% 1.00x
ReversedBidirectional 15366 15370 +0.0% 1.00x (?)
ReversedDictionary 133 134 +0.8% 0.99x (?)
RomanNumbers 115220 115596 +0.3% 1.00x (?)
SequenceAlgosAnySequence 10213 10206 -0.1% 1.00x (?)
SequenceAlgosArray 1579 1581 +0.1% 1.00x (?)
SequenceAlgosContiguousArray 1578 1585 +0.4% 1.00x
SequenceAlgosList 1349 1350 +0.1% 1.00x
SequenceAlgosRange 4301 4294 -0.2% 1.00x
SequenceAlgosUnfoldSequence 1080 1080 +0.0% 1.00x
SetExclusiveOr 3504 3569 +1.9% 0.98x (?)
SetExclusiveOr_OfObjects 8761 8862 +1.2% 0.99x
SetIntersect 323 320 -0.9% 1.01x
SetIntersect_OfObjects 1757 1764 +0.4% 1.00x (?)
SetIsSubsetOf 298 298 +0.0% 1.00x
SetIsSubsetOf_OfObjects 364 363 -0.3% 1.00x
SetUnion 3173 3236 +2.0% 0.98x (?)
SetUnion_OfObjects 7203 7282 +1.1% 0.99x (?)
SevenBoom 1520 1528 +0.5% 0.99x (?)
Sim2DArray 411 412 +0.2% 1.00x
SortLargeExistentials 6750 6790 +0.6% 0.99x
SortLettersInPlace 1131 1129 -0.2% 1.00x (?)
SortSortedStrings 963 998 +3.6% 0.96x
SortStrings 1725 1787 +3.6% 0.97x
StackPromo 23445 23055 -1.7% 1.02x
StaticArray 5 5 +0.0% 1.00x
StrComplexWalk 1559 1559 +0.0% 1.00x
StrToInt 2083 2189 +5.1% 0.95x
StringAdder 4189 4190 +0.0% 1.00x (?)
StringBuilder 1377 1394 +1.2% 0.99x (?)
StringComparison_abnormal 768 742 -3.4% 1.04x
StringComparison_ascii 992 1010 +1.8% 0.98x
StringComparison_longSharedPrefix 941 899 -4.5% 1.05x
StringComparison_zalgo 114817 114272 -0.5% 1.00x (?)
StringEdits 119971 119489 -0.4% 1.00x (?)
StringEnumRawValueInitialization 962 982 +2.1% 0.98x
StringEqualPointerComparison 315 315 +0.0% 1.00x
StringFromLongWholeSubstring 21 21 +0.0% 1.00x
StringFromLongWholeSubstringGeneric 10 10 +0.0% 1.00x
StringHasPrefixAscii 1317 1346 +2.2% 0.98x
StringHasPrefixUnicode 27621 27343 -1.0% 1.01x
StringHasSuffixAscii 1432 1461 +2.0% 0.98x
StringHasSuffixUnicode 84419 84729 +0.4% 1.00x
StringInterpolation 10757 10743 -0.1% 1.00x (?)
StringMatch 8331 8423 +1.1% 0.99x
StringRemoveDupes 1198 1191 -0.6% 1.01x
StringUTF16Builder 2351 2385 +1.4% 0.99x
StringWalk 1454 1473 +1.3% 0.99x
StringWithCString 43012 43234 +0.5% 0.99x
StringWordBuilder 1709 1781 +4.2% 0.96x
StringWordBuilderReservingCapacity 1273 1326 +4.2% 0.96x
SubstringComparable 45 45 +0.0% 1.00x
SubstringEqualString 539 519 -3.7% 1.04x
SubstringEquatable 1387 1325 -4.5% 1.05x
SubstringFromLongString 10 10 +0.0% 1.00x
SubstringFromLongStringGeneric 69 69 +0.0% 1.00x
SuffixAnyCollection 28 28 +0.0% 1.00x
SuffixAnyCollectionLazy 21635 21700 +0.3% 1.00x (?)
SuffixAnySeqCRangeIter 3807 3797 -0.3% 1.00x (?)
SuffixAnySeqCRangeIterLazy 3816 3815 -0.0% 1.00x (?)
SuffixAnySeqCntRange 23 23 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 23 23 +0.0% 1.00x
SuffixAnySequence 5105 5110 +0.1% 1.00x (?)
SuffixAnySequenceLazy 5219 5204 -0.3% 1.00x (?)
SuffixCountableRange 11 11 +0.0% 1.00x
SuffixCountableRangeLazy 12 12 +0.0% 1.00x
SuffixSequence 3735 3700 -0.9% 1.01x
SuffixSequenceLazy 3741 3706 -0.9% 1.01x (?)
SumUsingReduce 96 96 +0.0% 1.00x
SumUsingReduceInto 96 96 +0.0% 1.00x
SuperChars 41477 42000 +1.3% 0.99x (?)
TwoSum 996 994 -0.2% 1.00x
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode 316 317 +0.3% 1.00x
Walsh 429 418 -2.6% 1.03x
WordCountHistogramASCII 7391 7469 +1.1% 0.99x
WordCountUniqueASCII 1816 1791 -1.4% 1.01x (?)
WordSplitASCII 22019 21599 -1.9% 1.02x
WordSplitUTF16 23676 23146 -2.2% 1.02x (?)
XorLoop 395 394 -0.3% 1.00x (?)

Unoptimized (Onone)

Regression (7)
TEST OLD NEW DELTA SPEEDUP
RangeIterationUnsigned 34841 39366 +13.0% 0.89x
SubstringFromLongString 28 31 +10.7% 0.90x (?)
CharIndexing_korean_unicodeScalars_Backwards 402500 440358 +9.4% 0.91x
StringEqualPointerComparison 3362 3620 +7.7% 0.93x
StringWalk 12434 13268 +6.7% 0.94x (?)
Dictionary2 2923 3105 +6.2% 0.94x
LuhnAlgoLazy 4879 5156 +5.7% 0.95x (?)
Improvement (12)
TEST OLD NEW DELTA SPEEDUP
ObjectiveCBridgeStubToNSDate 18673 16220 -13.1% 1.15x
SortStringsUnicode 3153 2803 -11.1% 1.12x
ArrayOfPOD 846 758 -10.4% 1.12x
WordSplitASCII 28052 25990 -7.4% 1.08x (?)
LuhnAlgoEager 4889 4537 -7.2% 1.08x
ObjectiveCBridgeFromNSSetAnyObjectForced 7463 6970 -6.6% 1.07x (?)
WordSplitUTF16 28502 26691 -6.4% 1.07x (?)
WordCountUniqueUTF16 29607 27734 -6.3% 1.07x (?)
Combos 2196 2076 -5.5% 1.06x
CharIndexing_japanese_unicodeScalars_Backwards 555661 527889 -5.0% 1.05x (?)
CStringLongNonAscii 2182 2074 -4.9% 1.05x
SuperChars 134507 127862 -4.9% 1.05x
No Changes (359)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 5223 5309 +1.6% 0.98x
AnyHashableWithAClass 87411 87168 -0.3% 1.00x (?)
Array2D 630659 630965 +0.0% 1.00x (?)
ArrayAppend 4672 4671 -0.0% 1.00x (?)
ArrayAppendArrayOfInt 846 864 +2.1% 0.98x (?)
ArrayAppendAscii 40128 40435 +0.8% 0.99x
ArrayAppendFromGeneric 854 868 +1.6% 0.98x (?)
ArrayAppendGenericStructs 1501 1500 -0.1% 1.00x (?)
ArrayAppendLatin1 63421 63311 -0.2% 1.00x (?)
ArrayAppendLazyMap 168516 167766 -0.4% 1.00x (?)
ArrayAppendOptionals 1501 1507 +0.4% 1.00x (?)
ArrayAppendRepeatCol 172106 170865 -0.7% 1.01x
ArrayAppendReserved 4397 4393 -0.1% 1.00x (?)
ArrayAppendSequence 147169 145491 -1.1% 1.01x (?)
ArrayAppendStrings 15393 15423 +0.2% 1.00x (?)
ArrayAppendToFromGeneric 865 865 +0.0% 1.00x
ArrayAppendToGeneric 871 872 +0.1% 1.00x (?)
ArrayAppendUTF16 63389 63004 -0.6% 1.01x
ArrayInClass 6240 6205 -0.6% 1.01x (?)
ArrayLiteral 1789 1793 +0.2% 1.00x (?)
ArrayOfGenericPOD2 1131 1129 -0.2% 1.00x
ArrayOfGenericRef 10075 10127 +0.5% 0.99x (?)
ArrayOfRef 9320 9350 +0.3% 1.00x (?)
ArrayPlusEqualArrayOfInt 868 863 -0.6% 1.01x
ArrayPlusEqualFiveElementCollection 240278 238826 -0.6% 1.01x (?)
ArrayPlusEqualSingleElementCollection 237531 234033 -1.5% 1.01x
ArrayPlusEqualThreeElements 9508 9531 +0.2% 1.00x (?)
ArraySubscript 115264 114511 -0.7% 1.01x (?)
ArrayValueProp 3638 3623 -0.4% 1.00x (?)
ArrayValueProp2 16480 16661 +1.1% 0.99x (?)
ArrayValueProp3 4159 4186 +0.6% 0.99x (?)
ArrayValueProp4 4128 4142 +0.3% 1.00x (?)
BinaryFloatingPointConversionFromBinaryInteger 6066 6106 +0.7% 0.99x (?)
BitCount 7649 7656 +0.1% 1.00x (?)
ByteSwap 9137 9129 -0.1% 1.00x (?)
COWTree 11536 11673 +1.2% 0.99x (?)
CSVParsing 2435083 2426760 -0.3% 1.00x (?)
CSVParsingAlt 1301876 1312928 +0.8% 0.99x (?)
CSVParsingAltIndices 2321762 2347361 +1.1% 0.99x (?)
CStringLongAscii 4604 4762 +3.4% 0.97x
CStringShortAscii 7514 7655 +1.9% 0.98x (?)
Calculator 1461 1531 +4.8% 0.95x
CaptureProp 246495 245587 -0.4% 1.00x (?)
CharIndexing_ascii_unicodeScalars 393125 389651 -0.9% 1.01x (?)
CharIndexing_ascii_unicodeScalars_Backwards 422199 420748 -0.3% 1.00x (?)
CharIndexing_chinese_unicodeScalars 303115 295226 -2.6% 1.03x (?)
CharIndexing_chinese_unicodeScalars_Backwards 318253 325950 +2.4% 0.98x (?)
CharIndexing_japanese_unicodeScalars 472913 466128 -1.4% 1.01x
CharIndexing_korean_unicodeScalars 380867 378141 -0.7% 1.01x (?)
CharIndexing_punctuatedJapanese_unicodeScalars 70173 68883 -1.8% 1.02x
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 71647 74179 +3.5% 0.97x (?)
CharIndexing_punctuated_unicodeScalars 87460 86654 -0.9% 1.01x (?)
CharIndexing_punctuated_unicodeScalars_Backwards 91432 96115 +5.1% 0.95x (?)
CharIndexing_russian_unicodeScalars 327277 325172 -0.6% 1.01x
CharIndexing_russian_unicodeScalars_Backwards 356431 344103 -3.5% 1.04x (?)
CharIndexing_tweet_unicodeScalars 778137 773470 -0.6% 1.01x (?)
CharIndexing_tweet_unicodeScalars_Backwards 846591 860185 +1.6% 0.98x (?)
CharIndexing_utf16_unicodeScalars 324940 334199 +2.8% 0.97x (?)
CharIndexing_utf16_unicodeScalars_Backwards 346900 357182 +3.0% 0.97x (?)
CharIteration_ascii_unicodeScalars 159346 162366 +1.9% 0.98x
CharIteration_ascii_unicodeScalars_Backwards 335964 333106 -0.9% 1.01x (?)
CharIteration_chinese_unicodeScalars 117065 118695 +1.4% 0.99x
CharIteration_chinese_unicodeScalars_Backwards 257593 256920 -0.3% 1.00x (?)
CharIteration_japanese_unicodeScalars 184400 187786 +1.8% 0.98x (?)
CharIteration_japanese_unicodeScalars_Backwards 404939 396150 -2.2% 1.02x
CharIteration_korean_unicodeScalars 155116 157248 +1.4% 0.99x
CharIteration_korean_unicodeScalars_Backwards 333928 318567 -4.6% 1.05x (?)
CharIteration_punctuatedJapanese_unicodeScalars 28193 27791 -1.4% 1.01x (?)
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 60200 57794 -4.0% 1.04x (?)
CharIteration_punctuated_unicodeScalars 36150 36426 +0.8% 0.99x (?)
CharIteration_punctuated_unicodeScalars_Backwards 75061 74734 -0.4% 1.00x (?)
CharIteration_russian_unicodeScalars 132727 135050 +1.8% 0.98x
CharIteration_russian_unicodeScalars_Backwards 279433 281601 +0.8% 0.99x (?)
CharIteration_tweet_unicodeScalars 303503 309636 +2.0% 0.98x
CharIteration_tweet_unicodeScalars_Backwards 670162 667771 -0.4% 1.00x (?)
CharIteration_utf16_unicodeScalars 133185 135860 +2.0% 0.98x (?)
CharIteration_utf16_unicodeScalars_Backwards 278563 273458 -1.8% 1.02x (?)
CharacterLiteralsLarge 5964 5918 -0.8% 1.01x
CharacterLiteralsSmall 668 691 +3.4% 0.97x
CharacterPropertiesFetch 5469 5660 +3.5% 0.97x (?)
CharacterPropertiesPrecomputed 4415 4309 -2.4% 1.02x (?)
CharacterPropertiesStashed 2396 2364 -1.3% 1.01x (?)
CharacterPropertiesStashedMemo 5136 5081 -1.1% 1.01x (?)
Chars 40635 40524 -0.3% 1.00x (?)
ClassArrayGetter 985 984 -0.1% 1.00x (?)
DictOfArraysToArrayOfDicts 3344 3404 +1.8% 0.98x (?)
Dictionary 2651 2637 -0.5% 1.01x (?)
Dictionary2OfObjects 5553 5606 +1.0% 0.99x (?)
Dictionary3 1332 1323 -0.7% 1.01x
Dictionary3OfObjects 2288 2334 +2.0% 0.98x (?)
Dictionary4 1183 1177 -0.5% 1.01x (?)
Dictionary4OfObjects 1829 1899 +3.8% 0.96x
DictionaryBridge 2094 2107 +0.6% 0.99x (?)
DictionaryGroup 4134 4128 -0.1% 1.00x (?)
DictionaryGroupOfObjects 7466 7595 +1.7% 0.98x
DictionaryLiteral 8576 8598 +0.3% 1.00x (?)
DictionaryOfObjects 6160 6168 +0.1% 1.00x (?)
DictionaryRemove 18313 18325 +0.1% 1.00x (?)
DictionaryRemoveOfObjects 49985 49974 -0.0% 1.00x (?)
DictionarySubscriptDefaultMutation 2070 2098 +1.4% 0.99x (?)
DictionarySubscriptDefaultMutationArray 2320 2324 +0.2% 1.00x (?)
DictionarySubscriptDefaultMutationArrayOfObjects 9194 9188 -0.1% 1.00x (?)
DictionarySubscriptDefaultMutationOfObjects 5602 5622 +0.4% 1.00x (?)
DictionarySwap 5230 5204 -0.5% 1.00x
DictionarySwapOfObjects 22882 23218 +1.5% 0.99x (?)
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollection 13691 13725 +0.2% 1.00x
DropFirstAnyCollectionLazy 110174 107034 -2.9% 1.03x (?)
DropFirstAnySeqCRangeIter 20534 20437 -0.5% 1.00x (?)
DropFirstAnySeqCRangeIterLazy 20258 20144 -0.6% 1.01x (?)
DropFirstAnySeqCntRange 13613 13667 +0.4% 1.00x
DropFirstAnySeqCntRangeLazy 13683 13761 +0.6% 0.99x (?)
DropFirstAnySequence 10933 10997 +0.6% 0.99x (?)
DropFirstAnySequenceLazy 10934 10943 +0.1% 1.00x (?)
DropFirstArray 3865 3892 +0.7% 0.99x
DropFirstArrayLazy 29733 29724 -0.0% 1.00x (?)
DropFirstCountableRange 325 328 +0.9% 0.99x
DropFirstCountableRangeLazy 31382 30743 -2.0% 1.02x (?)
DropFirstSequence 10527 10555 +0.3% 1.00x (?)
DropFirstSequenceLazy 10444 10490 +0.4% 1.00x
DropLastAnyCollection 4583 4603 +0.4% 1.00x (?)
DropLastAnyCollectionLazy 35691 35117 -1.6% 1.02x (?)
DropLastAnySeqCRangeIter 37220 37286 +0.2% 1.00x (?)
DropLastAnySeqCRangeIterLazy 37145 37286 +0.4% 1.00x
DropLastAnySeqCntRange 4560 4563 +0.1% 1.00x (?)
DropLastAnySeqCntRangeLazy 4602 4589 -0.3% 1.00x
DropLastAnySequence 28815 28945 +0.5% 1.00x
DropLastAnySequenceLazy 28750 28959 +0.7% 0.99x (?)
DropLastCountableRange 112 112 +0.0% 1.00x
DropLastCountableRangeLazy 10467 10249 -2.1% 1.02x
DropLastSequence 28730 28943 +0.7% 0.99x
DropLastSequenceLazy 28653 29161 +1.8% 0.98x
DropWhileAnyCollection 17302 17325 +0.1% 1.00x (?)
DropWhileAnyCollectionLazy 18709 18752 +0.2% 1.00x (?)
DropWhileAnySeqCRangeIter 25555 25337 -0.9% 1.01x (?)
DropWhileAnySeqCRangeIterLazy 18790 18744 -0.2% 1.00x (?)
DropWhileAnySeqCntRange 17300 17351 +0.3% 1.00x (?)
DropWhileAnySeqCntRangeLazy 18824 18853 +0.2% 1.00x (?)
DropWhileAnySequence 12191 12289 +0.8% 0.99x
DropWhileAnySequenceLazy 9996 9994 -0.0% 1.00x (?)
DropWhileArrayLazy 13654 13651 -0.0% 1.00x (?)
DropWhileCountableRange 3966 3986 +0.5% 0.99x
DropWhileCountableRangeLazy 18524 18404 -0.6% 1.01x
DropWhileSequence 12043 12123 +0.7% 0.99x
DropWhileSequenceLazy 9721 9828 +1.1% 0.99x
EqualStringSubstring 92 91 -1.1% 1.01x
EqualSubstringString 95 94 -1.1% 1.01x
EqualSubstringSubstring 92 93 +1.1% 0.99x
EqualSubstringSubstringGenericEquatable 100 100 +0.0% 1.00x
ErrorHandling 6981 7105 +1.8% 0.98x (?)
ExclusivityGlobal 184 189 +2.7% 0.97x
ExclusivityIndependent 69 70 +1.4% 0.99x (?)
FilterEvenUsingReduce 3626 3630 +0.1% 1.00x (?)
FilterEvenUsingReduceInto 1911 1915 +0.2% 1.00x (?)
FrequenciesUsingReduce 10708 10249 -4.3% 1.04x (?)
FrequenciesUsingReduceInto 5382 5266 -2.2% 1.02x (?)
Hanoi 19736 20186 +2.3% 0.98x
HashTest 21555 21631 +0.4% 1.00x (?)
Histogram 6557 6555 -0.0% 1.00x (?)
Integrate 797 818 +2.6% 0.97x
IterateData 6068 5865 -3.3% 1.03x
Join 1109 1103 -0.5% 1.01x (?)
LazilyFilteredArrayContains 770205 771151 +0.1% 1.00x (?)
LazilyFilteredArrays 1452444 1452264 -0.0% 1.00x (?)
LazilyFilteredRange 468999 469953 +0.2% 1.00x (?)
LessSubstringSubstring 93 93 +0.0% 1.00x
LessSubstringSubstringGenericComparable 98 98 +0.0% 1.00x
LinkedList 32146 32170 +0.1% 1.00x (?)
MapReduce 25835 26035 +0.8% 0.99x
MapReduceAnyCollection 25450 25552 +0.4% 1.00x (?)
MapReduceAnyCollectionShort 36482 36223 -0.7% 1.01x (?)
MapReduceClass 30353 30430 +0.3% 1.00x (?)
MapReduceClassShort 41114 41138 +0.1% 1.00x (?)
MapReduceLazyCollection 22296 22371 +0.3% 1.00x
MapReduceLazyCollectionShort 32937 33168 +0.7% 0.99x (?)
MapReduceLazySequence 18150 17947 -1.1% 1.01x
MapReduceSequence 28992 29624 +2.2% 0.98x
MapReduceShort 36909 36896 -0.0% 1.00x (?)
MapReduceShortString 231 220 -4.8% 1.05x (?)
MapReduceString 1791 1814 +1.3% 0.99x
Memset 44754 44725 -0.1% 1.00x (?)
MonteCarloE 1236890 1229285 -0.6% 1.01x
MonteCarloPi 5576873 5539281 -0.7% 1.01x
NSDictionaryCastToSwift 6748 6961 +3.2% 0.97x (?)
NSError 743 732 -1.5% 1.02x (?)
NSStringConversion 334 343 +2.7% 0.97x
NibbleSort 407667 407972 +0.1% 1.00x (?)
NopDeinit 163884 169423 +3.4% 0.97x
ObjectAllocation 1361 1369 +0.6% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObject 23325 23488 +0.7% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 8874 8585 -3.3% 1.03x
ObjectiveCBridgeFromNSArrayAnyObjectToString 39994 40742 +1.9% 0.98x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 36772 35601 -3.2% 1.03x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 128201 124930 -2.6% 1.03x (?)
ObjectiveCBridgeFromNSSetAnyObject 62647 64431 +2.8% 0.97x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 76131 76077 -0.1% 1.00x (?)
ObjectiveCBridgeFromNSString 3171 3274 +3.2% 0.97x (?)
ObjectiveCBridgeFromNSStringForced 2686 2714 +1.0% 0.99x (?)
ObjectiveCBridgeStubDataAppend 4521 4588 +1.5% 0.99x (?)
ObjectiveCBridgeStubDateMutation 643 648 +0.8% 0.99x (?)
ObjectiveCBridgeStubFromArrayOfNSString 27754 28559 +2.9% 0.97x (?)
ObjectiveCBridgeStubFromNSDate 4878 4881 +0.1% 1.00x (?)
ObjectiveCBridgeStubFromNSString 889 874 -1.7% 1.02x
ObjectiveCBridgeStubFromNSStringRef 196 196 +0.0% 1.00x
ObjectiveCBridgeStubNSDataAppend 2980 3027 +1.6% 0.98x (?)
ObjectiveCBridgeStubNSDateMutationRef 16523 16349 -1.1% 1.01x (?)
ObjectiveCBridgeStubToArrayOfNSString 29309 29559 +0.9% 0.99x (?)
ObjectiveCBridgeStubToNSDateRef 3515 3479 -1.0% 1.01x (?)
ObjectiveCBridgeStubToNSString 1585 1576 -0.6% 1.01x (?)
ObjectiveCBridgeStubToNSStringRef 159 159 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 338567 339698 +0.3% 1.00x (?)
ObjectiveCBridgeStubURLAppendPathRef 337976 352463 +4.3% 0.96x (?)
ObjectiveCBridgeToNSArray 29388 29730 +1.2% 0.99x (?)
ObjectiveCBridgeToNSDictionary 51128 50967 -0.3% 1.00x (?)
ObjectiveCBridgeToNSSet 42657 41649 -2.4% 1.02x (?)
ObjectiveCBridgeToNSString 1348 1347 -0.1% 1.00x (?)
ObserverClosure 6353 6371 +0.3% 1.00x
ObserverForwarderStruct 4383 4380 -0.1% 1.00x (?)
ObserverPartiallyAppliedMethod 7804 7814 +0.1% 1.00x (?)
ObserverUnappliedMethod 8251 8243 -0.1% 1.00x
OpenClose 548 538 -1.8% 1.02x
PartialApplyDynamicType 43067 41569 -3.5% 1.04x (?)
Phonebook 19904 19921 +0.1% 1.00x (?)
PointerArithmetics 120325 120254 -0.1% 1.00x (?)
PolymorphicCalls 6241 6332 +1.5% 0.99x (?)
PopFrontArray 4598 4641 +0.9% 0.99x
PopFrontArrayGeneric 5814 5842 +0.5% 1.00x (?)
PopFrontUnsafePointer 11322 11260 -0.5% 1.01x (?)
PrefixAnyCollection 13722 13719 -0.0% 1.00x (?)
PrefixAnyCollectionLazy 107309 104152 -2.9% 1.03x
PrefixAnySeqCRangeIter 16381 16396 +0.1% 1.00x (?)
PrefixAnySeqCRangeIterLazy 16390 16419 +0.2% 1.00x (?)
PrefixAnySeqCntRange 13704 13673 -0.2% 1.00x (?)
PrefixAnySeqCntRangeLazy 13730 13695 -0.3% 1.00x (?)
PrefixAnySequence 9237 9097 -1.5% 1.02x
PrefixAnySequenceLazy 9155 9118 -0.4% 1.00x (?)
PrefixArray 3864 3897 +0.9% 0.99x
PrefixArrayLazy 29795 29733 -0.2% 1.00x
PrefixCountableRange 326 326 +0.0% 1.00x
PrefixCountableRangeLazy 31401 30970 -1.4% 1.01x (?)
PrefixSequence 8854 8832 -0.2% 1.00x (?)
PrefixSequenceLazy 8863 8790 -0.8% 1.01x
PrefixWhileAnyCollection 24514 24605 +0.4% 1.00x (?)
PrefixWhileAnyCollectionLazy 15794 15771 -0.1% 1.00x (?)
PrefixWhileAnySeqCRangeIter 32487 32636 +0.5% 1.00x
PrefixWhileAnySeqCRangeIterLazy 15684 15665 -0.1% 1.00x (?)
PrefixWhileAnySeqCntRange 24595 24670 +0.3% 1.00x
PrefixWhileAnySeqCntRangeLazy 16025 16019 -0.0% 1.00x (?)
PrefixWhileAnySequence 25814 25989 +0.7% 0.99x
PrefixWhileAnySequenceLazy 9270 9254 -0.2% 1.00x (?)
PrefixWhileArray 10856 10987 +1.2% 0.99x (?)
PrefixWhileArrayLazy 12038 12035 -0.0% 1.00x (?)
PrefixWhileCountableRange 11329 11335 +0.1% 1.00x (?)
PrefixWhileCountableRangeLazy 15598 15571 -0.2% 1.00x
PrefixWhileSequence 25901 26018 +0.5% 1.00x (?)
PrefixWhileSequenceLazy 8965 8904 -0.7% 1.01x
Prims 9631 9677 +0.5% 1.00x (?)
PrimsSplit 9634 9617 -0.2% 1.00x (?)
QueueConcrete 14848 15019 +1.2% 0.99x
QueueGeneric 18853 18943 +0.5% 1.00x
RC4 16945 16834 -0.7% 1.01x (?)
RGBHistogram 26185 25767 -1.6% 1.02x
RGBHistogramOfObjects 96851 97575 +0.7% 0.99x (?)
RangeAssignment 2184 2250 +3.0% 0.97x (?)
RangeIterationSigned 16597 16975 +2.3% 0.98x (?)
RangeIterationSigned64 39024 39538 +1.3% 0.99x (?)
RangeReplaceableCollectionPlusDefault 8212 8531 +3.9% 0.96x (?)
RecursiveOwnedParameter 7946 8056 +1.4% 0.99x
RemoveWhereFilterInts 2086 2095 +0.4% 1.00x
RemoveWhereFilterString 1468 1449 -1.3% 1.01x (?)
RemoveWhereFilterStrings 2855 2857 +0.1% 1.00x
RemoveWhereMoveInts 3354 3334 -0.6% 1.01x
RemoveWhereMoveStrings 4073 4068 -0.1% 1.00x
RemoveWhereQuadraticInts 7650 7654 +0.1% 1.00x (?)
RemoveWhereQuadraticString 2283 2290 +0.3% 1.00x
RemoveWhereQuadraticStrings 9317 9333 +0.2% 1.00x
RemoveWhereSwapInts 5980 5991 +0.2% 1.00x (?)
RemoveWhereSwapStrings 6767 6760 -0.1% 1.00x
ReversedArray 13710 13687 -0.2% 1.00x (?)
ReversedBidirectional 42970 42924 -0.1% 1.00x (?)
ReversedDictionary 22770 23031 +1.1% 0.99x
RomanNumbers 1239691 1203216 -2.9% 1.03x (?)
SequenceAlgosAnySequence 12569 12571 +0.0% 1.00x (?)
SequenceAlgosArray 771580 773378 +0.2% 1.00x
SequenceAlgosContiguousArray 319679 319084 -0.2% 1.00x
SequenceAlgosList 8117 8191 +0.9% 0.99x (?)
SequenceAlgosRange 1064160 1064099 -0.0% 1.00x (?)
SequenceAlgosUnfoldSequence 5604 5663 +1.1% 0.99x
SetExclusiveOr 17111 17213 +0.6% 0.99x
SetExclusiveOr_OfObjects 41714 41606 -0.3% 1.00x (?)
SetIntersect 8342 8357 +0.2% 1.00x (?)
SetIntersect_OfObjects 12188 12200 +0.1% 1.00x (?)
SetIsSubsetOf 1362 1363 +0.1% 1.00x (?)
SetIsSubsetOf_OfObjects 1573 1558 -1.0% 1.01x
SetUnion 11802 11894 +0.8% 0.99x
SetUnion_OfObjects 29228 29560 +1.1% 0.99x (?)
SevenBoom 1675 1670 -0.3% 1.00x (?)
Sim2DArray 43383 43626 +0.6% 0.99x
SortLargeExistentials 15531 15624 +0.6% 0.99x (?)
SortLettersInPlace 2643 2709 +2.5% 0.98x (?)
SortSortedStrings 1028 1055 +2.6% 0.97x
SortStrings 2072 2059 -0.6% 1.01x
StackPromo 99084 94551 -4.6% 1.05x (?)
StaticArray 2658 2650 -0.3% 1.00x (?)
StrComplexWalk 6445 6668 +3.5% 0.97x
StrToInt 57489 58146 +1.1% 0.99x
StringAdder 4811 4791 -0.4% 1.00x (?)
StringBuilder 6894 6818 -1.1% 1.01x (?)
StringBuilderLong 2714 2730 +0.6% 0.99x (?)
StringComparison_abnormal 1340 1335 -0.4% 1.00x (?)
StringComparison_ascii 9547 9557 +0.1% 1.00x (?)
StringComparison_emoji 2108 2077 -1.5% 1.01x
StringComparison_fastPrenormal 5430 5350 -1.5% 1.01x (?)
StringComparison_latin1 4154 4057 -2.3% 1.02x
StringComparison_longSharedPrefix 2536 2500 -1.4% 1.01x
StringComparison_nonBMPSlowestPrenormal 3944 3847 -2.5% 1.03x
StringComparison_slowerPrenormal 4427 4346 -1.8% 1.02x
StringComparison_zalgo 116744 115840 -0.8% 1.01x (?)
StringEdits 343267 344592 +0.4% 1.00x (?)
StringEnumRawValueInitialization 17919 17571 -1.9% 1.02x (?)
StringFromLongWholeSubstring 22 22 +0.0% 1.00x
StringFromLongWholeSubstringGeneric 200 200 +0.0% 1.00x
StringHasPrefixAscii 3091 3092 +0.0% 1.00x
StringHasPrefixUnicode 29456 29294 -0.5% 1.01x
StringHasSuffixAscii 3119 3180 +2.0% 0.98x
StringHasSuffixUnicode 86257 86490 +0.3% 1.00x (?)
StringInterpolation 13462 13991 +3.9% 0.96x (?)
StringMatch 34743 34811 +0.2% 1.00x (?)
StringRemoveDupes 1363 1388 +1.8% 0.98x (?)
StringUTF16Builder 7963 8244 +3.5% 0.97x (?)
StringWithCString 37661 39505 +4.9% 0.95x
StringWordBuilder 2608 2604 -0.2% 1.00x (?)
StringWordBuilderReservingCapacity 2303 2299 -0.2% 1.00x (?)
SubstringComparable 2048 2046 -0.1% 1.00x (?)
SubstringEqualString 1891 1885 -0.3% 1.00x
SubstringEquatable 6001 5964 -0.6% 1.01x (?)
SubstringFromLongStringGeneric 108 105 -2.8% 1.03x
SuffixAnyCollection 4600 4601 +0.0% 1.00x (?)
SuffixAnyCollectionLazy 36250 35036 -3.3% 1.03x (?)
SuffixAnySeqCRangeIter 33363 33390 +0.1% 1.00x (?)
SuffixAnySeqCRangeIterLazy 33419 33527 +0.3% 1.00x
SuffixAnySeqCntRange 4571 4592 +0.5% 1.00x (?)
SuffixAnySeqCntRangeLazy 4581 4604 +0.5% 1.00x (?)
SuffixAnySequence 25015 25239 +0.9% 0.99x
SuffixAnySequenceLazy 24946 25157 +0.8% 0.99x
SuffixCountableRange 113 114 +0.9% 0.99x
SuffixCountableRangeLazy 10396 10231 -1.6% 1.02x (?)
SuffixSequence 24937 25161 +0.9% 0.99x
SuffixSequenceLazy 24865 25053 +0.8% 0.99x
SumUsingReduce 163422 165253 +1.1% 0.99x
SumUsingReduceInto 158371 158820 +0.3% 1.00x
TwoSum 3926 3938 +0.3% 1.00x (?)
TypeFlood 156 159 +1.9% 0.98x (?)
UTF8Decode 29906 29826 -0.3% 1.00x
Walsh 12110 12101 -0.1% 1.00x (?)
WordCountHistogramASCII 46591 47511 +2.0% 0.98x
WordCountHistogramUTF16 74992 71834 -4.2% 1.04x
WordCountUniqueASCII 7983 7998 +0.2% 1.00x (?)
XorLoop 23401 23384 -0.1% 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

@lancep lancep merged commit 149ad71 into swiftlang:master Feb 19, 2018
@milseman milseman deleted the comparison_finance_reform branch February 19, 2018 21:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants