Skip to content

[TypeChecker] SE-0213: Implement literal init via coercion #17860

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Jul 18, 2018

Conversation

xedin
Copy link
Contributor

@xedin xedin commented Jul 10, 2018

Implementation is as follows: In preCheckExpression try to
detect if there is T(literal) call in the AST, replace it with
implicit literal as T, while trying to form type-checked AST,
after constraint solving, restore source information and drop unnecessary
coercion expression.

Resolves: rdar://problem/17088188
Resolves: rdar://problem/39120081
Resolves: rdar://problem/23672697
Resolves: rdar://problem/40379985

@xedin xedin requested review from moiseev, rudkx and ravikandhadai July 10, 2018 20:33
@xedin
Copy link
Contributor Author

xedin commented Jul 10, 2018

@swift-ci please smoke test compiler performance

@xedin
Copy link
Contributor Author

xedin commented Jul 10, 2018

@swift-ci please benchmark

@xedin xedin requested a review from DougGregor July 10, 2018 20:38
// Note that the error here is because of an implicit conversion of the input
// literal to 'Int'.
_blackHole(Float80(18_446_744_073_709_551_617)) // expected-error {{integer literal '18446744073709551617' overflows when stored into 'Int'}}
_blackHole(Float80(18_446_744_073_709_551_617)) // Ok
Copy link
Contributor

Choose a reason for hiding this comment

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

@xedin Nice to see that the above FIXME's are addressed by this fix. Thanks!

let _: Optional<Int!> = nil // expected-error {{'!' is not allowed here; perhaps '?' was intended?}}{{20-21=?}}
_ = Int!?(0) // expected-error {{'!' is not allowed here; perhaps '?' was intended?}}{{8-9=?}}
_ = Int!?(0) // expected-error 3 {{'!' is not allowed here; perhaps '?' was intended?}}{{8-9=?}}
Copy link
Contributor

Choose a reason for hiding this comment

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

This looks like we're processing the type multiple times…

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yeah, we have that in a couple of places already unfortunately, because we don't track if we produced the same diagnostic multiple times...

Copy link
Contributor

Choose a reason for hiding this comment

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

Looking at the TypeLoc, we should see it has already been resolved to a Type, and not resolve the TypeRepr again. Where is the diagnostic being emitted?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Ah I see, it's probably my calls to resolveType which caused this, I'll try to fix it.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done, just needed to cache the type in a couple of places :)

@swift-ci
Copy link
Contributor

Build comment file:

Summary for master smoketest

Unexpected test results, excluded stats for ReactiveCocoa

No regressions above thresholds

Debug

debug brief

Regressed (0)
name old new delta delta_pct
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (2)
name old new delta delta_pct
LLVM.NumLLVMBytesOutput 14,697,004 14,696,216 -788 -0.01%
time.swift-driver.wall 32.9s 32.6s -282.6ms -0.86%

debug detailed

Regressed (0)
name old new delta delta_pct
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (23)
name old new delta delta_pct
AST.NumImportedExternalDefinitions 18,126 18,126 0 0.0%
AST.NumLoadedModules 2,488 2,488 0 0.0%
AST.NumTotalClangImportedEntities 53,276 53,264 -12 -0.02%
AST.NumUsedConformances 2,133 2,127 -6 -0.28%
IRModule.NumIRBasicBlocks 48,646 48,646 0 0.0%
IRModule.NumIRFunctions 27,123 27,121 -2 -0.01%
IRModule.NumIRGlobals 27,960 27,952 -8 -0.03%
IRModule.NumIRInsts 618,599 618,565 -34 -0.01%
IRModule.NumIRValueSymbols 49,652 49,642 -10 -0.02%
LLVM.NumLLVMBytesOutput 14,697,004 14,696,216 -788 -0.01%
SILModule.NumSILGenFunctions 21,641 21,639 -2 -0.01%
SILModule.NumSILOptFunctions 18,641 18,641 0 0.0%
Sema.NumConformancesDeserialized 71,120 70,992 -128 -0.18%
Sema.NumConstraintScopes 343,508 343,358 -150 -0.04%
Sema.NumDeclsDeserialized 446,050 445,770 -280 -0.06%
Sema.NumDeclsValidated 38,310 38,310 0 0.0%
Sema.NumFunctionsTypechecked 11,678 11,678 0 0.0%
Sema.NumGenericSignatureBuilders 20,760 20,760 0 0.0%
Sema.NumLazyGenericEnvironments 84,131 84,125 -6 -0.01%
Sema.NumLazyGenericEnvironmentsLoaded 9,144 9,136 -8 -0.09%
Sema.NumLazyIterableDeclContexts 71,027 70,953 -74 -0.1%
Sema.NumTypesDeserialized 476,604 476,448 -156 -0.03%
Sema.NumTypesValidated 51,948 51,956 8 0.02%

Release

release brief

Regressed (0)
name old new delta delta_pct
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (2)
name old new delta delta_pct
LLVM.NumLLVMBytesOutput 15,890,468 15,838,556 -51,912 -0.33%
time.swift-driver.wall 55.7s 55.7s -7.6ms -0.01%

release detailed

Regressed (0)
name old new delta delta_pct
Improved (1)
name old new delta delta_pct
SILModule.NumSILOptFunctions 15,521 15,340 -181 -1.17% ✅
Unchanged (delta < 1.0% or delta < 100.0ms) (22)
name old new delta delta_pct
AST.NumImportedExternalDefinitions 4,626 4,626 0 0.0%
AST.NumLoadedModules 169 169 0 0.0%
AST.NumTotalClangImportedEntities 14,697 14,685 -12 -0.08%
AST.NumUsedConformances 2,136 2,130 -6 -0.28%
IRModule.NumIRBasicBlocks 53,231 53,129 -102 -0.19%
IRModule.NumIRFunctions 22,745 22,639 -106 -0.47%
IRModule.NumIRGlobals 23,393 23,393 0 0.0%
IRModule.NumIRInsts 494,862 494,206 -656 -0.13%
IRModule.NumIRValueSymbols 43,369 43,263 -106 -0.24%
LLVM.NumLLVMBytesOutput 15,890,468 15,838,556 -51,912 -0.33%
SILModule.NumSILGenFunctions 10,938 10,936 -2 -0.02%
Sema.NumConformancesDeserialized 34,519 34,464 -55 -0.16%
Sema.NumConstraintScopes 339,542 339,392 -150 -0.04%
Sema.NumDeclsDeserialized 90,654 90,742 88 0.1%
Sema.NumDeclsValidated 29,412 29,412 0 0.0%
Sema.NumFunctionsTypechecked 5,465 5,465 0 0.0%
Sema.NumGenericSignatureBuilders 4,169 4,179 10 0.24%
Sema.NumLazyGenericEnvironments 14,421 14,496 75 0.52%
Sema.NumLazyGenericEnvironmentsLoaded 2,055 2,058 3 0.15%
Sema.NumLazyIterableDeclContexts 9,354 9,302 -52 -0.56%
Sema.NumTypesDeserialized 116,283 116,509 226 0.19%
Sema.NumTypesValidated 25,132 25,140 8 0.03%

@swift-ci
Copy link
Contributor

Build comment file:

Optimized (O)

Regression (4)
TEST OLD NEW DELTA SPEEDUP
Sim2DArray 417 599 +43.6% 0.70x
StringEqualPointerComparison 286 314 +9.8% 0.91x
Calculator 193 207 +7.3% 0.93x
BinaryFloatingPointPropertiesUlp 35 37 +5.7% 0.95x
Improvement (21)
TEST OLD NEW DELTA SPEEDUP
BinaryFloatingPointPropertiesBinade 31 25 -19.4% 1.24x
ChainedFilterMap 1407 1245 -11.5% 1.13x
CharIteration_utf16_unicodeScalars_Backwards 19482 17692 -9.2% 1.10x
UTF8Decode_InitFromBytes_ascii 532 488 -8.3% 1.09x (?)
CharIteration_ascii_unicodeScalars_Backwards 15585 14364 -7.8% 1.09x
CharIteration_japanese_unicodeScalars_Backwards 18655 17195 -7.8% 1.08x
CharIteration_korean_unicodeScalars_Backwards 15106 13928 -7.8% 1.08x
CharIteration_chinese_unicodeScalars_Backwards 11802 10882 -7.8% 1.08x
CharIteration_russian_unicodeScalars_Backwards 12985 11973 -7.8% 1.08x
CharIteration_punctuated_unicodeScalars_Backwards 3532 3269 -7.4% 1.08x
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 2822 2616 -7.3% 1.08x
CharIteration_tweet_unicodeScalars_Backwards 30768 28727 -6.6% 1.07x
CharIndexing_japanese_unicodeScalars 20536 19240 -6.3% 1.07x
CharIndexing_korean_unicodeScalars 16638 15599 -6.2% 1.07x
CharIndexing_ascii_unicodeScalars 17154 16087 -6.2% 1.07x
CharIndexing_russian_unicodeScalars 14286 13405 -6.2% 1.07x
CharIndexing_chinese_unicodeScalars 12986 12188 -6.1% 1.07x
CharIndexing_punctuatedJapanese_unicodeScalars 3097 2919 -5.7% 1.06x
CharIndexing_punctuated_unicodeScalars 3876 3662 -5.5% 1.06x
CharIteration_tweet_unicodeScalars 42112 40027 -5.0% 1.05x
UTF8Decode 312 297 -4.8% 1.05x
No Changes (433)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 3608 3614 +0.2% 1.00x (?)
AnyHashableWithAClass 91017 91003 -0.0% 1.00x (?)
Array2D 2851 2822 -1.0% 1.01x (?)
ArrayAppend 1062 1063 +0.1% 1.00x (?)
ArrayAppendArrayOfInt 790 793 +0.4% 1.00x (?)
ArrayAppendAscii 3875 3851 -0.6% 1.01x (?)
ArrayAppendAsciiSubstring 24984 25015 +0.1% 1.00x (?)
ArrayAppendFromGeneric 794 788 -0.8% 1.01x (?)
ArrayAppendGenericStructs 1417 1421 +0.3% 1.00x (?)
ArrayAppendLatin1 42399 41610 -1.9% 1.02x
ArrayAppendLatin1Substring 144067 143401 -0.5% 1.00x (?)
ArrayAppendLazyMap 1335 1334 -0.1% 1.00x (?)
ArrayAppendOptionals 1404 1418 +1.0% 0.99x (?)
ArrayAppendRepeatCol 1340 1337 -0.2% 1.00x (?)
ArrayAppendReserved 797 798 +0.1% 1.00x (?)
ArrayAppendSequence 1121 1117 -0.4% 1.00x (?)
ArrayAppendStrings 6228 6218 -0.2% 1.00x (?)
ArrayAppendToFromGeneric 793 797 +0.5% 0.99x (?)
ArrayAppendToGeneric 797 794 -0.4% 1.00x (?)
ArrayAppendUTF16 42644 41922 -1.7% 1.02x
ArrayAppendUTF16Substring 141503 141226 -0.2% 1.00x (?)
ArrayInClass 85 85 +0.0% 1.00x
ArrayLiteral 0 0 +0.0% 1.00x
ArrayOfGenericPOD2 151 151 +0.0% 1.00x
ArrayOfGenericRef 4385 4389 +0.1% 1.00x (?)
ArrayOfPOD 184 184 +0.0% 1.00x
ArrayOfRef 4394 4399 +0.1% 1.00x (?)
ArrayPlusEqualArrayOfInt 786 784 -0.3% 1.00x (?)
ArrayPlusEqualFiveElementCollection 5460 5466 +0.1% 1.00x (?)
ArrayPlusEqualSingleElementCollection 1066 1061 -0.5% 1.00x (?)
ArrayPlusEqualThreeElements 1661 1653 -0.5% 1.00x (?)
ArraySubscript 1522 1531 +0.6% 0.99x (?)
ArrayValueProp 8 8 +0.0% 1.00x
ArrayValueProp2 8 8 +0.0% 1.00x
ArrayValueProp3 8 8 +0.0% 1.00x
ArrayValueProp4 8 8 +0.0% 1.00x
BinaryFloatingPointPropertiesNextUp 28 28 +0.0% 1.00x
BitCount 202 211 +4.5% 0.96x
ByteSwap 103 106 +2.9% 0.97x (?)
COWArrayGuaranteedParameterOverhead 8823 8800 -0.3% 1.00x (?)
COWTree 3697 3663 -0.9% 1.01x (?)
CSVParsing 655159 656440 +0.2% 1.00x (?)
CSVParsingAlt 806689 803866 -0.3% 1.00x (?)
CSVParsingAltIndices 343340 343864 +0.2% 1.00x (?)
CStringLongAscii 4034 4036 +0.0% 1.00x (?)
CStringLongNonAscii 2285 2285 +0.0% 1.00x
CStringShortAscii 3332 3330 -0.1% 1.00x (?)
CaptureProp 4103 4084 -0.5% 1.00x (?)
CharIndexing_ascii_unicodeScalars_Backwards 16440 15842 -3.6% 1.04x
CharIndexing_chinese_unicodeScalars_Backwards 12447 12007 -3.5% 1.04x
CharIndexing_japanese_unicodeScalars_Backwards 19678 18954 -3.7% 1.04x
CharIndexing_korean_unicodeScalars_Backwards 15946 15359 -3.7% 1.04x
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 2974 2898 -2.6% 1.03x
CharIndexing_punctuated_unicodeScalars_Backwards 3722 3617 -2.8% 1.03x
CharIndexing_russian_unicodeScalars_Backwards 13700 13201 -3.6% 1.04x
CharIndexing_tweet_unicodeScalars 33079 31696 -4.2% 1.04x
CharIndexing_tweet_unicodeScalars_Backwards 32253 31265 -3.1% 1.03x
CharIndexing_utf16_unicodeScalars 22963 22791 -0.7% 1.01x (?)
CharIndexing_utf16_unicodeScalars_Backwards 23648 23482 -0.7% 1.01x
CharIteration_ascii_unicodeScalars 21334 20497 -3.9% 1.04x
CharIteration_chinese_unicodeScalars 16151 15492 -4.1% 1.04x
CharIteration_japanese_unicodeScalars 25457 24497 -3.8% 1.04x
CharIteration_korean_unicodeScalars 20658 19826 -4.0% 1.04x
CharIteration_punctuatedJapanese_unicodeScalars 3838 3700 -3.6% 1.04x
CharIteration_punctuated_unicodeScalars 4817 4630 -3.9% 1.04x
CharIteration_russian_unicodeScalars 17715 17040 -3.8% 1.04x
CharIteration_utf16_unicodeScalars 27947 27654 -1.0% 1.01x
CharacterLiteralsLarge 5804 5829 +0.4% 1.00x (?)
CharacterLiteralsSmall 220 217 -1.4% 1.01x
CharacterPropertiesFetch 4623 4589 -0.7% 1.01x (?)
CharacterPropertiesPrecomputed 999 994 -0.5% 1.01x (?)
CharacterPropertiesStashed 1489 1494 +0.3% 1.00x (?)
CharacterPropertiesStashedMemo 1553 1547 -0.4% 1.00x (?)
Chars 1022 1017 -0.5% 1.00x (?)
ClassArrayGetter 15 15 +0.0% 1.00x
Combos 501 490 -2.2% 1.02x (?)
DataAccessBytes 1143 1141 -0.2% 1.00x (?)
DataAppendArray 5308 5231 -1.5% 1.01x (?)
DataAppendBytes 4911 4971 +1.2% 0.99x (?)
DataAppendDataLargeToLarge 66778 67912 +1.7% 0.98x (?)
DataAppendDataLargeToMedium 35356 35336 -0.1% 1.00x (?)
DataAppendDataLargeToSmall 34481 34570 +0.3% 1.00x (?)
DataAppendDataMediumToLarge 37578 37542 -0.1% 1.00x (?)
DataAppendDataMediumToMedium 6700 6793 +1.4% 0.99x (?)
DataAppendDataMediumToSmall 6122 6053 -1.1% 1.01x (?)
DataAppendDataSmallToLarge 36988 37297 +0.8% 0.99x (?)
DataAppendDataSmallToMedium 6221 6248 +0.4% 1.00x (?)
DataAppendDataSmallToSmall 5866 6026 +2.7% 0.97x (?)
DataAppendSequence 20251 20455 +1.0% 0.99x (?)
DataCopyBytes 439 434 -1.1% 1.01x (?)
DataCount 37 37 +0.0% 1.00x
DataMutateBytes 3944 3899 -1.1% 1.01x (?)
DataReplaceLarge 36718 36357 -1.0% 1.01x (?)
DataReplaceLargeBuffer 56765 56469 -0.5% 1.01x (?)
DataReplaceMedium 7555 7666 +1.5% 0.99x (?)
DataReplaceMediumBuffer 10887 10914 +0.2% 1.00x (?)
DataReplaceSmall 5458 5499 +0.8% 0.99x (?)
DataReplaceSmallBuffer 8611 8595 -0.2% 1.00x (?)
DataReset 2829 2822 -0.2% 1.00x (?)
DataSetCount 550 551 +0.2% 1.00x (?)
DataSubscript 220 220 +0.0% 1.00x
DictOfArraysToArrayOfDicts 773 774 +0.1% 1.00x (?)
Dictionary 508 509 +0.2% 1.00x (?)
Dictionary2 633 631 -0.3% 1.00x (?)
Dictionary2OfObjects 2095 2099 +0.2% 1.00x (?)
Dictionary3 223 222 -0.4% 1.00x (?)
Dictionary3OfObjects 738 740 +0.3% 1.00x (?)
Dictionary4 314 314 +0.0% 1.00x
Dictionary4Legacy 693 694 +0.1% 1.00x (?)
Dictionary4OfObjects 430 429 -0.2% 1.00x (?)
Dictionary4OfObjectsLegacy 904 904 +0.0% 1.00x
DictionaryBridge 1198 1176 -1.8% 1.02x (?)
DictionaryBridgeToObjC_Access 968 951 -1.8% 1.02x (?)
DictionaryBridgeToObjC_Bridge 19 19 +0.0% 1.00x
DictionaryBridgeToObjC_BulkAccess 168 166 -1.2% 1.01x (?)
DictionaryCopy 107887 108282 +0.4% 1.00x (?)
DictionaryFilter 106674 105850 -0.8% 1.01x (?)
DictionaryGroup 215 215 +0.0% 1.00x
DictionaryGroupOfObjects 2130 2131 +0.0% 1.00x (?)
DictionaryKeysContainsCocoa 39 39 +0.0% 1.00x
DictionaryKeysContainsNative 32 32 +0.0% 1.00x
DictionaryLiteral 1916 1921 +0.3% 1.00x (?)
DictionaryOfObjects 2378 2381 +0.1% 1.00x (?)
DictionaryRemove 4168 4169 +0.0% 1.00x (?)
DictionaryRemoveOfObjects 25834 25779 -0.2% 1.00x (?)
DictionarySubscriptDefaultMutation 263 263 +0.0% 1.00x
DictionarySubscriptDefaultMutationArray 606 605 -0.2% 1.00x (?)
DictionarySubscriptDefaultMutationArrayOfObjects 4048 4049 +0.0% 1.00x (?)
DictionarySubscriptDefaultMutationOfObjects 1721 1722 +0.1% 1.00x (?)
DictionarySwap 1027 1028 +0.1% 1.00x (?)
DictionarySwapAt 6705 6685 -0.3% 1.00x (?)
DictionarySwapAtOfObjects 52138 52278 +0.3% 1.00x (?)
DictionarySwapOfObjects 8687 8697 +0.1% 1.00x (?)
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollection 76 76 +0.0% 1.00x
DropFirstAnyCollectionLazy 64188 64793 +0.9% 0.99x (?)
DropFirstAnySeqCRangeIter 93 93 +0.0% 1.00x
DropFirstAnySeqCRangeIterLazy 93 93 +0.0% 1.00x
DropFirstAnySeqCntRange 71 71 +0.0% 1.00x
DropFirstAnySeqCntRangeLazy 71 71 +0.0% 1.00x
DropFirstAnySequence 1841 1841 +0.0% 1.00x
DropFirstAnySequenceLazy 1841 1842 +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 2680 2681 +0.0% 1.00x (?)
DropFirstSequenceLazy 2769 2768 -0.0% 1.00x (?)
DropLastAnyCollection 28 28 +0.0% 1.00x
DropLastAnyCollectionLazy 21545 21328 -1.0% 1.01x (?)
DropLastAnySeqCRangeIter 3292 3275 -0.5% 1.01x (?)
DropLastAnySeqCRangeIterLazy 3286 3283 -0.1% 1.00x (?)
DropLastAnySeqCntRange 11 11 +0.0% 1.00x
DropLastAnySeqCntRangeLazy 11 11 +0.0% 1.00x
DropLastAnySequence 4963 4945 -0.4% 1.00x (?)
DropLastAnySequenceLazy 5062 5039 -0.5% 1.00x (?)
DropLastCountableRange 11 11 +0.0% 1.00x
DropLastCountableRangeLazy 11 11 +0.0% 1.00x
DropLastSequence 629 629 +0.0% 1.00x
DropLastSequenceLazy 629 629 +0.0% 1.00x
DropWhileAnyCollection 100 99 -1.0% 1.01x (?)
DropWhileAnyCollectionLazy 130 130 +0.0% 1.00x
DropWhileAnySeqCRangeIter 76 76 +0.0% 1.00x
DropWhileAnySeqCRangeIterLazy 130 130 +0.0% 1.00x
DropWhileAnySeqCntRange 95 95 +0.0% 1.00x
DropWhileAnySeqCntRangeLazy 130 130 +0.0% 1.00x
DropWhileAnySequence 1860 1860 +0.0% 1.00x
DropWhileAnySequenceLazy 1854 1854 +0.0% 1.00x
DropWhileArrayLazy 88 88 +0.0% 1.00x
DropWhileCountableRange 36 35 -2.8% 1.03x
DropWhileCountableRangeLazy 105 105 +0.0% 1.00x
DropWhileSequence 2205 2219 +0.6% 0.99x
DropWhileSequenceLazy 88 88 +0.0% 1.00x
EqualStringSubstring 49 49 +0.0% 1.00x
EqualSubstringString 49 49 +0.0% 1.00x
EqualSubstringSubstring 49 49 +0.0% 1.00x
EqualSubstringSubstringGenericEquatable 49 49 +0.0% 1.00x
ErrorHandling 1197 1192 -0.4% 1.00x (?)
ExclusivityGlobal 5 5 +0.0% 1.00x
ExclusivityIndependent 2 2 +0.0% 1.00x
FatCompactMap 208254 208135 -0.1% 1.00x (?)
FilterEvenUsingReduce 1305 1319 +1.1% 0.99x (?)
FilterEvenUsingReduceInto 149 149 +0.0% 1.00x
FloatingPointPrinting_Double_description_small 21626 21654 +0.1% 1.00x (?)
FloatingPointPrinting_Double_description_uniform 21211 21283 +0.3% 1.00x (?)
FloatingPointPrinting_Double_interpolated 62473 62342 -0.2% 1.00x (?)
FloatingPointPrinting_Float80_description_small 28459 28568 +0.4% 1.00x (?)
FloatingPointPrinting_Float80_description_uniform 27638 27643 +0.0% 1.00x (?)
FloatingPointPrinting_Float80_interpolated 65372 65203 -0.3% 1.00x (?)
FloatingPointPrinting_Float_description_small 5642 5636 -0.1% 1.00x (?)
FloatingPointPrinting_Float_description_uniform 5430 5462 +0.6% 0.99x
FloatingPointPrinting_Float_interpolated 38662 38594 -0.2% 1.00x (?)
FrequenciesUsingReduce 5001 5016 +0.3% 1.00x (?)
FrequenciesUsingReduceInto 1498 1487 -0.7% 1.01x (?)
Hanoi 2174 2170 -0.2% 1.00x (?)
HashTest 936 933 -0.3% 1.00x (?)
Histogram 642 638 -0.6% 1.01x (?)
Integrate 335 335 +0.0% 1.00x
IterateData 1503 1506 +0.2% 1.00x (?)
Join 164 164 +0.0% 1.00x
LazilyFilteredArrayContains 35458 35466 +0.0% 1.00x (?)
LazilyFilteredArrays 65219 65231 +0.0% 1.00x (?)
LazilyFilteredRange 3738 3746 +0.2% 1.00x (?)
LessSubstringSubstring 50 49 -2.0% 1.02x
LessSubstringSubstringGenericComparable 50 49 -2.0% 1.02x
LinkedList 7540 7539 -0.0% 1.00x (?)
LuhnAlgoEager 455 451 -0.9% 1.01x (?)
LuhnAlgoLazy 456 451 -1.1% 1.01x (?)
MapReduce 370 369 -0.3% 1.00x (?)
MapReduceAnyCollection 399 399 +0.0% 1.00x
MapReduceAnyCollectionShort 2037 2035 -0.1% 1.00x (?)
MapReduceClass 3005 3001 -0.1% 1.00x (?)
MapReduceClassShort 4560 4559 -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 456 454 -0.4% 1.00x (?)
MapReduceShort 2022 2027 +0.2% 1.00x (?)
MapReduceShortString 20 20 +0.0% 1.00x
MapReduceString 48 48 +0.0% 1.00x
Memset 215 214 -0.5% 1.00x (?)
MonteCarloE 10226 10363 +1.3% 0.99x
MonteCarloPi 42631 42807 +0.4% 1.00x (?)
NSDictionaryCastToSwift 6832 6829 -0.0% 1.00x (?)
NSError 165 165 +0.0% 1.00x
NSStringConversion 722 698 -3.3% 1.03x (?)
NibbleSort 3687 3688 +0.0% 1.00x (?)
NopDeinit 30149 30166 +0.1% 1.00x (?)
ObjectAllocation 133 133 +0.0% 1.00x
ObjectiveCBridgeFromNSArrayAnyObject 25295 25084 -0.8% 1.01x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 5568 5778 +3.8% 0.96x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 44590 44220 -0.8% 1.01x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 43436 42725 -1.6% 1.02x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 107936 107840 -0.1% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObject 50873 51255 +0.8% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 4956 4925 -0.6% 1.01x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 67812 66055 -2.6% 1.03x (?)
ObjectiveCBridgeFromNSString 1261 1252 -0.7% 1.01x (?)
ObjectiveCBridgeFromNSStringForced 2695 2696 +0.0% 1.00x (?)
ObjectiveCBridgeStubDataAppend 6306 6204 -1.6% 1.02x (?)
ObjectiveCBridgeStubDateMutation 400 400 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 32477 33732 +3.9% 0.96x (?)
ObjectiveCBridgeStubFromNSDate 6568 6569 +0.0% 1.00x (?)
ObjectiveCBridgeStubFromNSString 1029 1020 -0.9% 1.01x (?)
ObjectiveCBridgeStubFromNSStringRef 158 158 +0.0% 1.00x
ObjectiveCBridgeStubNSDataAppend 2569 2587 +0.7% 0.99x (?)
ObjectiveCBridgeStubNSDateMutationRef 13430 13336 -0.7% 1.01x (?)
ObjectiveCBridgeStubToArrayOfNSString 39413 39380 -0.1% 1.00x (?)
ObjectiveCBridgeStubToNSDate 15069 14976 -0.6% 1.01x (?)
ObjectiveCBridgeStubToNSDateRef 3481 3410 -2.0% 1.02x (?)
ObjectiveCBridgeStubToNSString 2340 2337 -0.1% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 115 115 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 278308 269822 -3.0% 1.03x (?)
ObjectiveCBridgeStubURLAppendPathRef 266685 265993 -0.3% 1.00x (?)
ObjectiveCBridgeToNSArray 14594 14622 +0.2% 1.00x (?)
ObjectiveCBridgeToNSDictionary 27517 26999 -1.9% 1.02x (?)
ObjectiveCBridgeToNSSet 17258 17829 +3.3% 0.97x (?)
ObjectiveCBridgeToNSString 452 452 +0.0% 1.00x
ObserverClosure 2144 2140 -0.2% 1.00x (?)
ObserverForwarderStruct 1207 1205 -0.2% 1.00x (?)
ObserverPartiallyAppliedMethod 3703 3703 +0.0% 1.00x
ObserverUnappliedMethod 2478 2482 +0.2% 1.00x (?)
OpaqueConsumingUsers 4178 4178 +0.0% 1.00x
OpenClose 65 68 +4.6% 0.96x
PartialApplyDynamicType 0 0 +0.0% 1.00x
Phonebook 6862 6914 +0.8% 0.99x
PointerArithmetics 31485 31485 +0.0% 1.00x
PolymorphicCalls 25 25 +0.0% 1.00x
PopFrontArray 1960 1892 -3.5% 1.04x (?)
PopFrontArrayGeneric 1906 1903 -0.2% 1.00x (?)
PopFrontUnsafePointer 8748 8734 -0.2% 1.00x (?)
PrefixAnyCollection 76 76 +0.0% 1.00x
PrefixAnyCollectionLazy 64767 64783 +0.0% 1.00x (?)
PrefixAnySeqCRangeIter 40 40 +0.0% 1.00x
PrefixAnySeqCRangeIterLazy 40 40 +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 1378 1378 +0.0% 1.00x
PrefixArray 35 35 +0.0% 1.00x
PrefixArrayLazy 35 35 +0.0% 1.00x
PrefixCountableRange 35 35 +0.0% 1.00x
PrefixCountableRangeLazy 35 35 +0.0% 1.00x
PrefixSequence 2213 2222 +0.4% 1.00x (?)
PrefixSequenceLazy 2278 2275 -0.1% 1.00x (?)
PrefixWhileAnyCollection 146 146 +0.0% 1.00x
PrefixWhileAnyCollectionLazy 71 71 +0.0% 1.00x
PrefixWhileAnySeqCRangeIter 381 379 -0.5% 1.01x (?)
PrefixWhileAnySeqCRangeIterLazy 89 89 +0.0% 1.00x
PrefixWhileAnySeqCntRange 142 142 +0.0% 1.00x
PrefixWhileAnySeqCntRangeLazy 71 71 +0.0% 1.00x
PrefixWhileAnySequence 1533 1535 +0.1% 1.00x (?)
PrefixWhileAnySequenceLazy 1390 1389 -0.1% 1.00x (?)
PrefixWhileArray 88 88 +0.0% 1.00x
PrefixWhileArrayLazy 70 70 +0.0% 1.00x
PrefixWhileCountableRange 36 36 +0.0% 1.00x
PrefixWhileCountableRangeLazy 35 35 +0.0% 1.00x
PrefixWhileSequence 357 357 +0.0% 1.00x
PrefixWhileSequenceLazy 52 52 +0.0% 1.00x
Prims 897 900 +0.3% 1.00x (?)
PrimsSplit 897 898 +0.1% 1.00x (?)
QueueConcrete 1149 1149 +0.0% 1.00x
QueueGeneric 1146 1148 +0.2% 1.00x (?)
RC4 161 161 +0.0% 1.00x
RGBHistogram 2952 2966 +0.5% 1.00x (?)
RGBHistogramOfObjects 23765 23751 -0.1% 1.00x (?)
Radix2CooleyTukey 12261 12369 +0.9% 0.99x (?)
Radix2CooleyTukeyf 8914 8943 +0.3% 1.00x (?)
RandomDoubleDef 26894 26892 -0.0% 1.00x (?)
RandomDoubleLCG 2236 2236 +0.0% 1.00x
RandomIntegersDef 24616 24586 -0.1% 1.00x (?)
RandomIntegersLCG 173 173 +0.0% 1.00x
RandomShuffleDef 809268 808608 -0.1% 1.00x (?)
RandomShuffleLCG 56965 56911 -0.1% 1.00x (?)
RangeAssignment 336 336 +0.0% 1.00x
RangeIterationSigned 200 200 +0.0% 1.00x
RangeReplaceableCollectionPlusDefault 1027 1029 +0.2% 1.00x (?)
RecursiveOwnedParameter 115 115 +0.0% 1.00x
RemoveWhereFilterInts 46 46 +0.0% 1.00x
RemoveWhereFilterString 249 250 +0.4% 1.00x
RemoveWhereFilterStrings 438 437 -0.2% 1.00x (?)
RemoveWhereMoveInts 15 15 +0.0% 1.00x
RemoveWhereMoveStrings 709 708 -0.1% 1.00x (?)
RemoveWhereQuadraticInts 1293 1292 -0.1% 1.00x (?)
RemoveWhereQuadraticString 372 375 +0.8% 0.99x (?)
RemoveWhereQuadraticStrings 2758 2761 +0.1% 1.00x (?)
RemoveWhereSwapInts 19 19 +0.0% 1.00x
RemoveWhereSwapStrings 858 859 +0.1% 1.00x (?)
ReversedArray 57 57 +0.0% 1.00x
ReversedBidirectional 16703 16694 -0.1% 1.00x (?)
ReversedDictionary 262 262 +0.0% 1.00x
RomanNumbers 84480 83194 -1.5% 1.02x
SequenceAlgosAnySequence 12132 12131 -0.0% 1.00x (?)
SequenceAlgosArray 1569 1571 +0.1% 1.00x (?)
SequenceAlgosContiguousArray 1576 1564 -0.8% 1.01x (?)
SequenceAlgosList 1347 1347 +0.0% 1.00x
SequenceAlgosRange 2575 2576 +0.0% 1.00x (?)
SequenceAlgosUnfoldSequence 1102 1102 +0.0% 1.00x
SetExclusiveOr 5084 5136 +1.0% 0.99x (?)
SetExclusiveOr_OfObjects 11626 11637 +0.1% 1.00x (?)
SetIntersect 696 698 +0.3% 1.00x (?)
SetIntersect_OfObjects 1766 1748 -1.0% 1.01x (?)
SetIsSubsetOf 341 343 +0.6% 0.99x
SetIsSubsetOf_OfObjects 441 441 +0.0% 1.00x
SetUnion 4464 4389 -1.7% 1.02x
SetUnion_OfObjects 9997 10149 +1.5% 0.99x
SevenBoom 839 839 +0.0% 1.00x
SortLargeExistentials 5591 5524 -1.2% 1.01x (?)
SortLettersInPlace 994 998 +0.4% 1.00x (?)
SortSortedStrings 859 853 -0.7% 1.01x
SortStrings 1792 1769 -1.3% 1.01x
SortStringsUnicode 2591 2547 -1.7% 1.02x
StackPromo 24497 24492 -0.0% 1.00x (?)
StaticArray 9 9 +0.0% 1.00x
StrComplexWalk 1780 1776 -0.2% 1.00x (?)
StrToInt 3221 3174 -1.5% 1.01x (?)
StringAdder 546 548 +0.4% 1.00x (?)
StringBuilder 452 453 +0.2% 1.00x (?)
StringBuilderLong 1267 1255 -0.9% 1.01x (?)
StringBuilderSmallReservingCapacity 476 468 -1.7% 1.02x
StringBuilderWithLongSubstring 1431 1432 +0.1% 1.00x (?)
StringComparison_abnormal 791 790 -0.1% 1.00x (?)
StringComparison_ascii 1015 1032 +1.7% 0.98x
StringComparison_emoji 859 870 +1.3% 0.99x (?)
StringComparison_fastPrenormal 849 852 +0.4% 1.00x (?)
StringComparison_latin1 662 666 +0.6% 0.99x (?)
StringComparison_longSharedPrefix 956 964 +0.8% 0.99x (?)
StringComparison_nonBMPSlowestPrenormal 1696 1700 +0.2% 1.00x (?)
StringComparison_slowerPrenormal 1819 1825 +0.3% 1.00x (?)
StringComparison_zalgo 112394 112402 +0.0% 1.00x (?)
StringEdits 174152 173840 -0.2% 1.00x (?)
StringEnumRawValueInitialization 848 850 +0.2% 1.00x (?)
StringFromLongWholeSubstring 21 21 +0.0% 1.00x
StringFromLongWholeSubstringGeneric 21 21 +0.0% 1.00x
StringHasPrefixAscii 2233 2232 -0.0% 1.00x (?)
StringHasPrefixUnicode 99094 99067 -0.0% 1.00x (?)
StringHasSuffixAscii 2289 2289 +0.0% 1.00x
StringHasSuffixUnicode 100206 100235 +0.0% 1.00x (?)
StringHashing_abnormal 1329 1329 +0.0% 1.00x
StringHashing_ascii 33 33 +0.0% 1.00x
StringHashing_emoji 1871 1870 -0.1% 1.00x (?)
StringHashing_fastPrenormal 8399 8403 +0.0% 1.00x (?)
StringHashing_latin1 2562 2563 +0.0% 1.00x (?)
StringHashing_longSharedPrefix 8058 8062 +0.0% 1.00x (?)
StringHashing_nonBMPSlowestPrenormal 2038 2047 +0.4% 1.00x (?)
StringHashing_slowerPrenormal 2737 2736 -0.0% 1.00x (?)
StringHashing_zalgo 3487 3484 -0.1% 1.00x (?)
StringInterpolation 9165 9049 -1.3% 1.01x (?)
StringInterpolationManySmallSegments 18440 18386 -0.3% 1.00x (?)
StringInterpolationSmall 4273 4290 +0.4% 1.00x (?)
StringMatch 12197 12281 +0.7% 0.99x
StringRemoveDupes 478 470 -1.7% 1.02x (?)
StringUTF16Builder 2700 2706 +0.2% 1.00x (?)
StringUTF16SubstringBuilder 5919 5865 -0.9% 1.01x (?)
StringWalk 1568 1545 -1.5% 1.01x
StringWithCString 44513 44478 -0.1% 1.00x (?)
StringWordBuilder 2261 2263 +0.1% 1.00x (?)
StringWordBuilderReservingCapacity 1938 1938 +0.0% 1.00x
SubstringComparable 13 13 +0.0% 1.00x
SubstringEqualString 618 619 +0.2% 1.00x (?)
SubstringEquatable 1447 1463 +1.1% 0.99x (?)
SubstringFromLongString 10 10 +0.0% 1.00x
SubstringFromLongStringGeneric 74 74 +0.0% 1.00x
SuffixAnyCollection 28 28 +0.0% 1.00x
SuffixAnyCollectionLazy 21606 21606 +0.0% 1.00x
SuffixAnySeqCRangeIter 3582 3590 +0.2% 1.00x (?)
SuffixAnySeqCRangeIterLazy 3584 3585 +0.0% 1.00x (?)
SuffixAnySeqCntRange 17 17 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 17 17 +0.0% 1.00x
SuffixAnySequence 4929 4944 +0.3% 1.00x (?)
SuffixAnySequenceLazy 5021 5031 +0.2% 1.00x (?)
SuffixCountableRange 11 11 +0.0% 1.00x
SuffixCountableRangeLazy 11 11 +0.0% 1.00x
SuffixSequence 3590 3623 +0.9% 0.99x (?)
SuffixSequenceLazy 3589 3618 +0.8% 0.99x (?)
SumUsingReduce 102 101 -1.0% 1.01x
SumUsingReduceInto 97 97 +0.0% 1.00x
SuperChars 20118 20061 -0.3% 1.00x (?)
TwoSum 1469 1465 -0.3% 1.00x (?)
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode_InitDecoding 1348 1350 +0.1% 1.00x (?)
UTF8Decode_InitDecoding_ascii 652 658 +0.9% 0.99x (?)
UTF8Decode_InitFromBytes 1189 1188 -0.1% 1.00x (?)
UTF8Decode_InitFromData 1233 1239 +0.5% 1.00x (?)
UTF8Decode_InitFromData_ascii 659 662 +0.5% 1.00x (?)
Walsh 420 433 +3.1% 0.97x
WordCountHistogramASCII 8076 8078 +0.0% 1.00x (?)
WordCountHistogramUTF16 11388 11264 -1.1% 1.01x (?)
WordCountUniqueASCII 2148 2091 -2.7% 1.03x
WordCountUniqueUTF16 4608 4589 -0.4% 1.00x (?)
WordSplitASCII 9090 9058 -0.4% 1.00x (?)
WordSplitUTF16 10420 10451 +0.3% 1.00x (?)
XorLoop 398 400 +0.5% 1.00x (?)

Unoptimized (Onone)

Regression (1)
TEST OLD NEW DELTA SPEEDUP
StringBuilderWithLongSubstring 3199 3508 +9.7% 0.91x (?)
Improvement (9)
TEST OLD NEW DELTA SPEEDUP
TypeFlood 218 195 -10.6% 1.12x (?)
UTF8Decode_InitFromBytes_ascii 638 575 -9.9% 1.11x (?)
DictionaryBridgeToObjC_Access 1433 1326 -7.5% 1.08x (?)
DataReplaceSmallBuffer 9214 8580 -6.9% 1.07x (?)
CharIndexing_korean_unicodeScalars 370327 349654 -5.6% 1.06x (?)
CharIndexing_ascii_unicodeScalars 382824 362799 -5.2% 1.06x (?)
CharIndexing_japanese_unicodeScalars_Backwards 539514 512960 -4.9% 1.05x (?)
Dictionary4OfObjects 1891 1798 -4.9% 1.05x (?)
WordSplitASCII 13819 13160 -4.8% 1.05x (?)
No Changes (448)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 5186 5033 -3.0% 1.03x (?)
AnyHashableWithAClass 107487 107497 +0.0% 1.00x (?)
Array2D 619842 617956 -0.3% 1.00x (?)
ArrayAppend 4434 4555 +2.7% 0.97x (?)
ArrayAppendArrayOfInt 863 866 +0.3% 1.00x (?)
ArrayAppendAscii 27052 27035 -0.1% 1.00x (?)
ArrayAppendAsciiSubstring 71799 71575 -0.3% 1.00x (?)
ArrayAppendFromGeneric 870 869 -0.1% 1.00x (?)
ArrayAppendGenericStructs 1505 1504 -0.1% 1.00x (?)
ArrayAppendLatin1 66360 66636 +0.4% 1.00x (?)
ArrayAppendLatin1Substring 160596 160244 -0.2% 1.00x (?)
ArrayAppendLazyMap 165648 165934 +0.2% 1.00x (?)
ArrayAppendOptionals 1497 1507 +0.7% 0.99x (?)
ArrayAppendRepeatCol 191120 191100 -0.0% 1.00x (?)
ArrayAppendReserved 4164 4281 +2.8% 0.97x
ArrayAppendSequence 104441 104350 -0.1% 1.00x (?)
ArrayAppendStrings 6341 6335 -0.1% 1.00x (?)
ArrayAppendToFromGeneric 872 869 -0.3% 1.00x (?)
ArrayAppendToGeneric 877 875 -0.2% 1.00x (?)
ArrayAppendUTF16 66472 66671 +0.3% 1.00x (?)
ArrayAppendUTF16Substring 158886 158029 -0.5% 1.01x (?)
ArrayInClass 6673 6707 +0.5% 0.99x
ArrayLiteral 1795 1794 -0.1% 1.00x (?)
ArrayOfGenericPOD2 1128 1130 +0.2% 1.00x (?)
ArrayOfGenericRef 10537 10536 -0.0% 1.00x (?)
ArrayOfPOD 846 850 +0.5% 1.00x
ArrayOfRef 9684 9671 -0.1% 1.00x (?)
ArrayPlusEqualArrayOfInt 870 868 -0.2% 1.00x (?)
ArrayPlusEqualFiveElementCollection 228080 229012 +0.4% 1.00x (?)
ArrayPlusEqualSingleElementCollection 225996 225471 -0.2% 1.00x (?)
ArrayPlusEqualThreeElements 9015 9141 +1.4% 0.99x (?)
ArraySubscript 107503 105537 -1.8% 1.02x (?)
ArrayValueProp 3751 3734 -0.5% 1.00x (?)
ArrayValueProp2 14945 14928 -0.1% 1.00x (?)
ArrayValueProp3 4252 4268 +0.4% 1.00x (?)
ArrayValueProp4 4202 4225 +0.5% 0.99x (?)
BinaryFloatingPointPropertiesBinade 85 88 +3.5% 0.97x
BinaryFloatingPointPropertiesNextUp 132 132 +0.0% 1.00x
BinaryFloatingPointPropertiesUlp 137 131 -4.4% 1.05x
BitCount 8675 9049 +4.3% 0.96x
ByteSwap 9823 9557 -2.7% 1.03x
COWArrayGuaranteedParameterOverhead 14136 14241 +0.7% 0.99x (?)
COWTree 11870 11840 -0.3% 1.00x (?)
CSVParsing 2776697 2766183 -0.4% 1.00x (?)
CSVParsingAlt 1422892 1421359 -0.1% 1.00x (?)
CSVParsingAltIndices 2278152 2326570 +2.1% 0.98x (?)
CStringLongAscii 4234 4164 -1.7% 1.02x (?)
CStringLongNonAscii 2445 2437 -0.3% 1.00x (?)
CStringShortAscii 6108 6077 -0.5% 1.01x (?)
Calculator 978 965 -1.3% 1.01x
CaptureProp 284356 284209 -0.1% 1.00x (?)
ChainedFilterMap 228790 229432 +0.3% 1.00x (?)
CharIndexing_ascii_unicodeScalars_Backwards 419873 416499 -0.8% 1.01x (?)
CharIndexing_chinese_unicodeScalars 289056 284964 -1.4% 1.01x (?)
CharIndexing_chinese_unicodeScalars_Backwards 319877 320360 +0.2% 1.00x (?)
CharIndexing_japanese_unicodeScalars 450259 463324 +2.9% 0.97x (?)
CharIndexing_korean_unicodeScalars_Backwards 413850 402203 -2.8% 1.03x (?)
CharIndexing_punctuatedJapanese_unicodeScalars 66549 65385 -1.7% 1.02x (?)
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 74224 72501 -2.3% 1.02x (?)
CharIndexing_punctuated_unicodeScalars 83005 80837 -2.6% 1.03x (?)
CharIndexing_punctuated_unicodeScalars_Backwards 93866 90625 -3.5% 1.04x (?)
CharIndexing_russian_unicodeScalars 317357 304402 -4.1% 1.04x (?)
CharIndexing_russian_unicodeScalars_Backwards 346186 348481 +0.7% 0.99x (?)
CharIndexing_tweet_unicodeScalars 729059 720957 -1.1% 1.01x (?)
CharIndexing_tweet_unicodeScalars_Backwards 837057 813160 -2.9% 1.03x (?)
CharIndexing_utf16_unicodeScalars 316330 308884 -2.4% 1.02x (?)
CharIndexing_utf16_unicodeScalars_Backwards 341582 336952 -1.4% 1.01x (?)
CharIteration_ascii_unicodeScalars 146517 146503 -0.0% 1.00x (?)
CharIteration_ascii_unicodeScalars_Backwards 248327 248357 +0.0% 1.00x (?)
CharIteration_chinese_unicodeScalars 111106 110993 -0.1% 1.00x (?)
CharIteration_chinese_unicodeScalars_Backwards 187763 187375 -0.2% 1.00x (?)
CharIteration_japanese_unicodeScalars 175901 175379 -0.3% 1.00x (?)
CharIteration_japanese_unicodeScalars_Backwards 298156 297911 -0.1% 1.00x (?)
CharIteration_korean_unicodeScalars 142877 142792 -0.1% 1.00x (?)
CharIteration_korean_unicodeScalars_Backwards 240624 240104 -0.2% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars 26076 26082 +0.0% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 43286 43338 +0.1% 1.00x (?)
CharIteration_punctuated_unicodeScalars 32830 32799 -0.1% 1.00x (?)
CharIteration_punctuated_unicodeScalars_Backwards 55627 54686 -1.7% 1.02x (?)
CharIteration_russian_unicodeScalars 121717 121486 -0.2% 1.00x (?)
CharIteration_russian_unicodeScalars_Backwards 208762 209385 +0.3% 1.00x (?)
CharIteration_tweet_unicodeScalars 296111 295775 -0.1% 1.00x (?)
CharIteration_tweet_unicodeScalars_Backwards 501748 506765 +1.0% 0.99x (?)
CharIteration_utf16_unicodeScalars 125125 124966 -0.1% 1.00x (?)
CharIteration_utf16_unicodeScalars_Backwards 221434 218105 -1.5% 1.02x (?)
CharacterLiteralsLarge 5752 5759 +0.1% 1.00x (?)
CharacterLiteralsSmall 701 682 -2.7% 1.03x
CharacterPropertiesFetch 5629 5748 +2.1% 0.98x (?)
CharacterPropertiesPrecomputed 3471 3465 -0.2% 1.00x (?)
CharacterPropertiesStashed 2375 2367 -0.3% 1.00x (?)
CharacterPropertiesStashedMemo 4303 4295 -0.2% 1.00x (?)
Chars 35188 35217 +0.1% 1.00x (?)
ClassArrayGetter 963 962 -0.1% 1.00x (?)
Combos 2338 2353 +0.6% 0.99x (?)
DataAccessBytes 2407 2355 -2.2% 1.02x (?)
DataAppendArray 5388 5440 +1.0% 0.99x (?)
DataAppendBytes 4961 5122 +3.2% 0.97x (?)
DataAppendDataLargeToLarge 67423 67396 -0.0% 1.00x (?)
DataAppendDataLargeToMedium 35748 35371 -1.1% 1.01x (?)
DataAppendDataLargeToSmall 34153 34403 +0.7% 0.99x (?)
DataAppendDataMediumToLarge 38363 38662 +0.8% 0.99x (?)
DataAppendDataMediumToMedium 6602 6442 -2.4% 1.02x (?)
DataAppendDataMediumToSmall 5939 5966 +0.5% 1.00x (?)
DataAppendDataSmallToLarge 36691 36939 +0.7% 0.99x (?)
DataAppendDataSmallToMedium 6176 6119 -0.9% 1.01x (?)
DataAppendDataSmallToSmall 6034 5933 -1.7% 1.02x (?)
DataAppendSequence 2005004 1989592 -0.8% 1.01x
DataCopyBytes 457 449 -1.8% 1.02x (?)
DataCount 223 223 +0.0% 1.00x
DataMutateBytes 5129 5178 +1.0% 0.99x (?)
DataReplaceLarge 36710 36780 +0.2% 1.00x (?)
DataReplaceLargeBuffer 56815 56738 -0.1% 1.00x (?)
DataReplaceMedium 7820 7656 -2.1% 1.02x (?)
DataReplaceMediumBuffer 11843 11492 -3.0% 1.03x (?)
DataReplaceSmall 5678 5628 -0.9% 1.01x (?)
DataReset 2864 2832 -1.1% 1.01x (?)
DataSetCount 578 589 +1.9% 0.98x (?)
DataSubscript 444 443 -0.2% 1.00x
DictOfArraysToArrayOfDicts 3510 3563 +1.5% 0.99x (?)
Dictionary 2147 2157 +0.5% 1.00x (?)
Dictionary2 1278 1278 +0.0% 1.00x
Dictionary2OfObjects 4285 4221 -1.5% 1.02x (?)
Dictionary3 833 835 +0.2% 1.00x (?)
Dictionary3OfObjects 2271 2323 +2.3% 0.98x (?)
Dictionary4 1198 1195 -0.3% 1.00x (?)
Dictionary4Legacy 1460 1454 -0.4% 1.00x (?)
Dictionary4OfObjectsLegacy 2045 2148 +5.0% 0.95x (?)
DictionaryBridge 1342 1350 +0.6% 0.99x (?)
DictionaryBridgeToObjC_Bridge 19 19 +0.0% 1.00x
DictionaryBridgeToObjC_BulkAccess 170 168 -1.2% 1.01x (?)
DictionaryCopy 313118 312404 -0.2% 1.00x (?)
DictionaryFilter 327420 326085 -0.4% 1.00x (?)
DictionaryGroup 4401 4409 +0.2% 1.00x (?)
DictionaryGroupOfObjects 7080 7030 -0.7% 1.01x (?)
DictionaryKeysContainsCocoa 66 63 -4.5% 1.05x (?)
DictionaryKeysContainsNative 52 54 +3.8% 0.96x (?)
DictionaryLiteral 9318 9323 +0.1% 1.00x (?)
DictionaryOfObjects 5985 5791 -3.2% 1.03x (?)
DictionaryRemove 16871 16825 -0.3% 1.00x (?)
DictionaryRemoveOfObjects 54910 52846 -3.8% 1.04x (?)
DictionarySubscriptDefaultMutation 1976 1971 -0.3% 1.00x (?)
DictionarySubscriptDefaultMutationArray 2250 2242 -0.4% 1.00x (?)
DictionarySubscriptDefaultMutationArrayOfObjects 9356 9223 -1.4% 1.01x (?)
DictionarySubscriptDefaultMutationOfObjects 5273 5245 -0.5% 1.01x (?)
DictionarySwap 4954 4956 +0.0% 1.00x (?)
DictionarySwapAt 32614 32468 -0.4% 1.00x (?)
DictionarySwapAtOfObjects 114117 112526 -1.4% 1.01x (?)
DictionarySwapOfObjects 19236 18983 -1.3% 1.01x (?)
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollection 15383 15359 -0.2% 1.00x (?)
DropFirstAnyCollectionLazy 103307 105172 +1.8% 0.98x (?)
DropFirstAnySeqCRangeIter 23819 23872 +0.2% 1.00x (?)
DropFirstAnySeqCRangeIterLazy 23720 23803 +0.3% 1.00x (?)
DropFirstAnySeqCntRange 15400 15451 +0.3% 1.00x
DropFirstAnySeqCntRangeLazy 15494 15525 +0.2% 1.00x (?)
DropFirstAnySequence 13025 12991 -0.3% 1.00x (?)
DropFirstAnySequenceLazy 12810 12925 +0.9% 0.99x
DropFirstArray 3487 3498 +0.3% 1.00x (?)
DropFirstArrayLazy 29803 29716 -0.3% 1.00x (?)
DropFirstCountableRange 344 345 +0.3% 1.00x (?)
DropFirstCountableRangeLazy 34808 34782 -0.1% 1.00x (?)
DropFirstSequence 12586 12551 -0.3% 1.00x (?)
DropFirstSequenceLazy 12461 12391 -0.6% 1.01x
DropLastAnyCollection 5147 5146 -0.0% 1.00x (?)
DropLastAnyCollectionLazy 34980 34487 -1.4% 1.01x (?)
DropLastAnySeqCRangeIter 39436 39509 +0.2% 1.00x (?)
DropLastAnySeqCRangeIterLazy 39608 39537 -0.2% 1.00x (?)
DropLastAnySeqCntRange 5139 5145 +0.1% 1.00x (?)
DropLastAnySeqCntRangeLazy 5183 5185 +0.0% 1.00x (?)
DropLastAnySequence 29461 29394 -0.2% 1.00x (?)
DropLastAnySequenceLazy 29635 29647 +0.0% 1.00x (?)
DropLastCountableRange 119 119 +0.0% 1.00x
DropLastCountableRangeLazy 11601 11607 +0.1% 1.00x (?)
DropLastSequence 29815 29774 -0.1% 1.00x (?)
DropLastSequenceLazy 29435 29337 -0.3% 1.00x (?)
DropWhileAnyCollection 20155 20132 -0.1% 1.00x (?)
DropWhileAnyCollectionLazy 22578 22555 -0.1% 1.00x (?)
DropWhileAnySeqCRangeIter 28118 28135 +0.1% 1.00x (?)
DropWhileAnySeqCRangeIterLazy 22501 22511 +0.0% 1.00x (?)
DropWhileAnySeqCntRange 20167 20122 -0.2% 1.00x (?)
DropWhileAnySeqCntRangeLazy 22406 22416 +0.0% 1.00x (?)
DropWhileAnySequence 13693 13730 +0.3% 1.00x (?)
DropWhileAnySequenceLazy 12409 12318 -0.7% 1.01x (?)
DropWhileArrayLazy 13721 13719 -0.0% 1.00x (?)
DropWhileCountableRange 4957 4945 -0.2% 1.00x
DropWhileCountableRangeLazy 22058 22045 -0.1% 1.00x (?)
DropWhileSequence 13248 13259 +0.1% 1.00x (?)
DropWhileSequenceLazy 12120 11971 -1.2% 1.01x
EqualStringSubstring 72 72 +0.0% 1.00x
EqualSubstringString 72 71 -1.4% 1.01x
EqualSubstringSubstring 72 72 +0.0% 1.00x
EqualSubstringSubstringGenericEquatable 61 61 +0.0% 1.00x
ErrorHandling 5176 5300 +2.4% 0.98x
ExclusivityGlobal 188 192 +2.1% 0.98x
ExclusivityIndependent 73 73 +0.0% 1.00x
FatCompactMap 286793 287240 +0.2% 1.00x (?)
FilterEvenUsingReduce 3635 3649 +0.4% 1.00x (?)
FilterEvenUsingReduceInto 1902 1901 -0.1% 1.00x (?)
FloatingPointPrinting_Double_description_small 22340 22329 -0.0% 1.00x (?)
FloatingPointPrinting_Double_description_uniform 33823 33740 -0.2% 1.00x (?)
FloatingPointPrinting_Double_interpolated 96748 98122 +1.4% 0.99x (?)
FloatingPointPrinting_Float80_description_small 29501 29707 +0.7% 0.99x (?)
FloatingPointPrinting_Float80_description_uniform 59735 60066 +0.6% 0.99x (?)
FloatingPointPrinting_Float80_interpolated 129700 129182 -0.4% 1.00x (?)
FloatingPointPrinting_Float_description_small 6479 6473 -0.1% 1.00x (?)
FloatingPointPrinting_Float_description_uniform 17200 17101 -0.6% 1.01x
FloatingPointPrinting_Float_interpolated 71779 68825 -4.1% 1.04x (?)
FrequenciesUsingReduce 10559 10520 -0.4% 1.00x (?)
FrequenciesUsingReduceInto 3105 3098 -0.2% 1.00x (?)
Hanoi 19437 19372 -0.3% 1.00x (?)
HashTest 21275 21160 -0.5% 1.01x (?)
Histogram 6279 6273 -0.1% 1.00x (?)
Integrate 588 588 +0.0% 1.00x
IterateData 4971 4973 +0.0% 1.00x (?)
Join 185 185 +0.0% 1.00x
LazilyFilteredArrayContains 738685 739492 +0.1% 1.00x (?)
LazilyFilteredArrays 1417818 1417052 -0.1% 1.00x (?)
LazilyFilteredRange 540103 539480 -0.1% 1.00x (?)
LessSubstringSubstring 72 72 +0.0% 1.00x
LessSubstringSubstringGenericComparable 58 58 +0.0% 1.00x
LinkedList 32483 32491 +0.0% 1.00x (?)
LuhnAlgoEager 5792 5663 -2.2% 1.02x (?)
LuhnAlgoLazy 5875 5865 -0.2% 1.00x (?)
MapReduce 25078 25096 +0.1% 1.00x (?)
MapReduceAnyCollection 25001 24972 -0.1% 1.00x (?)
MapReduceAnyCollectionShort 36752 36752 +0.0% 1.00x
MapReduceClass 29072 29009 -0.2% 1.00x (?)
MapReduceClassShort 40967 39690 -3.1% 1.03x (?)
MapReduceLazyCollection 22214 22277 +0.3% 1.00x (?)
MapReduceLazyCollectionShort 32278 32576 +0.9% 0.99x (?)
MapReduceLazySequence 20185 20201 +0.1% 1.00x (?)
MapReduceSequence 30067 30061 -0.0% 1.00x (?)
MapReduceShort 36265 36816 +1.5% 0.99x (?)
MapReduceShortString 214 215 +0.5% 1.00x (?)
MapReduceString 1703 1705 +0.1% 1.00x (?)
Memset 45037 45031 -0.0% 1.00x (?)
MonteCarloE 1138014 1128906 -0.8% 1.01x (?)
MonteCarloPi 5204856 5119866 -1.6% 1.02x
NSDictionaryCastToSwift 8369 7997 -4.4% 1.05x (?)
NSError 613 589 -3.9% 1.04x (?)
NSStringConversion 748 749 +0.1% 1.00x (?)
NibbleSort 511485 509467 -0.4% 1.00x
NopDeinit 197777 197779 +0.0% 1.00x (?)
ObjectAllocation 1259 1309 +4.0% 0.96x (?)
ObjectiveCBridgeFromNSArrayAnyObject 28235 28395 +0.6% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 9622 10098 +4.9% 0.95x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 47936 48620 +1.4% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 48744 46654 -4.3% 1.04x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 114309 115059 +0.7% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObject 55728 56885 +2.1% 0.98x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 5571 5635 +1.1% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 74493 74187 -0.4% 1.00x (?)
ObjectiveCBridgeFromNSString 2890 2924 +1.2% 0.99x (?)
ObjectiveCBridgeFromNSStringForced 2816 2831 +0.5% 0.99x (?)
ObjectiveCBridgeStubDataAppend 6677 6677 +0.0% 1.00x
ObjectiveCBridgeStubDateMutation 746 746 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 34328 34230 -0.3% 1.00x (?)
ObjectiveCBridgeStubFromNSDate 6938 6939 +0.0% 1.00x (?)
ObjectiveCBridgeStubFromNSString 1072 1071 -0.1% 1.00x (?)
ObjectiveCBridgeStubFromNSStringRef 193 193 +0.0% 1.00x
ObjectiveCBridgeStubNSDataAppend 3098 3072 -0.8% 1.01x (?)
ObjectiveCBridgeStubNSDateMutationRef 16075 15665 -2.6% 1.03x (?)
ObjectiveCBridgeStubToArrayOfNSString 39945 40689 +1.9% 0.98x (?)
ObjectiveCBridgeStubToNSDate 15540 15743 +1.3% 0.99x (?)
ObjectiveCBridgeStubToNSDateRef 3493 3479 -0.4% 1.00x (?)
ObjectiveCBridgeStubToNSString 2431 2431 +0.0% 1.00x
ObjectiveCBridgeStubToNSStringRef 150 150 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 293285 280178 -4.5% 1.05x (?)
ObjectiveCBridgeStubURLAppendPathRef 289929 292255 +0.8% 0.99x (?)
ObjectiveCBridgeToNSArray 15248 15513 +1.7% 0.98x (?)
ObjectiveCBridgeToNSDictionary 30034 29534 -1.7% 1.02x (?)
ObjectiveCBridgeToNSSet 19261 19117 -0.7% 1.01x (?)
ObjectiveCBridgeToNSString 537 544 +1.3% 0.99x (?)
ObserverClosure 6347 6348 +0.0% 1.00x (?)
ObserverForwarderStruct 4214 4200 -0.3% 1.00x (?)
ObserverPartiallyAppliedMethod 7953 7909 -0.6% 1.01x (?)
ObserverUnappliedMethod 7835 7841 +0.1% 1.00x (?)
OpaqueConsumingUsers 13415 13752 +2.5% 0.98x (?)
OpenClose 576 575 -0.2% 1.00x (?)
PartialApplyDynamicType 41660 42316 +1.6% 0.98x (?)
Phonebook 15779 15802 +0.1% 1.00x (?)
PointerArithmetics 123173 117486 -4.6% 1.05x
PolymorphicCalls 2426 2422 -0.2% 1.00x (?)
PopFrontArray 4651 4619 -0.7% 1.01x (?)
PopFrontArrayGeneric 5922 5890 -0.5% 1.01x (?)
PopFrontUnsafePointer 11206 11198 -0.1% 1.00x (?)
PrefixAnyCollection 15424 15435 +0.1% 1.00x (?)
PrefixAnyCollectionLazy 103274 103028 -0.2% 1.00x (?)
PrefixAnySeqCRangeIter 18899 19038 +0.7% 0.99x (?)
PrefixAnySeqCRangeIterLazy 18967 18903 -0.3% 1.00x (?)
PrefixAnySeqCntRange 15462 15449 -0.1% 1.00x (?)
PrefixAnySeqCntRangeLazy 15513 15524 +0.1% 1.00x (?)
PrefixAnySequence 10537 10551 +0.1% 1.00x (?)
PrefixAnySequenceLazy 10532 10532 +0.0% 1.00x
PrefixArray 3472 3605 +3.8% 0.96x (?)
PrefixArrayLazy 29667 29686 +0.1% 1.00x (?)
PrefixCountableRange 345 344 -0.3% 1.00x (?)
PrefixCountableRangeLazy 34818 34801 -0.0% 1.00x (?)
PrefixSequence 10229 10152 -0.8% 1.01x
PrefixSequenceLazy 10079 10161 +0.8% 0.99x (?)
PrefixWhileAnyCollection 29178 29235 +0.2% 1.00x (?)
PrefixWhileAnyCollectionLazy 18680 18642 -0.2% 1.00x
PrefixWhileAnySeqCRangeIter 33492 33493 +0.0% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 18614 18561 -0.3% 1.00x
PrefixWhileAnySeqCntRange 29281 29280 -0.0% 1.00x (?)
PrefixWhileAnySeqCntRangeLazy 18536 18548 +0.1% 1.00x (?)
PrefixWhileAnySequence 25824 25850 +0.1% 1.00x (?)
PrefixWhileAnySequenceLazy 11007 10969 -0.3% 1.00x (?)
PrefixWhileArray 10389 10389 +0.0% 1.00x
PrefixWhileArrayLazy 12094 12102 +0.1% 1.00x (?)
PrefixWhileCountableRange 13991 13978 -0.1% 1.00x (?)
PrefixWhileCountableRangeLazy 18279 18233 -0.3% 1.00x (?)
PrefixWhileSequence 25571 25574 +0.0% 1.00x (?)
PrefixWhileSequenceLazy 10779 10807 +0.3% 1.00x (?)
Prims 9135 9134 -0.0% 1.00x (?)
PrimsSplit 9257 9210 -0.5% 1.01x (?)
QueueConcrete 14870 14908 +0.3% 1.00x (?)
QueueGeneric 19788 19741 -0.2% 1.00x (?)
RC4 16178 16174 -0.0% 1.00x (?)
RGBHistogram 22993 22947 -0.2% 1.00x (?)
RGBHistogramOfObjects 78464 78615 +0.2% 1.00x (?)
Radix2CooleyTukey 41600 41670 +0.2% 1.00x
Radix2CooleyTukeyf 35506 35634 +0.4% 1.00x (?)
RandomDoubleDef 91402 93493 +2.3% 0.98x (?)
RandomDoubleLCG 59017 58766 -0.4% 1.00x (?)
RandomIntegersDef 43846 43895 +0.1% 1.00x (?)
RandomIntegersLCG 32309 32502 +0.6% 0.99x (?)
RandomShuffleDef 2173017 2175986 +0.1% 1.00x (?)
RandomShuffleLCG 1440448 1440096 -0.0% 1.00x (?)
RangeAssignment 2828 2849 +0.7% 0.99x (?)
RangeIterationSigned 14577 14565 -0.1% 1.00x (?)
RangeReplaceableCollectionPlusDefault 10339 10279 -0.6% 1.01x (?)
RecursiveOwnedParameter 6190 6180 -0.2% 1.00x (?)
RemoveWhereFilterInts 2057 2057 +0.0% 1.00x
RemoveWhereFilterString 1344 1345 +0.1% 1.00x (?)
RemoveWhereFilterStrings 2594 2589 -0.2% 1.00x (?)
RemoveWhereMoveInts 3323 3328 +0.2% 1.00x (?)
RemoveWhereMoveStrings 3879 3878 -0.0% 1.00x (?)
RemoveWhereQuadraticInts 8455 8445 -0.1% 1.00x (?)
RemoveWhereQuadraticString 2609 2612 +0.1% 1.00x (?)
RemoveWhereQuadraticStrings 10107 10105 -0.0% 1.00x (?)
RemoveWhereSwapInts 5988 5987 -0.0% 1.00x (?)
RemoveWhereSwapStrings 6724 6726 +0.0% 1.00x (?)
ReversedArray 12561 12543 -0.1% 1.00x (?)
ReversedBidirectional 44897 45061 +0.4% 1.00x (?)
ReversedDictionary 23797 23839 +0.2% 1.00x (?)
RomanNumbers 1276717 1268368 -0.7% 1.01x (?)
SequenceAlgosAnySequence 13087 13092 +0.0% 1.00x (?)
SequenceAlgosArray 730494 731054 +0.1% 1.00x (?)
SequenceAlgosContiguousArray 301237 301187 -0.0% 1.00x (?)
SequenceAlgosList 8797 8774 -0.3% 1.00x (?)
SequenceAlgosRange 1287295 1287574 +0.0% 1.00x (?)
SequenceAlgosUnfoldSequence 6489 6487 -0.0% 1.00x (?)
SetExclusiveOr 16490 16414 -0.5% 1.00x (?)
SetExclusiveOr_OfObjects 42160 42215 +0.1% 1.00x (?)
SetIntersect 6910 6907 -0.0% 1.00x (?)
SetIntersect_OfObjects 10613 10531 -0.8% 1.01x (?)
SetIsSubsetOf 1206 1206 +0.0% 1.00x
SetIsSubsetOf_OfObjects 2280 2269 -0.5% 1.00x (?)
SetUnion 11977 11982 +0.0% 1.00x (?)
SetUnion_OfObjects 30264 30333 +0.2% 1.00x (?)
SevenBoom 1019 1015 -0.4% 1.00x (?)
Sim2DArray 43822 43817 -0.0% 1.00x (?)
SortLargeExistentials 9866 9857 -0.1% 1.00x (?)
SortLettersInPlace 1572 1583 +0.7% 0.99x (?)
SortSortedStrings 891 892 +0.1% 1.00x (?)
SortStrings 1868 1866 -0.1% 1.00x (?)
SortStringsUnicode 2763 2765 +0.1% 1.00x (?)
StackPromo 94781 95284 +0.5% 0.99x (?)
StaticArray 2560 2561 +0.0% 1.00x (?)
StrComplexWalk 7264 7263 -0.0% 1.00x (?)
StrToInt 78024 77853 -0.2% 1.00x (?)
StringAdder 752 751 -0.1% 1.00x (?)
StringBuilder 5014 5013 -0.0% 1.00x (?)
StringBuilderLong 1502 1551 +3.3% 0.97x (?)
StringBuilderSmallReservingCapacity 5107 5059 -0.9% 1.01x (?)
StringComparison_abnormal 1385 1391 +0.4% 1.00x (?)
StringComparison_ascii 8801 8798 -0.0% 1.00x (?)
StringComparison_emoji 2047 1983 -3.1% 1.03x (?)
StringComparison_fastPrenormal 4799 4802 +0.1% 1.00x (?)
StringComparison_latin1 3757 3759 +0.1% 1.00x (?)
StringComparison_longSharedPrefix 2333 2333 +0.0% 1.00x
StringComparison_nonBMPSlowestPrenormal 3858 3681 -4.6% 1.05x (?)
StringComparison_slowerPrenormal 4289 4149 -3.3% 1.03x
StringComparison_zalgo 114996 114462 -0.5% 1.00x (?)
StringEdits 380005 389775 +2.6% 0.97x
StringEnumRawValueInitialization 21241 21237 -0.0% 1.00x (?)
StringEqualPointerComparison 1720 1689 -1.8% 1.02x
StringFromLongWholeSubstring 22 22 +0.0% 1.00x
StringFromLongWholeSubstringGeneric 199 199 +0.0% 1.00x
StringHasPrefixAscii 3268 3227 -1.3% 1.01x
StringHasPrefixUnicode 101050 100313 -0.7% 1.01x (?)
StringHasSuffixAscii 3293 3248 -1.4% 1.01x
StringHasSuffixUnicode 101468 101135 -0.3% 1.00x (?)
StringHashing_abnormal 1439 1445 +0.4% 1.00x (?)
StringHashing_ascii 208 208 +0.0% 1.00x
StringHashing_emoji 2044 2078 +1.7% 0.98x (?)
StringHashing_fastPrenormal 8664 8663 -0.0% 1.00x (?)
StringHashing_latin1 2786 2780 -0.2% 1.00x (?)
StringHashing_longSharedPrefix 8247 8255 +0.1% 1.00x (?)
StringHashing_nonBMPSlowestPrenormal 2276 2291 +0.7% 0.99x (?)
StringHashing_slowerPrenormal 2971 2963 -0.3% 1.00x
StringHashing_zalgo 3599 3585 -0.4% 1.00x (?)
StringInterpolation 11562 11621 +0.5% 0.99x (?)
StringInterpolationManySmallSegments 18916 18910 -0.0% 1.00x (?)
StringInterpolationSmall 6137 6150 +0.2% 1.00x (?)
StringMatch 38764 38529 -0.6% 1.01x (?)
StringRemoveDupes 735 734 -0.1% 1.00x (?)
StringUTF16Builder 7996 8082 +1.1% 0.99x (?)
StringUTF16SubstringBuilder 21307 21402 +0.4% 1.00x (?)
StringWalk 13117 13126 +0.1% 1.00x (?)
StringWithCString 41412 41367 -0.1% 1.00x (?)
StringWordBuilder 2439 2443 +0.2% 1.00x (?)
StringWordBuilderReservingCapacity 2066 2076 +0.5% 1.00x
SubstringComparable 1575 1574 -0.1% 1.00x (?)
SubstringEqualString 1718 1720 +0.1% 1.00x (?)
SubstringEquatable 5375 5385 +0.2% 1.00x (?)
SubstringFromLongString 15 15 +0.0% 1.00x
SubstringFromLongStringGeneric 104 104 +0.0% 1.00x
SuffixAnyCollection 5156 5147 -0.2% 1.00x (?)
SuffixAnyCollectionLazy 35427 34567 -2.4% 1.02x (?)
SuffixAnySeqCRangeIter 35396 35350 -0.1% 1.00x (?)
SuffixAnySeqCRangeIterLazy 35590 35527 -0.2% 1.00x (?)
SuffixAnySeqCntRange 5143 5141 -0.0% 1.00x (?)
SuffixAnySeqCntRangeLazy 5189 5191 +0.0% 1.00x (?)
SuffixAnySequence 25232 25229 -0.0% 1.00x (?)
SuffixAnySequenceLazy 25242 25261 +0.1% 1.00x (?)
SuffixCountableRange 122 119 -2.5% 1.03x
SuffixCountableRangeLazy 11638 11623 -0.1% 1.00x (?)
SuffixSequence 25204 25199 -0.0% 1.00x (?)
SuffixSequenceLazy 25111 25092 -0.1% 1.00x (?)
SumUsingReduce 155736 155760 +0.0% 1.00x (?)
SumUsingReduceInto 148862 149047 +0.1% 1.00x (?)
SuperChars 93521 93211 -0.3% 1.00x (?)
TwoSum 3480 3471 -0.3% 1.00x (?)
UTF8Decode 29349 29347 -0.0% 1.00x (?)
UTF8Decode_InitDecoding 1402 1423 +1.5% 0.99x (?)
UTF8Decode_InitDecoding_ascii 882 875 -0.8% 1.01x (?)
UTF8Decode_InitFromBytes 1208 1197 -0.9% 1.01x (?)
UTF8Decode_InitFromData 1256 1256 +0.0% 1.00x
UTF8Decode_InitFromData_ascii 821 782 -4.8% 1.05x (?)
Walsh 12409 12432 +0.2% 1.00x (?)
WordCountHistogramASCII 36948 36972 +0.1% 1.00x (?)
WordCountHistogramUTF16 42747 42911 +0.4% 1.00x (?)
WordCountUniqueASCII 6956 6957 +0.0% 1.00x (?)
WordCountUniqueUTF16 10414 10425 +0.1% 1.00x (?)
WordSplitUTF16 14472 14723 +1.7% 0.98x (?)
XorLoop 23800 23791 -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

@xedin
Copy link
Contributor Author

xedin commented Jul 11, 2018

@swift-ci please benchmark

@xedin
Copy link
Contributor Author

xedin commented Jul 11, 2018

@swift-ci please smoke test compiler performance

@swift-ci
Copy link
Contributor

Build comment file:

Summary for master smoketest

Unexpected test results, excluded stats for ReactiveCocoa

No regressions above thresholds

Debug

debug brief

Regressed (0)
name old new delta delta_pct
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (2)
name old new delta delta_pct
LLVM.NumLLVMBytesOutput 14,697,004 14,696,216 -788 -0.01%
time.swift-driver.wall 33.0s 32.7s -260.1ms -0.79%

debug detailed

Regressed (0)
name old new delta delta_pct
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (23)
name old new delta delta_pct
AST.NumImportedExternalDefinitions 18,126 18,126 0 0.0%
AST.NumLoadedModules 2,488 2,488 0 0.0%
AST.NumTotalClangImportedEntities 53,276 53,264 -12 -0.02%
AST.NumUsedConformances 2,133 2,127 -6 -0.28%
IRModule.NumIRBasicBlocks 48,646 48,646 0 0.0%
IRModule.NumIRFunctions 27,123 27,121 -2 -0.01%
IRModule.NumIRGlobals 27,960 27,952 -8 -0.03%
IRModule.NumIRInsts 618,599 618,565 -34 -0.01%
IRModule.NumIRValueSymbols 49,652 49,642 -10 -0.02%
LLVM.NumLLVMBytesOutput 14,697,004 14,696,216 -788 -0.01%
SILModule.NumSILGenFunctions 21,641 21,639 -2 -0.01%
SILModule.NumSILOptFunctions 18,641 18,641 0 0.0%
Sema.NumConformancesDeserialized 71,120 70,992 -128 -0.18%
Sema.NumConstraintScopes 343,508 343,358 -150 -0.04%
Sema.NumDeclsDeserialized 446,550 446,270 -280 -0.06%
Sema.NumDeclsValidated 38,310 38,310 0 0.0%
Sema.NumFunctionsTypechecked 11,678 11,678 0 0.0%
Sema.NumGenericSignatureBuilders 20,760 20,760 0 0.0%
Sema.NumLazyGenericEnvironments 84,281 84,275 -6 -0.01%
Sema.NumLazyGenericEnvironmentsLoaded 9,144 9,136 -8 -0.09%
Sema.NumLazyIterableDeclContexts 71,027 70,953 -74 -0.1%
Sema.NumTypesDeserialized 476,604 476,448 -156 -0.03%
Sema.NumTypesValidated 51,948 51,948 0 0.0%

Release

release brief

Regressed (0)
name old new delta delta_pct
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (2)
name old new delta delta_pct
LLVM.NumLLVMBytesOutput 15,889,196 15,889,192 -4 -0.0%
time.swift-driver.wall 55.6s 55.6s -46.7ms -0.08%

release detailed

Regressed (0)
name old new delta delta_pct
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (23)
name old new delta delta_pct
AST.NumImportedExternalDefinitions 4,626 4,626 0 0.0%
AST.NumLoadedModules 169 169 0 0.0%
AST.NumTotalClangImportedEntities 14,694 14,682 -12 -0.08%
AST.NumUsedConformances 2,136 2,130 -6 -0.28%
IRModule.NumIRBasicBlocks 53,182 53,182 0 0.0%
IRModule.NumIRFunctions 22,747 22,747 0 0.0%
IRModule.NumIRGlobals 23,393 23,393 0 0.0%
IRModule.NumIRInsts 494,725 494,725 0 0.0%
IRModule.NumIRValueSymbols 43,371 43,371 0 0.0%
LLVM.NumLLVMBytesOutput 15,889,196 15,889,192 -4 -0.0%
SILModule.NumSILGenFunctions 10,938 10,936 -2 -0.02%
SILModule.NumSILOptFunctions 15,521 15,467 -54 -0.35%
Sema.NumConformancesDeserialized 34,519 34,383 -136 -0.39%
Sema.NumConstraintScopes 339,542 339,392 -150 -0.04%
Sema.NumDeclsDeserialized 90,709 90,597 -112 -0.12%
Sema.NumDeclsValidated 29,412 29,412 0 0.0%
Sema.NumFunctionsTypechecked 5,465 5,465 0 0.0%
Sema.NumGenericSignatureBuilders 4,169 4,169 0 0.0%
Sema.NumLazyGenericEnvironments 14,442 14,440 -2 -0.01%
Sema.NumLazyGenericEnvironmentsLoaded 2,055 2,053 -2 -0.1%
Sema.NumLazyIterableDeclContexts 9,354 9,282 -72 -0.77%
Sema.NumTypesDeserialized 116,274 116,224 -50 -0.04%
Sema.NumTypesValidated 25,132 25,132 0 0.0%

@swift-ci
Copy link
Contributor

Build comment file:

Optimized (O)

Regression (7)
TEST OLD NEW DELTA SPEEDUP
DropLastCountableRangeLazy 11 12 +9.1% 0.92x
MapReduceLazyCollectionShort 34 37 +8.8% 0.92x
DataCount 34 37 +8.8% 0.92x
RC4 149 161 +8.1% 0.93x
RandomDoubleLCG 2176 2346 +7.8% 0.93x
MapReduce 371 398 +7.3% 0.93x
NopDeinit 30148 32189 +6.8% 0.94x
Improvement (7)
TEST OLD NEW DELTA SPEEDUP
ObjectiveCBridgeStubFromNSStringRef 187 155 -17.1% 1.21x (?)
RangeIterationSigned 200 171 -14.5% 1.17x
DropLastCountableRange 12 11 -8.3% 1.09x
PointerArithmetics 34341 31483 -8.3% 1.09x
MapReduceAnyCollection 398 370 -7.0% 1.08x
RemoveWhereMoveInts 15 14 -6.7% 1.07x
DictionaryBridgeToObjC_Access 973 924 -5.0% 1.05x (?)
No Changes (444)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 3561 3556 -0.1% 1.00x (?)
AnyHashableWithAClass 91024 91108 +0.1% 1.00x (?)
Array2D 2823 2817 -0.2% 1.00x (?)
ArrayAppend 1065 1064 -0.1% 1.00x (?)
ArrayAppendArrayOfInt 798 793 -0.6% 1.01x (?)
ArrayAppendAscii 3817 3835 +0.5% 1.00x (?)
ArrayAppendAsciiSubstring 24925 24868 -0.2% 1.00x (?)
ArrayAppendFromGeneric 784 787 +0.4% 1.00x (?)
ArrayAppendGenericStructs 1421 1430 +0.6% 0.99x (?)
ArrayAppendLatin1 41817 41799 -0.0% 1.00x (?)
ArrayAppendLatin1Substring 142273 144989 +1.9% 0.98x
ArrayAppendLazyMap 1335 1340 +0.4% 1.00x (?)
ArrayAppendOptionals 1414 1405 -0.6% 1.01x (?)
ArrayAppendRepeatCol 1335 1335 +0.0% 1.00x
ArrayAppendReserved 797 796 -0.1% 1.00x (?)
ArrayAppendSequence 1120 1118 -0.2% 1.00x (?)
ArrayAppendStrings 6322 6330 +0.1% 1.00x (?)
ArrayAppendToFromGeneric 798 787 -1.4% 1.01x (?)
ArrayAppendToGeneric 785 790 +0.6% 0.99x (?)
ArrayAppendUTF16 42080 41793 -0.7% 1.01x (?)
ArrayAppendUTF16Substring 140470 142518 +1.5% 0.99x (?)
ArrayInClass 85 85 +0.0% 1.00x
ArrayLiteral 0 0 +0.0% 1.00x
ArrayOfGenericPOD2 150 150 +0.0% 1.00x
ArrayOfGenericRef 4362 4376 +0.3% 1.00x (?)
ArrayOfPOD 182 184 +1.1% 0.99x (?)
ArrayOfRef 4391 4398 +0.2% 1.00x (?)
ArrayPlusEqualArrayOfInt 799 797 -0.3% 1.00x (?)
ArrayPlusEqualFiveElementCollection 5488 5498 +0.2% 1.00x (?)
ArrayPlusEqualSingleElementCollection 1066 1066 +0.0% 1.00x
ArrayPlusEqualThreeElements 1647 1648 +0.1% 1.00x (?)
ArraySubscript 1553 1549 -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
BinaryFloatingPointPropertiesBinade 25 25 +0.0% 1.00x
BinaryFloatingPointPropertiesNextUp 28 28 +0.0% 1.00x
BinaryFloatingPointPropertiesUlp 37 37 +0.0% 1.00x
BitCount 202 202 +0.0% 1.00x
ByteSwap 103 105 +1.9% 0.98x
COWArrayGuaranteedParameterOverhead 8788 8818 +0.3% 1.00x (?)
COWTree 3729 3673 -1.5% 1.02x (?)
CSVParsing 656067 656798 +0.1% 1.00x (?)
CSVParsingAlt 811038 808828 -0.3% 1.00x (?)
CSVParsingAltIndices 350205 350448 +0.1% 1.00x (?)
CStringLongAscii 4110 4110 +0.0% 1.00x
CStringLongNonAscii 2395 2394 -0.0% 1.00x (?)
CStringShortAscii 3347 3342 -0.1% 1.00x (?)
Calculator 191 191 +0.0% 1.00x
CaptureProp 4088 4107 +0.5% 1.00x (?)
ChainedFilterMap 1407 1406 -0.1% 1.00x (?)
CharIndexing_ascii_unicodeScalars 16080 16273 +1.2% 0.99x (?)
CharIndexing_ascii_unicodeScalars_Backwards 15846 16127 +1.8% 0.98x
CharIndexing_chinese_unicodeScalars 12180 12326 +1.2% 0.99x
CharIndexing_chinese_unicodeScalars_Backwards 12010 12233 +1.9% 0.98x
CharIndexing_japanese_unicodeScalars 19244 19474 +1.2% 0.99x
CharIndexing_japanese_unicodeScalars_Backwards 18959 19338 +2.0% 0.98x
CharIndexing_korean_unicodeScalars 15597 15796 +1.3% 0.99x
CharIndexing_korean_unicodeScalars_Backwards 15362 15556 +1.3% 0.99x
CharIndexing_punctuatedJapanese_unicodeScalars 2929 2948 +0.6% 0.99x
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 2906 2935 +1.0% 0.99x
CharIndexing_punctuated_unicodeScalars 3650 3697 +1.3% 0.99x
CharIndexing_punctuated_unicodeScalars_Backwards 3622 3667 +1.2% 0.99x
CharIndexing_russian_unicodeScalars 13399 13565 +1.2% 0.99x
CharIndexing_russian_unicodeScalars_Backwards 13207 13433 +1.7% 0.98x
CharIndexing_tweet_unicodeScalars 31691 32060 +1.2% 0.99x
CharIndexing_tweet_unicodeScalars_Backwards 31306 31887 +1.9% 0.98x
CharIndexing_utf16_unicodeScalars 22810 22839 +0.1% 1.00x (?)
CharIndexing_utf16_unicodeScalars_Backwards 23437 23548 +0.5% 1.00x (?)
CharIteration_ascii_unicodeScalars 20285 20437 +0.7% 0.99x (?)
CharIteration_ascii_unicodeScalars_Backwards 14360 14746 +2.7% 0.97x
CharIteration_chinese_unicodeScalars 15371 15470 +0.6% 0.99x
CharIteration_chinese_unicodeScalars_Backwards 10882 11182 +2.8% 0.97x
CharIteration_japanese_unicodeScalars 24291 24477 +0.8% 0.99x
CharIteration_japanese_unicodeScalars_Backwards 17190 17662 +2.7% 0.97x
CharIteration_korean_unicodeScalars 19668 19819 +0.8% 0.99x (?)
CharIteration_korean_unicodeScalars_Backwards 13925 14298 +2.7% 0.97x
CharIteration_punctuatedJapanese_unicodeScalars 3641 3673 +0.9% 0.99x
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 2613 2690 +2.9% 0.97x
CharIteration_punctuated_unicodeScalars 4574 4590 +0.3% 1.00x (?)
CharIteration_punctuated_unicodeScalars_Backwards 3265 3359 +2.9% 0.97x
CharIteration_russian_unicodeScalars 16904 17019 +0.7% 0.99x
CharIteration_russian_unicodeScalars_Backwards 11966 12295 +2.7% 0.97x
CharIteration_tweet_unicodeScalars 40046 40327 +0.7% 0.99x (?)
CharIteration_tweet_unicodeScalars_Backwards 28718 29101 +1.3% 0.99x
CharIteration_utf16_unicodeScalars 27713 27775 +0.2% 1.00x (?)
CharIteration_utf16_unicodeScalars_Backwards 17748 17859 +0.6% 0.99x (?)
CharacterLiteralsLarge 5828 5823 -0.1% 1.00x (?)
CharacterLiteralsSmall 220 220 +0.0% 1.00x
CharacterPropertiesFetch 4638 4616 -0.5% 1.00x (?)
CharacterPropertiesPrecomputed 998 1003 +0.5% 1.00x (?)
CharacterPropertiesStashed 1516 1513 -0.2% 1.00x (?)
CharacterPropertiesStashedMemo 1544 1550 +0.4% 1.00x (?)
Chars 1019 1019 +0.0% 1.00x
ClassArrayGetter 15 15 +0.0% 1.00x
Combos 495 494 -0.2% 1.00x (?)
DataAccessBytes 1141 1140 -0.1% 1.00x (?)
DataAppendArray 5225 5324 +1.9% 0.98x (?)
DataAppendBytes 5003 4892 -2.2% 1.02x (?)
DataAppendDataLargeToLarge 67907 67853 -0.1% 1.00x (?)
DataAppendDataLargeToMedium 35345 35225 -0.3% 1.00x (?)
DataAppendDataLargeToSmall 34212 34304 +0.3% 1.00x (?)
DataAppendDataMediumToLarge 37872 37966 +0.2% 1.00x (?)
DataAppendDataMediumToMedium 6546 6534 -0.2% 1.00x (?)
DataAppendDataMediumToSmall 5932 5900 -0.5% 1.01x (?)
DataAppendDataSmallToLarge 36918 36968 +0.1% 1.00x (?)
DataAppendDataSmallToMedium 6070 6080 +0.2% 1.00x (?)
DataAppendDataSmallToSmall 5732 5831 +1.7% 0.98x (?)
DataAppendSequence 19936 20320 +1.9% 0.98x (?)
DataCopyBytes 440 434 -1.4% 1.01x (?)
DataMutateBytes 3914 3924 +0.3% 1.00x (?)
DataReplaceLarge 36945 36867 -0.2% 1.00x (?)
DataReplaceLargeBuffer 57586 57091 -0.9% 1.01x (?)
DataReplaceMedium 7626 7802 +2.3% 0.98x (?)
DataReplaceMediumBuffer 11097 11589 +4.4% 0.96x (?)
DataReplaceSmall 5484 5561 +1.4% 0.99x (?)
DataReplaceSmallBuffer 8484 8506 +0.3% 1.00x (?)
DataReset 2832 2820 -0.4% 1.00x (?)
DataSetCount 549 544 -0.9% 1.01x (?)
DataSubscript 220 220 +0.0% 1.00x
DictOfArraysToArrayOfDicts 765 768 +0.4% 1.00x (?)
Dictionary 508 511 +0.6% 0.99x (?)
Dictionary2 624 629 +0.8% 0.99x (?)
Dictionary2OfObjects 2063 2064 +0.0% 1.00x (?)
Dictionary3 223 223 +0.0% 1.00x
Dictionary3OfObjects 731 735 +0.5% 0.99x (?)
Dictionary4 313 317 +1.3% 0.99x
Dictionary4Legacy 691 693 +0.3% 1.00x (?)
Dictionary4OfObjects 430 433 +0.7% 0.99x (?)
Dictionary4OfObjectsLegacy 904 903 -0.1% 1.00x (?)
DictionaryBridge 1153 1159 +0.5% 0.99x (?)
DictionaryBridgeToObjC_Bridge 19 19 +0.0% 1.00x
DictionaryBridgeToObjC_BulkAccess 168 168 +0.0% 1.00x
DictionaryCopy 107715 107796 +0.1% 1.00x (?)
DictionaryFilter 106466 105622 -0.8% 1.01x (?)
DictionaryGroup 218 218 +0.0% 1.00x
DictionaryGroupOfObjects 2122 2136 +0.7% 0.99x (?)
DictionaryKeysContainsCocoa 40 40 +0.0% 1.00x
DictionaryKeysContainsNative 31 31 +0.0% 1.00x
DictionaryLiteral 1891 1897 +0.3% 1.00x (?)
DictionaryOfObjects 2361 2354 -0.3% 1.00x (?)
DictionaryRemove 4176 4200 +0.6% 0.99x (?)
DictionaryRemoveOfObjects 25725 25771 +0.2% 1.00x (?)
DictionarySubscriptDefaultMutation 265 265 +0.0% 1.00x
DictionarySubscriptDefaultMutationArray 620 620 +0.0% 1.00x
DictionarySubscriptDefaultMutationArrayOfObjects 4036 4036 +0.0% 1.00x
DictionarySubscriptDefaultMutationOfObjects 1697 1708 +0.6% 0.99x (?)
DictionarySwap 1027 1027 +0.0% 1.00x
DictionarySwapAt 6715 6984 +4.0% 0.96x (?)
DictionarySwapAtOfObjects 51994 52081 +0.2% 1.00x (?)
DictionarySwapOfObjects 8780 8709 -0.8% 1.01x (?)
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollection 76 76 +0.0% 1.00x
DropFirstAnyCollectionLazy 65233 65020 -0.3% 1.00x (?)
DropFirstAnySeqCRangeIter 93 93 +0.0% 1.00x
DropFirstAnySeqCRangeIterLazy 93 93 +0.0% 1.00x
DropFirstAnySeqCntRange 71 71 +0.0% 1.00x
DropFirstAnySeqCntRangeLazy 71 71 +0.0% 1.00x
DropFirstAnySequence 1841 1842 +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 2680 2680 +0.0% 1.00x
DropFirstSequenceLazy 2774 2774 +0.0% 1.00x
DropLastAnyCollection 28 28 +0.0% 1.00x
DropLastAnyCollectionLazy 21890 21813 -0.4% 1.00x (?)
DropLastAnySeqCRangeIter 3338 3348 +0.3% 1.00x (?)
DropLastAnySeqCRangeIterLazy 3337 3344 +0.2% 1.00x (?)
DropLastAnySeqCntRange 11 11 +0.0% 1.00x
DropLastAnySeqCntRangeLazy 11 11 +0.0% 1.00x
DropLastAnySequence 4953 4931 -0.4% 1.00x (?)
DropLastAnySequenceLazy 5030 5026 -0.1% 1.00x (?)
DropLastSequence 673 643 -4.5% 1.05x
DropLastSequenceLazy 672 643 -4.3% 1.05x
DropWhileAnyCollection 99 100 +1.0% 0.99x
DropWhileAnyCollectionLazy 130 130 +0.0% 1.00x
DropWhileAnySeqCRangeIter 75 75 +0.0% 1.00x
DropWhileAnySeqCRangeIterLazy 130 130 +0.0% 1.00x
DropWhileAnySeqCntRange 95 95 +0.0% 1.00x
DropWhileAnySeqCntRangeLazy 130 130 +0.0% 1.00x
DropWhileAnySequence 1859 1859 +0.0% 1.00x
DropWhileAnySequenceLazy 1854 1854 +0.0% 1.00x
DropWhileArrayLazy 88 88 +0.0% 1.00x
DropWhileCountableRange 36 35 -2.8% 1.03x
DropWhileCountableRangeLazy 105 105 +0.0% 1.00x
DropWhileSequence 2219 2218 -0.0% 1.00x (?)
DropWhileSequenceLazy 88 88 +0.0% 1.00x
EqualStringSubstring 49 51 +4.1% 0.96x
EqualSubstringString 49 49 +0.0% 1.00x
EqualSubstringSubstring 48 48 +0.0% 1.00x
EqualSubstringSubstringGenericEquatable 48 48 +0.0% 1.00x
ErrorHandling 1187 1178 -0.8% 1.01x (?)
ExclusivityGlobal 5 5 +0.0% 1.00x
ExclusivityIndependent 2 2 +0.0% 1.00x
FatCompactMap 210283 209737 -0.3% 1.00x (?)
FilterEvenUsingReduce 1331 1337 +0.5% 1.00x (?)
FilterEvenUsingReduceInto 159 159 +0.0% 1.00x
FloatingPointPrinting_Double_description_small 21552 21587 +0.2% 1.00x (?)
FloatingPointPrinting_Double_description_uniform 21036 21055 +0.1% 1.00x (?)
FloatingPointPrinting_Double_interpolated 62425 62286 -0.2% 1.00x (?)
FloatingPointPrinting_Float80_description_small 28613 28661 +0.2% 1.00x (?)
FloatingPointPrinting_Float80_description_uniform 27618 27600 -0.1% 1.00x (?)
FloatingPointPrinting_Float80_interpolated 65399 65236 -0.2% 1.00x (?)
FloatingPointPrinting_Float_description_small 5612 5591 -0.4% 1.00x (?)
FloatingPointPrinting_Float_description_uniform 5427 5384 -0.8% 1.01x (?)
FloatingPointPrinting_Float_interpolated 38635 38585 -0.1% 1.00x (?)
FrequenciesUsingReduce 4843 4830 -0.3% 1.00x (?)
FrequenciesUsingReduceInto 1478 1477 -0.1% 1.00x (?)
Hanoi 2086 2153 +3.2% 0.97x
HashTest 930 936 +0.6% 0.99x (?)
Histogram 641 649 +1.2% 0.99x
Integrate 341 334 -2.1% 1.02x
IterateData 1576 1542 -2.2% 1.02x
Join 164 164 +0.0% 1.00x
LazilyFilteredArrayContains 36656 37454 +2.2% 0.98x (?)
LazilyFilteredArrays 64946 65053 +0.2% 1.00x (?)
LazilyFilteredRange 3883 3868 -0.4% 1.00x (?)
LessSubstringSubstring 49 48 -2.0% 1.02x
LessSubstringSubstringGenericComparable 49 48 -2.0% 1.02x (?)
LinkedList 7543 7541 -0.0% 1.00x (?)
LuhnAlgoEager 450 450 +0.0% 1.00x
LuhnAlgoLazy 452 446 -1.3% 1.01x (?)
MapReduceAnyCollectionShort 2035 2071 +1.8% 0.98x (?)
MapReduceClass 2995 3000 +0.2% 1.00x (?)
MapReduceClassShort 4571 4563 -0.2% 1.00x (?)
MapReduceLazyCollection 13 13 +0.0% 1.00x
MapReduceLazySequence 86 86 +0.0% 1.00x
MapReduceSequence 456 455 -0.2% 1.00x (?)
MapReduceShort 2030 2014 -0.8% 1.01x (?)
MapReduceShortString 20 20 +0.0% 1.00x
MapReduceString 48 48 +0.0% 1.00x
Memset 215 214 -0.5% 1.00x (?)
MonteCarloE 10279 10260 -0.2% 1.00x (?)
MonteCarloPi 42668 42732 +0.1% 1.00x (?)
NSDictionaryCastToSwift 7064 7132 +1.0% 0.99x (?)
NSError 163 163 +0.0% 1.00x
NSStringConversion 689 688 -0.1% 1.00x (?)
NibbleSort 3687 3704 +0.5% 1.00x (?)
ObjectAllocation 132 132 +0.0% 1.00x
ObjectiveCBridgeFromNSArrayAnyObject 24946 25068 +0.5% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 4632 4715 +1.8% 0.98x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 44435 44633 +0.4% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 43257 43029 -0.5% 1.01x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 108979 107953 -0.9% 1.01x (?)
ObjectiveCBridgeFromNSSetAnyObject 47665 46967 -1.5% 1.01x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 4921 4919 -0.0% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 65879 66969 +1.7% 0.98x (?)
ObjectiveCBridgeFromNSString 1228 1206 -1.8% 1.02x (?)
ObjectiveCBridgeFromNSStringForced 2708 2700 -0.3% 1.00x (?)
ObjectiveCBridgeStubDataAppend 6133 6202 +1.1% 0.99x (?)
ObjectiveCBridgeStubDateMutation 400 400 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 32613 31916 -2.1% 1.02x (?)
ObjectiveCBridgeStubFromNSDate 6481 6509 +0.4% 1.00x (?)
ObjectiveCBridgeStubFromNSString 1035 1019 -1.5% 1.02x (?)
ObjectiveCBridgeStubNSDataAppend 2540 2544 +0.2% 1.00x (?)
ObjectiveCBridgeStubNSDateMutationRef 13446 13177 -2.0% 1.02x (?)
ObjectiveCBridgeStubToArrayOfNSString 40119 39804 -0.8% 1.01x (?)
ObjectiveCBridgeStubToNSDate 15474 15545 +0.5% 1.00x (?)
ObjectiveCBridgeStubToNSDateRef 3446 3430 -0.5% 1.00x (?)
ObjectiveCBridgeStubToNSString 2335 2337 +0.1% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 113 115 +1.8% 0.98x (?)
ObjectiveCBridgeStubURLAppendPath 263338 268975 +2.1% 0.98x (?)
ObjectiveCBridgeStubURLAppendPathRef 271633 266853 -1.8% 1.02x (?)
ObjectiveCBridgeToNSArray 14917 14800 -0.8% 1.01x (?)
ObjectiveCBridgeToNSDictionary 26468 26544 +0.3% 1.00x (?)
ObjectiveCBridgeToNSSet 16831 17594 +4.5% 0.96x (?)
ObjectiveCBridgeToNSString 455 455 +0.0% 1.00x
ObserverClosure 2145 2146 +0.0% 1.00x (?)
ObserverForwarderStruct 1209 1205 -0.3% 1.00x (?)
ObserverPartiallyAppliedMethod 3705 3692 -0.4% 1.00x (?)
ObserverUnappliedMethod 2497 2488 -0.4% 1.00x (?)
OpaqueConsumingUsers 4178 4179 +0.0% 1.00x (?)
OpenClose 62 62 +0.0% 1.00x
PartialApplyDynamicType 0 0 +0.0% 1.00x
Phonebook 6672 6621 -0.8% 1.01x
PolymorphicCalls 25 25 +0.0% 1.00x
PopFrontArray 1881 1890 +0.5% 1.00x (?)
PopFrontArrayGeneric 1900 1905 +0.3% 1.00x (?)
PopFrontUnsafePointer 9125 9102 -0.3% 1.00x (?)
PrefixAnyCollection 76 76 +0.0% 1.00x
PrefixAnyCollectionLazy 65109 64913 -0.3% 1.00x (?)
PrefixAnySeqCRangeIter 40 40 +0.0% 1.00x
PrefixAnySeqCRangeIterLazy 40 40 +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 1378 1378 +0.0% 1.00x
PrefixArray 35 35 +0.0% 1.00x
PrefixArrayLazy 35 35 +0.0% 1.00x
PrefixCountableRange 35 35 +0.0% 1.00x
PrefixCountableRangeLazy 35 35 +0.0% 1.00x
PrefixSequence 2223 2222 -0.0% 1.00x (?)
PrefixSequenceLazy 2275 2275 +0.0% 1.00x
PrefixWhileAnyCollection 146 146 +0.0% 1.00x
PrefixWhileAnyCollectionLazy 71 71 +0.0% 1.00x
PrefixWhileAnySeqCRangeIter 384 385 +0.3% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 89 89 +0.0% 1.00x
PrefixWhileAnySeqCntRange 141 142 +0.7% 0.99x
PrefixWhileAnySeqCntRangeLazy 71 71 +0.0% 1.00x
PrefixWhileAnySequence 1536 1539 +0.2% 1.00x (?)
PrefixWhileAnySequenceLazy 1391 1391 +0.0% 1.00x
PrefixWhileArray 88 88 +0.0% 1.00x
PrefixWhileArrayLazy 70 70 +0.0% 1.00x
PrefixWhileCountableRange 36 36 +0.0% 1.00x
PrefixWhileCountableRangeLazy 35 35 +0.0% 1.00x
PrefixWhileSequence 361 362 +0.3% 1.00x (?)
PrefixWhileSequenceLazy 52 52 +0.0% 1.00x
Prims 917 918 +0.1% 1.00x (?)
PrimsSplit 920 924 +0.4% 1.00x (?)
QueueConcrete 1148 1149 +0.1% 1.00x (?)
QueueGeneric 1134 1135 +0.1% 1.00x (?)
RGBHistogram 2961 2987 +0.9% 0.99x (?)
RGBHistogramOfObjects 23651 23709 +0.2% 1.00x (?)
Radix2CooleyTukey 12398 12391 -0.1% 1.00x (?)
Radix2CooleyTukeyf 8750 8935 +2.1% 0.98x (?)
RandomDoubleDef 26804 26844 +0.1% 1.00x (?)
RandomIntegersDef 24603 24591 -0.0% 1.00x (?)
RandomIntegersLCG 173 173 +0.0% 1.00x
RandomShuffleDef 810505 811871 +0.2% 1.00x (?)
RandomShuffleLCG 56343 57350 +1.8% 0.98x (?)
RangeAssignment 350 335 -4.3% 1.04x
RangeReplaceableCollectionPlusDefault 1078 1078 +0.0% 1.00x
RecursiveOwnedParameter 115 115 +0.0% 1.00x
RemoveWhereFilterInts 47 47 +0.0% 1.00x
RemoveWhereFilterString 244 242 -0.8% 1.01x (?)
RemoveWhereFilterStrings 437 436 -0.2% 1.00x (?)
RemoveWhereMoveStrings 708 708 +0.0% 1.00x
RemoveWhereQuadraticInts 1291 1292 +0.1% 1.00x (?)
RemoveWhereQuadraticString 381 374 -1.8% 1.02x (?)
RemoveWhereQuadraticStrings 2758 2757 -0.0% 1.00x (?)
RemoveWhereSwapInts 19 19 +0.0% 1.00x
RemoveWhereSwapStrings 858 859 +0.1% 1.00x (?)
ReversedArray 57 57 +0.0% 1.00x
ReversedBidirectional 16712 16579 -0.8% 1.01x (?)
ReversedDictionary 261 261 +0.0% 1.00x
RomanNumbers 84622 84125 -0.6% 1.01x
SequenceAlgosAnySequence 11954 11943 -0.1% 1.00x (?)
SequenceAlgosArray 1572 1564 -0.5% 1.01x (?)
SequenceAlgosContiguousArray 1571 1570 -0.1% 1.00x (?)
SequenceAlgosList 1347 1347 +0.0% 1.00x
SequenceAlgosRange 2575 2576 +0.0% 1.00x (?)
SequenceAlgosUnfoldSequence 1102 1102 +0.0% 1.00x
SetExclusiveOr 5081 5091 +0.2% 1.00x (?)
SetExclusiveOr_OfObjects 11549 11560 +0.1% 1.00x (?)
SetIntersect 703 701 -0.3% 1.00x (?)
SetIntersect_OfObjects 1791 1774 -0.9% 1.01x (?)
SetIsSubsetOf 344 343 -0.3% 1.00x (?)
SetIsSubsetOf_OfObjects 440 441 +0.2% 1.00x (?)
SetUnion 4356 4346 -0.2% 1.00x (?)
SetUnion_OfObjects 10093 10088 -0.0% 1.00x (?)
SevenBoom 833 833 +0.0% 1.00x
Sim2DArray 417 417 +0.0% 1.00x
SortLargeExistentials 5592 5513 -1.4% 1.01x (?)
SortLettersInPlace 993 995 +0.2% 1.00x (?)
SortSortedStrings 852 852 +0.0% 1.00x
SortStrings 1765 1769 +0.2% 1.00x (?)
SortStringsUnicode 2497 2493 -0.2% 1.00x (?)
StackPromo 24519 24474 -0.2% 1.00x (?)
StaticArray 9 9 +0.0% 1.00x
StrComplexWalk 1780 1780 +0.0% 1.00x
StrToInt 3196 3316 +3.8% 0.96x
StringAdder 528 522 -1.1% 1.01x
StringBuilder 439 433 -1.4% 1.01x
StringBuilderLong 1253 1267 +1.1% 0.99x (?)
StringBuilderSmallReservingCapacity 453 447 -1.3% 1.01x
StringBuilderWithLongSubstring 1446 1438 -0.6% 1.01x (?)
StringComparison_abnormal 767 772 +0.7% 0.99x (?)
StringComparison_ascii 1003 1005 +0.2% 1.00x (?)
StringComparison_emoji 867 868 +0.1% 1.00x (?)
StringComparison_fastPrenormal 831 833 +0.2% 1.00x (?)
StringComparison_latin1 650 656 +0.9% 0.99x
StringComparison_longSharedPrefix 948 954 +0.6% 0.99x (?)
StringComparison_nonBMPSlowestPrenormal 1690 1679 -0.7% 1.01x (?)
StringComparison_slowerPrenormal 1809 1816 +0.4% 1.00x (?)
StringComparison_zalgo 111430 111466 +0.0% 1.00x (?)
StringEdits 165514 165788 +0.2% 1.00x (?)
StringEnumRawValueInitialization 855 859 +0.5% 1.00x (?)
StringEqualPointerComparison 314 314 +0.0% 1.00x
StringFromLongWholeSubstring 21 21 +0.0% 1.00x
StringFromLongWholeSubstringGeneric 21 21 +0.0% 1.00x
StringHasPrefixAscii 2203 2203 +0.0% 1.00x
StringHasPrefixUnicode 99354 99405 +0.1% 1.00x (?)
StringHasSuffixAscii 2261 2233 -1.2% 1.01x
StringHasSuffixUnicode 100432 100165 -0.3% 1.00x (?)
StringHashing_abnormal 1334 1330 -0.3% 1.00x (?)
StringHashing_ascii 33 33 +0.0% 1.00x
StringHashing_emoji 1852 1856 +0.2% 1.00x (?)
StringHashing_fastPrenormal 8406 8405 -0.0% 1.00x (?)
StringHashing_latin1 2565 2563 -0.1% 1.00x (?)
StringHashing_longSharedPrefix 7754 7746 -0.1% 1.00x (?)
StringHashing_nonBMPSlowestPrenormal 2033 2033 +0.0% 1.00x
StringHashing_slowerPrenormal 2745 2745 +0.0% 1.00x
StringHashing_zalgo 3478 3482 +0.1% 1.00x (?)
StringInterpolation 9054 9073 +0.2% 1.00x (?)
StringInterpolationManySmallSegments 18397 18353 -0.2% 1.00x (?)
StringInterpolationSmall 4205 4177 -0.7% 1.01x (?)
StringMatch 12078 12098 +0.2% 1.00x (?)
StringRemoveDupes 473 470 -0.6% 1.01x (?)
StringUTF16Builder 2718 2713 -0.2% 1.00x (?)
StringUTF16SubstringBuilder 5676 5719 +0.8% 0.99x (?)
StringWalk 1544 1544 +0.0% 1.00x
StringWithCString 46338 46360 +0.0% 1.00x (?)
StringWordBuilder 2269 2249 -0.9% 1.01x (?)
StringWordBuilderReservingCapacity 1936 1920 -0.8% 1.01x (?)
SubstringComparable 13 13 +0.0% 1.00x
SubstringEqualString 621 621 +0.0% 1.00x
SubstringEquatable 1435 1441 +0.4% 1.00x (?)
SubstringFromLongString 10 10 +0.0% 1.00x
SubstringFromLongStringGeneric 74 74 +0.0% 1.00x
SuffixAnyCollection 28 28 +0.0% 1.00x
SuffixAnyCollectionLazy 21705 21711 +0.0% 1.00x (?)
SuffixAnySeqCRangeIter 3619 3638 +0.5% 0.99x (?)
SuffixAnySeqCRangeIterLazy 3624 3636 +0.3% 1.00x (?)
SuffixAnySeqCntRange 17 17 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 17 17 +0.0% 1.00x
SuffixAnySequence 4921 4919 -0.0% 1.00x (?)
SuffixAnySequenceLazy 5019 5031 +0.2% 1.00x (?)
SuffixCountableRange 11 11 +0.0% 1.00x
SuffixCountableRangeLazy 11 11 +0.0% 1.00x
SuffixSequence 3643 3646 +0.1% 1.00x (?)
SuffixSequenceLazy 3645 3655 +0.3% 1.00x (?)
SumUsingReduce 101 97 -4.0% 1.04x
SumUsingReduceInto 97 101 +4.1% 0.96x
SuperChars 20038 20012 -0.1% 1.00x (?)
TwoSum 1492 1444 -3.2% 1.03x
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode 298 298 +0.0% 1.00x
UTF8Decode_InitDecoding 1350 1350 +0.0% 1.00x
UTF8Decode_InitDecoding_ascii 653 653 +0.0% 1.00x
UTF8Decode_InitFromBytes 1172 1168 -0.3% 1.00x (?)
UTF8Decode_InitFromBytes_ascii 480 481 +0.2% 1.00x (?)
UTF8Decode_InitFromData 1266 1253 -1.0% 1.01x (?)
UTF8Decode_InitFromData_ascii 733 719 -1.9% 1.02x (?)
Walsh 443 442 -0.2% 1.00x (?)
WordCountHistogramASCII 7975 7973 -0.0% 1.00x (?)
WordCountHistogramUTF16 11229 11117 -1.0% 1.01x (?)
WordCountUniqueASCII 2092 2061 -1.5% 1.02x (?)
WordCountUniqueUTF16 4508 4512 +0.1% 1.00x (?)
WordSplitASCII 9100 9028 -0.8% 1.01x (?)
WordSplitUTF16 10416 10339 -0.7% 1.01x (?)
XorLoop 397 392 -1.3% 1.01x (?)

Unoptimized (Onone)

Regression (5)
TEST OLD NEW DELTA SPEEDUP
TypeFlood 192 211 +9.9% 0.91x (?)
FloatingPointPrinting_Float80_description_uniform 58919 63674 +8.1% 0.93x (?)
CharIndexing_ascii_unicodeScalars_Backwards 351879 379437 +7.8% 0.93x (?)
DataSetCount 572 616 +7.7% 0.93x (?)
UTF8Decode_InitFromBytes_ascii 502 535 +6.6% 0.94x (?)
Improvement (3)
TEST OLD NEW DELTA SPEEDUP
DataReplaceMediumBuffer 12301 11316 -8.0% 1.09x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 49225 46440 -5.7% 1.06x (?)
DictionaryKeysContainsNative 55 52 -5.5% 1.06x (?)
No Changes (450)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 5013 4996 -0.3% 1.00x (?)
AnyHashableWithAClass 107228 107345 +0.1% 1.00x (?)
Array2D 625023 626011 +0.2% 1.00x (?)
ArrayAppend 4438 4551 +2.5% 0.98x
ArrayAppendArrayOfInt 862 857 -0.6% 1.01x (?)
ArrayAppendAscii 27633 27636 +0.0% 1.00x (?)
ArrayAppendAsciiSubstring 71188 71364 +0.2% 1.00x (?)
ArrayAppendFromGeneric 872 870 -0.2% 1.00x (?)
ArrayAppendGenericStructs 1506 1500 -0.4% 1.00x (?)
ArrayAppendLatin1 66614 66119 -0.7% 1.01x
ArrayAppendLatin1Substring 160428 160386 -0.0% 1.00x (?)
ArrayAppendLazyMap 165642 165584 -0.0% 1.00x (?)
ArrayAppendOptionals 1480 1502 +1.5% 0.99x (?)
ArrayAppendRepeatCol 189566 189656 +0.0% 1.00x (?)
ArrayAppendReserved 4163 4279 +2.8% 0.97x
ArrayAppendSequence 103908 103959 +0.0% 1.00x (?)
ArrayAppendStrings 6440 6449 +0.1% 1.00x (?)
ArrayAppendToFromGeneric 868 870 +0.2% 1.00x (?)
ArrayAppendToGeneric 869 875 +0.7% 0.99x (?)
ArrayAppendUTF16 66648 66827 +0.3% 1.00x (?)
ArrayAppendUTF16Substring 157780 158167 +0.2% 1.00x (?)
ArrayInClass 6320 6337 +0.3% 1.00x (?)
ArrayLiteral 1785 1786 +0.1% 1.00x (?)
ArrayOfGenericPOD2 1128 1128 +0.0% 1.00x
ArrayOfGenericRef 10511 10526 +0.1% 1.00x (?)
ArrayOfPOD 760 761 +0.1% 1.00x
ArrayOfRef 9629 9622 -0.1% 1.00x (?)
ArrayPlusEqualArrayOfInt 857 851 -0.7% 1.01x (?)
ArrayPlusEqualFiveElementCollection 230071 230198 +0.1% 1.00x (?)
ArrayPlusEqualSingleElementCollection 225389 225054 -0.1% 1.00x (?)
ArrayPlusEqualThreeElements 8935 8949 +0.2% 1.00x (?)
ArraySubscript 107639 106120 -1.4% 1.01x (?)
ArrayValueProp 3678 3725 +1.3% 0.99x (?)
ArrayValueProp2 14908 14901 -0.0% 1.00x (?)
ArrayValueProp3 4239 4230 -0.2% 1.00x (?)
ArrayValueProp4 4183 4177 -0.1% 1.00x (?)
BinaryFloatingPointPropertiesBinade 91 94 +3.3% 0.97x
BinaryFloatingPointPropertiesNextUp 132 137 +3.8% 0.96x
BinaryFloatingPointPropertiesUlp 137 133 -2.9% 1.03x
BitCount 8727 9102 +4.3% 0.96x
ByteSwap 9842 9593 -2.5% 1.03x
COWArrayGuaranteedParameterOverhead 14054 14063 +0.1% 1.00x (?)
COWTree 11956 11961 +0.0% 1.00x (?)
CSVParsing 2841260 2772338 -2.4% 1.02x (?)
CSVParsingAlt 1425733 1411455 -1.0% 1.01x (?)
CSVParsingAltIndices 2339530 2335049 -0.2% 1.00x (?)
CStringLongAscii 4200 4195 -0.1% 1.00x (?)
CStringLongNonAscii 2537 2539 +0.1% 1.00x (?)
CStringShortAscii 6044 6002 -0.7% 1.01x (?)
Calculator 951 940 -1.2% 1.01x
CaptureProp 284223 284499 +0.1% 1.00x (?)
ChainedFilterMap 229415 229875 +0.2% 1.00x (?)
CharIndexing_ascii_unicodeScalars 315653 319727 +1.3% 0.99x (?)
CharIndexing_chinese_unicodeScalars 238133 242471 +1.8% 0.98x (?)
CharIndexing_chinese_unicodeScalars_Backwards 272338 277817 +2.0% 0.98x (?)
CharIndexing_japanese_unicodeScalars 376609 386374 +2.6% 0.97x (?)
CharIndexing_japanese_unicodeScalars_Backwards 425569 434842 +2.2% 0.98x (?)
CharIndexing_korean_unicodeScalars 305394 308517 +1.0% 0.99x (?)
CharIndexing_korean_unicodeScalars_Backwards 349058 357135 +2.3% 0.98x (?)
CharIndexing_punctuatedJapanese_unicodeScalars 56447 55984 -0.8% 1.01x (?)
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 61097 62293 +2.0% 0.98x (?)
CharIndexing_punctuated_unicodeScalars 70270 70144 -0.2% 1.00x (?)
CharIndexing_punctuated_unicodeScalars_Backwards 79712 79455 -0.3% 1.00x (?)
CharIndexing_russian_unicodeScalars 262925 262013 -0.3% 1.00x (?)
CharIndexing_russian_unicodeScalars_Backwards 293111 299651 +2.2% 0.98x (?)
CharIndexing_tweet_unicodeScalars 638608 627256 -1.8% 1.02x (?)
CharIndexing_tweet_unicodeScalars_Backwards 697668 720607 +3.3% 0.97x (?)
CharIndexing_utf16_unicodeScalars 276371 276026 -0.1% 1.00x (?)
CharIndexing_utf16_unicodeScalars_Backwards 307454 311657 +1.4% 0.99x (?)
CharIteration_ascii_unicodeScalars 147584 147189 -0.3% 1.00x (?)
CharIteration_ascii_unicodeScalars_Backwards 249914 250168 +0.1% 1.00x (?)
CharIteration_chinese_unicodeScalars 110839 111120 +0.3% 1.00x (?)
CharIteration_chinese_unicodeScalars_Backwards 188966 188999 +0.0% 1.00x (?)
CharIteration_japanese_unicodeScalars 175426 173978 -0.8% 1.01x (?)
CharIteration_japanese_unicodeScalars_Backwards 300444 300240 -0.1% 1.00x (?)
CharIteration_korean_unicodeScalars 142327 141487 -0.6% 1.01x (?)
CharIteration_korean_unicodeScalars_Backwards 242424 243596 +0.5% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars 25972 25918 -0.2% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 43620 43633 +0.0% 1.00x (?)
CharIteration_punctuated_unicodeScalars 32843 32564 -0.8% 1.01x (?)
CharIteration_punctuated_unicodeScalars_Backwards 55044 55690 +1.2% 0.99x
CharIteration_russian_unicodeScalars 122015 121771 -0.2% 1.00x (?)
CharIteration_russian_unicodeScalars_Backwards 209759 209771 +0.0% 1.00x (?)
CharIteration_tweet_unicodeScalars 298508 296490 -0.7% 1.01x (?)
CharIteration_tweet_unicodeScalars_Backwards 501927 507364 +1.1% 0.99x (?)
CharIteration_utf16_unicodeScalars 124945 124916 -0.0% 1.00x (?)
CharIteration_utf16_unicodeScalars_Backwards 217073 217312 +0.1% 1.00x (?)
CharacterLiteralsLarge 5753 5770 +0.3% 1.00x (?)
CharacterLiteralsSmall 679 658 -3.1% 1.03x
CharacterPropertiesFetch 5594 5717 +2.2% 0.98x (?)
CharacterPropertiesPrecomputed 3397 3409 +0.4% 1.00x (?)
CharacterPropertiesStashed 2335 2327 -0.3% 1.00x (?)
CharacterPropertiesStashedMemo 4320 4179 -3.3% 1.03x (?)
Chars 35150 35146 -0.0% 1.00x (?)
ClassArrayGetter 965 965 +0.0% 1.00x
Combos 2273 2225 -2.1% 1.02x (?)
DataAccessBytes 2341 2374 +1.4% 0.99x (?)
DataAppendArray 5399 5269 -2.4% 1.02x (?)
DataAppendBytes 5055 5037 -0.4% 1.00x (?)
DataAppendDataLargeToLarge 68180 67525 -1.0% 1.01x (?)
DataAppendDataLargeToMedium 35540 35542 +0.0% 1.00x (?)
DataAppendDataLargeToSmall 34838 34615 -0.6% 1.01x (?)
DataAppendDataMediumToLarge 38416 38336 -0.2% 1.00x (?)
DataAppendDataMediumToMedium 6620 6433 -2.8% 1.03x (?)
DataAppendDataMediumToSmall 5931 6006 +1.3% 0.99x (?)
DataAppendDataSmallToLarge 37448 37481 +0.1% 1.00x (?)
DataAppendDataSmallToMedium 6062 6114 +0.9% 0.99x (?)
DataAppendDataSmallToSmall 5722 5677 -0.8% 1.01x (?)
DataAppendSequence 1970467 1987899 +0.9% 0.99x
DataCopyBytes 448 463 +3.3% 0.97x (?)
DataCount 223 223 +0.0% 1.00x
DataMutateBytes 5135 5260 +2.4% 0.98x
DataReplaceLarge 36628 37923 +3.5% 0.97x (?)
DataReplaceLargeBuffer 57342 56961 -0.7% 1.01x (?)
DataReplaceMedium 8164 7963 -2.5% 1.03x (?)
DataReplaceSmall 5663 5508 -2.7% 1.03x (?)
DataReplaceSmallBuffer 8646 8917 +3.1% 0.97x (?)
DataReset 2833 2879 +1.6% 0.98x (?)
DataSubscript 443 443 +0.0% 1.00x
DictOfArraysToArrayOfDicts 3555 3558 +0.1% 1.00x (?)
Dictionary 2353 2352 -0.0% 1.00x (?)
Dictionary2 1287 1282 -0.4% 1.00x (?)
Dictionary2OfObjects 4293 4329 +0.8% 0.99x (?)
Dictionary3 829 830 +0.1% 1.00x (?)
Dictionary3OfObjects 2270 2221 -2.2% 1.02x (?)
Dictionary4 1195 1196 +0.1% 1.00x (?)
Dictionary4Legacy 1442 1457 +1.0% 0.99x (?)
Dictionary4OfObjects 1815 1903 +4.8% 0.95x (?)
Dictionary4OfObjectsLegacy 2053 2147 +4.6% 0.96x (?)
DictionaryBridge 1279 1268 -0.9% 1.01x (?)
DictionaryBridgeToObjC_Access 1567 1507 -3.8% 1.04x (?)
DictionaryBridgeToObjC_Bridge 19 19 +0.0% 1.00x
DictionaryBridgeToObjC_BulkAccess 167 169 +1.2% 0.99x (?)
DictionaryCopy 312379 311903 -0.2% 1.00x (?)
DictionaryFilter 323936 327400 +1.1% 0.99x (?)
DictionaryGroup 4398 4396 -0.0% 1.00x (?)
DictionaryGroupOfObjects 7174 6873 -4.2% 1.04x (?)
DictionaryKeysContainsCocoa 63 64 +1.6% 0.98x (?)
DictionaryLiteral 8740 8805 +0.7% 0.99x (?)
DictionaryOfObjects 6044 6001 -0.7% 1.01x (?)
DictionaryRemove 16914 16892 -0.1% 1.00x (?)
DictionaryRemoveOfObjects 52600 54458 +3.5% 0.97x (?)
DictionarySubscriptDefaultMutation 1991 1960 -1.6% 1.02x
DictionarySubscriptDefaultMutationArray 2254 2258 +0.2% 1.00x (?)
DictionarySubscriptDefaultMutationArrayOfObjects 9418 9396 -0.2% 1.00x (?)
DictionarySubscriptDefaultMutationOfObjects 5453 5424 -0.5% 1.01x (?)
DictionarySwap 4845 4868 +0.5% 1.00x (?)
DictionarySwapAt 32530 32584 +0.2% 1.00x (?)
DictionarySwapAtOfObjects 113503 112621 -0.8% 1.01x (?)
DictionarySwapOfObjects 20406 19484 -4.5% 1.05x (?)
DoubleWidthDivision 0 0 +0.0% 1.00x
DropFirstAnyCollection 15527 15557 +0.2% 1.00x (?)
DropFirstAnyCollectionLazy 109599 108552 -1.0% 1.01x (?)
DropFirstAnySeqCRangeIter 26726 26714 -0.0% 1.00x (?)
DropFirstAnySeqCRangeIterLazy 27043 27014 -0.1% 1.00x (?)
DropFirstAnySeqCntRange 15562 15536 -0.2% 1.00x (?)
DropFirstAnySeqCntRangeLazy 15565 15572 +0.0% 1.00x (?)
DropFirstAnySequence 12953 12834 -0.9% 1.01x (?)
DropFirstAnySequenceLazy 12856 12935 +0.6% 0.99x (?)
DropFirstArray 3441 3474 +1.0% 0.99x (?)
DropFirstArrayLazy 33595 33618 +0.1% 1.00x (?)
DropFirstCountableRange 344 345 +0.3% 1.00x (?)
DropFirstCountableRangeLazy 39124 39118 -0.0% 1.00x (?)
DropFirstSequence 12565 12532 -0.3% 1.00x (?)
DropFirstSequenceLazy 12518 12574 +0.4% 1.00x (?)
DropLastAnyCollection 5197 5204 +0.1% 1.00x (?)
DropLastAnyCollectionLazy 36308 36239 -0.2% 1.00x (?)
DropLastAnySeqCRangeIter 39629 39411 -0.6% 1.01x (?)
DropLastAnySeqCRangeIterLazy 39259 39335 +0.2% 1.00x (?)
DropLastAnySeqCntRange 5196 5212 +0.3% 1.00x (?)
DropLastAnySeqCntRangeLazy 5208 5197 -0.2% 1.00x (?)
DropLastAnySequence 29947 29525 -1.4% 1.01x (?)
DropLastAnySequenceLazy 29281 29325 +0.2% 1.00x (?)
DropLastCountableRange 119 119 +0.0% 1.00x
DropLastCountableRangeLazy 13149 13091 -0.4% 1.00x (?)
DropLastSequence 29469 29380 -0.3% 1.00x (?)
DropLastSequenceLazy 29289 29175 -0.4% 1.00x (?)
DropWhileAnyCollection 20111 20130 +0.1% 1.00x (?)
DropWhileAnyCollectionLazy 22816 22945 +0.6% 0.99x
DropWhileAnySeqCRangeIter 27132 27250 +0.4% 1.00x (?)
DropWhileAnySeqCRangeIterLazy 22704 22727 +0.1% 1.00x (?)
DropWhileAnySeqCntRange 20133 20147 +0.1% 1.00x (?)
DropWhileAnySeqCntRangeLazy 22802 22792 -0.0% 1.00x (?)
DropWhileAnySequence 13691 13684 -0.1% 1.00x (?)
DropWhileAnySequenceLazy 12569 12460 -0.9% 1.01x
DropWhileArrayLazy 13658 13620 -0.3% 1.00x
DropWhileCountableRange 4955 4946 -0.2% 1.00x (?)
DropWhileCountableRangeLazy 22290 22297 +0.0% 1.00x (?)
DropWhileSequence 13344 13364 +0.1% 1.00x (?)
DropWhileSequenceLazy 12339 12236 -0.8% 1.01x
EqualStringSubstring 72 72 +0.0% 1.00x
EqualSubstringString 72 72 +0.0% 1.00x
EqualSubstringSubstring 73 73 +0.0% 1.00x
EqualSubstringSubstringGenericEquatable 60 60 +0.0% 1.00x
ErrorHandling 5152 5223 +1.4% 0.99x (?)
ExclusivityGlobal 183 186 +1.6% 0.98x
ExclusivityIndependent 73 72 -1.4% 1.01x (?)
FatCompactMap 287786 289508 +0.6% 0.99x
FilterEvenUsingReduce 3619 3608 -0.3% 1.00x (?)
FilterEvenUsingReduceInto 1863 1860 -0.2% 1.00x (?)
FloatingPointPrinting_Double_description_small 22309 22156 -0.7% 1.01x (?)
FloatingPointPrinting_Double_description_uniform 33806 33844 +0.1% 1.00x (?)
FloatingPointPrinting_Double_interpolated 92378 92364 -0.0% 1.00x (?)
FloatingPointPrinting_Float80_description_small 29451 29508 +0.2% 1.00x (?)
FloatingPointPrinting_Float80_interpolated 123568 121683 -1.5% 1.02x (?)
FloatingPointPrinting_Float_description_small 6636 6607 -0.4% 1.00x
FloatingPointPrinting_Float_description_uniform 17071 17058 -0.1% 1.00x (?)
FloatingPointPrinting_Float_interpolated 75060 74362 -0.9% 1.01x (?)
FrequenciesUsingReduce 10557 10564 +0.1% 1.00x (?)
FrequenciesUsingReduceInto 3138 3130 -0.3% 1.00x (?)
Hanoi 19222 19156 -0.3% 1.00x (?)
HashTest 21203 20439 -3.6% 1.04x
Histogram 6247 6237 -0.2% 1.00x (?)
Integrate 587 587 +0.0% 1.00x
IterateData 4970 4969 -0.0% 1.00x (?)
Join 186 185 -0.5% 1.01x
LazilyFilteredArrayContains 736712 737241 +0.1% 1.00x (?)
LazilyFilteredArrays 1420375 1411259 -0.6% 1.01x (?)
LazilyFilteredRange 535271 535459 +0.0% 1.00x (?)
LessSubstringSubstring 72 72 +0.0% 1.00x
LessSubstringSubstringGenericComparable 59 59 +0.0% 1.00x
LinkedList 32246 32253 +0.0% 1.00x (?)
LuhnAlgoEager 5692 5693 +0.0% 1.00x (?)
LuhnAlgoLazy 6021 5878 -2.4% 1.02x (?)
MapReduce 24961 24915 -0.2% 1.00x (?)
MapReduceAnyCollection 24915 24918 +0.0% 1.00x (?)
MapReduceAnyCollectionShort 35752 35797 +0.1% 1.00x (?)
MapReduceClass 29109 29156 +0.2% 1.00x (?)
MapReduceClassShort 39453 39746 +0.7% 0.99x (?)
MapReduceLazyCollection 22292 22347 +0.2% 1.00x (?)
MapReduceLazyCollectionShort 32552 33147 +1.8% 0.98x (?)
MapReduceLazySequence 20490 20378 -0.5% 1.01x (?)
MapReduceSequence 30437 30453 +0.1% 1.00x (?)
MapReduceShort 36642 36807 +0.5% 1.00x (?)
MapReduceShortString 213 217 +1.9% 0.98x (?)
MapReduceString 1700 1702 +0.1% 1.00x (?)
Memset 45064 45039 -0.1% 1.00x (?)
MonteCarloE 1147958 1127606 -1.8% 1.02x (?)
MonteCarloPi 5216011 5121298 -1.8% 1.02x
NSDictionaryCastToSwift 8451 8894 +5.2% 0.95x (?)
NSError 602 633 +5.1% 0.95x (?)
NSStringConversion 736 737 +0.1% 1.00x (?)
NibbleSort 509558 507019 -0.5% 1.01x (?)
NopDeinit 193698 193067 -0.3% 1.00x (?)
ObjectAllocation 1258 1254 -0.3% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObject 27877 28543 +2.4% 0.98x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 9011 9060 +0.5% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 44723 44764 +0.1% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 115340 113270 -1.8% 1.02x (?)
ObjectiveCBridgeFromNSSetAnyObject 52387 54779 +4.6% 0.96x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 5867 5726 -2.4% 1.02x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 72673 73199 +0.7% 0.99x (?)
ObjectiveCBridgeFromNSString 2937 2951 +0.5% 1.00x (?)
ObjectiveCBridgeFromNSStringForced 2835 2836 +0.0% 1.00x (?)
ObjectiveCBridgeStubDataAppend 6731 6721 -0.1% 1.00x (?)
ObjectiveCBridgeStubDateMutation 776 775 -0.1% 1.00x (?)
ObjectiveCBridgeStubFromArrayOfNSString 32854 33140 +0.9% 0.99x (?)
ObjectiveCBridgeStubFromNSDate 6852 6859 +0.1% 1.00x (?)
ObjectiveCBridgeStubFromNSString 1056 1058 +0.2% 1.00x (?)
ObjectiveCBridgeStubFromNSStringRef 196 197 +0.5% 0.99x (?)
ObjectiveCBridgeStubNSDataAppend 3012 3029 +0.6% 0.99x (?)
ObjectiveCBridgeStubNSDateMutationRef 15934 15483 -2.8% 1.03x (?)
ObjectiveCBridgeStubToArrayOfNSString 40248 40495 +0.6% 0.99x (?)
ObjectiveCBridgeStubToNSDate 16072 15481 -3.7% 1.04x (?)
ObjectiveCBridgeStubToNSDateRef 3493 3500 +0.2% 1.00x (?)
ObjectiveCBridgeStubToNSString 2420 2426 +0.2% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 153 153 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 281460 289342 +2.8% 0.97x (?)
ObjectiveCBridgeStubURLAppendPathRef 284674 282809 -0.7% 1.01x (?)
ObjectiveCBridgeToNSArray 15506 15437 -0.4% 1.00x (?)
ObjectiveCBridgeToNSDictionary 28596 28982 +1.3% 0.99x (?)
ObjectiveCBridgeToNSSet 19013 18891 -0.6% 1.01x (?)
ObjectiveCBridgeToNSString 539 538 -0.2% 1.00x
ObserverClosure 6332 6348 +0.3% 1.00x (?)
ObserverForwarderStruct 4153 4157 +0.1% 1.00x (?)
ObserverPartiallyAppliedMethod 7890 7915 +0.3% 1.00x (?)
ObserverUnappliedMethod 7850 7826 -0.3% 1.00x (?)
OpaqueConsumingUsers 13420 13419 -0.0% 1.00x (?)
OpenClose 531 529 -0.4% 1.00x
PartialApplyDynamicType 41645 41244 -1.0% 1.01x (?)
Phonebook 15448 15390 -0.4% 1.00x (?)
PointerArithmetics 125961 120350 -4.5% 1.05x
PolymorphicCalls 2459 2460 +0.0% 1.00x (?)
PopFrontArray 4548 4548 +0.0% 1.00x
PopFrontArrayGeneric 5896 5897 +0.0% 1.00x (?)
PopFrontUnsafePointer 10826 11219 +3.6% 0.96x (?)
PrefixAnyCollection 15550 15499 -0.3% 1.00x
PrefixAnyCollectionLazy 109109 112059 +2.7% 0.97x (?)
PrefixAnySeqCRangeIter 21912 21978 +0.3% 1.00x (?)
PrefixAnySeqCRangeIterLazy 21956 22064 +0.5% 1.00x (?)
PrefixAnySeqCntRange 15541 15548 +0.0% 1.00x (?)
PrefixAnySeqCntRangeLazy 15567 15553 -0.1% 1.00x (?)
PrefixAnySequence 10554 10507 -0.4% 1.00x (?)
PrefixAnySequenceLazy 10594 10533 -0.6% 1.01x (?)
PrefixArray 3499 3533 +1.0% 0.99x (?)
PrefixArrayLazy 33574 33573 -0.0% 1.00x (?)
PrefixCountableRange 345 345 +0.0% 1.00x
PrefixCountableRangeLazy 39221 39314 +0.2% 1.00x (?)
PrefixSequence 10209 10141 -0.7% 1.01x (?)
PrefixSequenceLazy 10146 10161 +0.1% 1.00x (?)
PrefixWhileAnyCollection 29194 29147 -0.2% 1.00x (?)
PrefixWhileAnyCollectionLazy 18877 18882 +0.0% 1.00x (?)
PrefixWhileAnySeqCRangeIter 33291 33329 +0.1% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 18744 18755 +0.1% 1.00x (?)
PrefixWhileAnySeqCntRange 29156 29137 -0.1% 1.00x (?)
PrefixWhileAnySeqCntRangeLazy 18865 18879 +0.1% 1.00x (?)
PrefixWhileAnySequence 25832 25857 +0.1% 1.00x (?)
PrefixWhileAnySequenceLazy 11016 10990 -0.2% 1.00x (?)
PrefixWhileArray 10325 10323 -0.0% 1.00x (?)
PrefixWhileArrayLazy 12191 12195 +0.0% 1.00x (?)
PrefixWhileCountableRange 13945 13939 -0.0% 1.00x (?)
PrefixWhileCountableRangeLazy 18526 18500 -0.1% 1.00x (?)
PrefixWhileSequence 25608 25662 +0.2% 1.00x (?)
PrefixWhileSequenceLazy 11001 10964 -0.3% 1.00x (?)
Prims 9167 9201 +0.4% 1.00x (?)
PrimsSplit 9201 9325 +1.3% 0.99x (?)
QueueConcrete 14048 14031 -0.1% 1.00x (?)
QueueGeneric 18646 18649 +0.0% 1.00x (?)
RC4 16628 16556 -0.4% 1.00x (?)
RGBHistogram 22688 22733 +0.2% 1.00x (?)
RGBHistogramOfObjects 79739 80940 +1.5% 0.99x (?)
Radix2CooleyTukey 41594 41718 +0.3% 1.00x
Radix2CooleyTukeyf 37036 37294 +0.7% 0.99x (?)
RandomDoubleDef 100201 96106 -4.1% 1.04x (?)
RandomDoubleLCG 58992 58936 -0.1% 1.00x (?)
RandomIntegersDef 43989 43957 -0.1% 1.00x (?)
RandomIntegersLCG 32270 32362 +0.3% 1.00x (?)
RandomShuffleDef 2168904 2177266 +0.4% 1.00x (?)
RandomShuffleLCG 1429060 1431159 +0.1% 1.00x (?)
RangeAssignment 2853 2884 +1.1% 0.99x (?)
RangeIterationSigned 14765 14765 +0.0% 1.00x
RangeReplaceableCollectionPlusDefault 11721 11723 +0.0% 1.00x (?)
RecursiveOwnedParameter 6120 6118 -0.0% 1.00x (?)
RemoveWhereFilterInts 2065 2061 -0.2% 1.00x (?)
RemoveWhereFilterString 1339 1338 -0.1% 1.00x (?)
RemoveWhereFilterStrings 2595 2594 -0.0% 1.00x (?)
RemoveWhereMoveInts 3341 3340 -0.0% 1.00x (?)
RemoveWhereMoveStrings 3884 3884 +0.0% 1.00x
RemoveWhereQuadraticInts 8441 8435 -0.1% 1.00x (?)
RemoveWhereQuadraticString 2588 2587 -0.0% 1.00x (?)
RemoveWhereQuadraticStrings 10045 10047 +0.0% 1.00x (?)
RemoveWhereSwapInts 5986 5985 -0.0% 1.00x (?)
RemoveWhereSwapStrings 6734 6734 +0.0% 1.00x
ReversedArray 12513 12514 +0.0% 1.00x (?)
ReversedBidirectional 44570 44858 +0.6% 0.99x (?)
ReversedDictionary 23377 23392 +0.1% 1.00x (?)
RomanNumbers 1344353 1360444 +1.2% 0.99x (?)
SequenceAlgosAnySequence 13157 13155 -0.0% 1.00x (?)
SequenceAlgosArray 731891 731803 -0.0% 1.00x (?)
SequenceAlgosContiguousArray 298232 298193 -0.0% 1.00x (?)
SequenceAlgosList 8760 8757 -0.0% 1.00x (?)
SequenceAlgosRange 1288578 1288404 -0.0% 1.00x (?)
SequenceAlgosUnfoldSequence 6682 6668 -0.2% 1.00x (?)
SetExclusiveOr 16518 16535 +0.1% 1.00x (?)
SetExclusiveOr_OfObjects 42240 42663 +1.0% 0.99x
SetIntersect 6793 6801 +0.1% 1.00x (?)
SetIntersect_OfObjects 10572 10586 +0.1% 1.00x (?)
SetIsSubsetOf 1181 1188 +0.6% 0.99x
SetIsSubsetOf_OfObjects 2272 2259 -0.6% 1.01x (?)
SetUnion 11899 11886 -0.1% 1.00x (?)
SetUnion_OfObjects 30327 30508 +0.6% 0.99x (?)
SevenBoom 1020 1022 +0.2% 1.00x (?)
Sim2DArray 43788 43819 +0.1% 1.00x (?)
SortLargeExistentials 9809 9789 -0.2% 1.00x (?)
SortLettersInPlace 1602 1582 -1.2% 1.01x (?)
SortSortedStrings 910 910 +0.0% 1.00x
SortStrings 1879 1876 -0.2% 1.00x (?)
SortStringsUnicode 2755 2753 -0.1% 1.00x (?)
StackPromo 91530 90997 -0.6% 1.01x (?)
StaticArray 2559 2597 +1.5% 0.99x (?)
StrComplexWalk 6836 6837 +0.0% 1.00x (?)
StrToInt 80407 80520 +0.1% 1.00x (?)
StringAdder 713 711 -0.3% 1.00x (?)
StringBuilder 5049 4998 -1.0% 1.01x (?)
StringBuilderLong 1445 1504 +4.1% 0.96x (?)
StringBuilderSmallReservingCapacity 5031 5014 -0.3% 1.00x (?)
StringBuilderWithLongSubstring 3143 3147 +0.1% 1.00x (?)
StringComparison_abnormal 1267 1277 +0.8% 0.99x
StringComparison_ascii 8757 8758 +0.0% 1.00x (?)
StringComparison_emoji 1970 1970 +0.0% 1.00x
StringComparison_fastPrenormal 4809 4805 -0.1% 1.00x (?)
StringComparison_latin1 3748 3738 -0.3% 1.00x (?)
StringComparison_longSharedPrefix 2333 2328 -0.2% 1.00x (?)
StringComparison_nonBMPSlowestPrenormal 3663 3663 +0.0% 1.00x
StringComparison_slowerPrenormal 4119 4125 +0.1% 1.00x (?)
StringComparison_zalgo 113574 114051 +0.4% 1.00x (?)
StringEdits 353434 343656 -2.8% 1.03x (?)
StringEnumRawValueInitialization 21236 21238 +0.0% 1.00x (?)
StringEqualPointerComparison 1747 1669 -4.5% 1.05x (?)
StringFromLongWholeSubstring 22 22 +0.0% 1.00x
StringFromLongWholeSubstringGeneric 196 196 +0.0% 1.00x
StringHasPrefixAscii 3265 3201 -2.0% 1.02x
StringHasPrefixUnicode 100471 100513 +0.0% 1.00x (?)
StringHasSuffixAscii 3293 3231 -1.9% 1.02x
StringHasSuffixUnicode 101611 101166 -0.4% 1.00x (?)
StringHashing_abnormal 1446 1434 -0.8% 1.01x (?)
StringHashing_ascii 208 208 +0.0% 1.00x
StringHashing_emoji 2003 2066 +3.1% 0.97x (?)
StringHashing_fastPrenormal 8688 8679 -0.1% 1.00x (?)
StringHashing_latin1 2790 2793 +0.1% 1.00x (?)
StringHashing_longSharedPrefix 7895 7917 +0.3% 1.00x (?)
StringHashing_nonBMPSlowestPrenormal 2265 2241 -1.1% 1.01x (?)
StringHashing_slowerPrenormal 2939 2942 +0.1% 1.00x (?)
StringHashing_zalgo 3588 3585 -0.1% 1.00x (?)
StringInterpolation 11776 11914 +1.2% 0.99x (?)
StringInterpolationManySmallSegments 18507 18562 +0.3% 1.00x (?)
StringInterpolationSmall 5947 5945 -0.0% 1.00x (?)
StringMatch 39388 39263 -0.3% 1.00x (?)
StringRemoveDupes 719 717 -0.3% 1.00x (?)
StringUTF16Builder 7743 7806 +0.8% 0.99x (?)
StringUTF16SubstringBuilder 20862 20971 +0.5% 0.99x (?)
StringWalk 12871 12863 -0.1% 1.00x (?)
StringWithCString 43327 43336 +0.0% 1.00x (?)
StringWordBuilder 2442 2439 -0.1% 1.00x (?)
StringWordBuilderReservingCapacity 2066 2064 -0.1% 1.00x (?)
SubstringComparable 1590 1586 -0.3% 1.00x (?)
SubstringEqualString 1723 1720 -0.2% 1.00x (?)
SubstringEquatable 5524 5383 -2.6% 1.03x (?)
SubstringFromLongString 15 15 +0.0% 1.00x
SubstringFromLongStringGeneric 104 104 +0.0% 1.00x
SuffixAnyCollection 5194 5199 +0.1% 1.00x (?)
SuffixAnyCollectionLazy 36756 37035 +0.8% 0.99x (?)
SuffixAnySeqCRangeIter 35472 35500 +0.1% 1.00x (?)
SuffixAnySeqCRangeIterLazy 35438 35440 +0.0% 1.00x (?)
SuffixAnySeqCntRange 5186 5184 -0.0% 1.00x (?)
SuffixAnySeqCntRangeLazy 5205 5204 -0.0% 1.00x (?)
SuffixAnySequence 25423 25375 -0.2% 1.00x (?)
SuffixAnySequenceLazy 25494 25499 +0.0% 1.00x (?)
SuffixCountableRange 119 119 +0.0% 1.00x
SuffixCountableRangeLazy 13106 13079 -0.2% 1.00x (?)
SuffixSequence 25233 25286 +0.2% 1.00x (?)
SuffixSequenceLazy 25323 25310 -0.1% 1.00x (?)
SumUsingReduce 157776 158018 +0.2% 1.00x (?)
SumUsingReduceInto 150924 150726 -0.1% 1.00x (?)
SuperChars 89815 89636 -0.2% 1.00x (?)
TwoSum 3463 3482 +0.5% 0.99x (?)
UTF8Decode 28813 28829 +0.1% 1.00x (?)
UTF8Decode_InitDecoding 1400 1399 -0.1% 1.00x (?)
UTF8Decode_InitDecoding_ascii 891 881 -1.1% 1.01x (?)
UTF8Decode_InitFromBytes 1197 1210 +1.1% 0.99x (?)
UTF8Decode_InitFromData 1235 1280 +3.6% 0.96x (?)
UTF8Decode_InitFromData_ascii 718 731 +1.8% 0.98x (?)
Walsh 12412 12511 +0.8% 0.99x (?)
WordCountHistogramASCII 37546 37573 +0.1% 1.00x (?)
WordCountHistogramUTF16 42867 43037 +0.4% 1.00x (?)
WordCountUniqueASCII 6963 6965 +0.0% 1.00x (?)
WordCountUniqueUTF16 10038 10068 +0.3% 1.00x (?)
WordSplitASCII 12737 13278 +4.2% 0.96x (?)
WordSplitUTF16 14724 14160 -3.8% 1.04x (?)
XorLoop 23801 23793 -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

Copy link
Contributor

@rudkx rudkx left a comment

Choose a reason for hiding this comment

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

LGTM, thanks!

Copy link
Contributor

@moiseev moiseev left a comment

Choose a reason for hiding this comment

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

stdlib change looks innocent. 👍

@xedin
Copy link
Contributor Author

xedin commented Jul 11, 2018

@swift-ci please test

@swiftlang swiftlang deleted a comment from swift-ci Jul 12, 2018
@swiftlang swiftlang deleted a comment from swift-ci Jul 12, 2018
@xedin
Copy link
Contributor Author

xedin commented Jul 12, 2018

Oops, looks like I missed one 32-bit test.

@xedin
Copy link
Contributor Author

xedin commented Jul 12, 2018

@swift-ci please test

@xedin
Copy link
Contributor Author

xedin commented Jul 12, 2018

@swift-ci please test source compatibility

auto *parent = ExprStack.back();
if (isa<BindOptionalExpr>(parent) || isa<ForceValueExpr>(parent))
return nullptr;
}
Copy link
Member

Choose a reason for hiding this comment

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

This semantic change isn't described in the proposal, and I think we wouldn't deviate from it. The rule as specified in SE-0213 is a clean syntactic rule that users can reason about. This tweak would come as a surprise.

If we need it for source compatibility, perhaps it would be best to put it behind !isSwiftVersionAtLeast(5).

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I was just trying to avoid breaking existing code like https://github.com/apple/swift/pull/17860/files#diff-de58b3c2866a24533bc39d1bfd40fc3cR276 but maybe I shouldn't do it at all then?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Alright, this check is hidden under !isSwiftVersionAtLeast(5) now.

return nullptr;

// Don't bother to convert deprecated selector syntax.
if (auto selectorTy = TC.getObjCSelectorType(DC)) {
Copy link
Member

Choose a reason for hiding this comment

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

This is the use of string literals for selectors? I wonder if we can (separately) kill that now...

Copy link
Contributor Author

Choose a reason for hiding this comment

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

That's right, it's #selector(...) vs. Selector("...")

let base = U${Self}(_value)
return self < (0 as ${Self}) ? ~base + 1 : base
@inline(__always)
get {
Copy link
Member

Choose a reason for hiding this comment

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

This seems unrelated?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This is needed because constant propagation now looks at both branches, so as a way to work around that behavior @ravikandhadai and @moiseev told me that it would be appropriate to switch from @_transparent to @inlineable.

Copy link
Contributor

Choose a reason for hiding this comment

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

It is, unfortunately. @_transparent here causes the compile-time overflow on a branch that would not be taken at runtime.

Copy link
Contributor

Choose a reason for hiding this comment

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

Just to clarify. The changes to how initializers are resolved, as a side-effect, makes constant propagation more precise as it can now propagate through more initializers. While in general it is a good thing, in this specific case, it resulted in a false positive due to mandatory inlining.

Copy link
Collaborator

@xwu xwu Jul 17, 2018

Choose a reason for hiding this comment

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

Why not write return self < (0 as ${Self}) ? ~base &+ 1 : base? You are, after all, performing a bit twiddling operation.

Copy link
Contributor

Choose a reason for hiding this comment

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

It is very much possible (and probably reasonable) to try the &+ approach in a separate PR once this lands.

Copy link
Contributor

Choose a reason for hiding this comment

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

@moiseev @xwu there is one other issue with "magnitude" (besides the +) that could trigger static errors if it is made @_transparent. It is passing a potentially negative (builtin Int) into a UInt : let base = U${Self}(_value). This could trigger a static error on negative values like (-1).magnitude etc. So perhaps keeping it @inline is better.

Copy link
Collaborator

Choose a reason for hiding this comment

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

No, _value is the same type regardless of whether it's Int or UInt, and that initializer simply assigns self._value = other._value.

Copy link
Contributor

Choose a reason for hiding this comment

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

@xwu Ah okay, this initializer should not be a problem for constant prop. There will no static errors here. Okay we can try making + to &+

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I'm going to open follow up PR for this and run the benchmarks

xedin added 4 commits July 17, 2018 12:08
Implementation is as follows: In `preCheckExpression` try to
detect if there is `T(literal)` call in the AST, replace it with
implicit `literal as T`, while trying to form type-checked AST,
after constraint solving, restore source information and drop
unnecessary coercion expression.

Resolves: rdar://problem/17088188
Resolves: rdar://problem/39120081
Resolves: rdar://problem/23672697
Resolves: rdar://problem/40379985
…ons in Swift < 5

Maintain source compatibility, but only when Swift < 5, in cases when
type declares conformance to literal protocol and at the same time has
failable initializer with the same parameter type, see `Source compatibility`
of the proposal for more details.
@xedin
Copy link
Contributor Author

xedin commented Jul 17, 2018

@swift-ci please test

@xedin
Copy link
Contributor Author

xedin commented Jul 17, 2018

@swift-ci please test source compatibility

@swift-ci
Copy link
Contributor

Build failed
Swift Test OS X Platform
Git Sha - 16e2cd1

Copy link
Member

@DougGregor DougGregor left a comment

Choose a reason for hiding this comment

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

LGTM, thanks!

@xedin
Copy link
Contributor Author

xedin commented Jul 17, 2018

@swift-ci please test

@swift-ci
Copy link
Contributor

Build failed
Swift Test OS X Platform
Git Sha - 16e2cd1

@xedin
Copy link
Contributor Author

xedin commented Jul 17, 2018

@swift-ci please test source compatibility

@swift-ci
Copy link
Contributor

Build failed
Swift Test Linux Platform
Git Sha - 16e2cd1

@xedin
Copy link
Contributor Author

xedin commented Jul 18, 2018

:shipit:

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.

9 participants