Skip to content

[stdlib] Eliminate the last direct use of Builtin.UnknownObject #11984

New issue

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

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

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Sep 25, 2017

Conversation

jrose-apple
Copy link
Contributor

At the Swift level, this is equivalent to AnyObject, which we've done much more testing of. This commit paves the way for taking UnknownObject out of the SIL type system and just using it as type metadata. Filed SR-5926 to track that work.

At the Swift level, this is equivalent to AnyObject, which we've done
much more testing of. This commit paves the way for taking UnknownObject
out of the SIL type system and just using it as type metadata. Filed
https://bugs.swift.org/browse/SR-5926 to track that work.
@jrose-apple
Copy link
Contributor Author

@swift-ci Please test

@jrose-apple
Copy link
Contributor Author

and just in case, though it would be astonishing for this not to compile down to the same thing…

@swift-ci Please smoke benchmark

Builtin.bridgeToRawPointer(Builtin.castToUnknownObject(l)),
Builtin.bridgeToRawPointer(Builtin.castToUnknownObject(r))
))
return ObjectIdentifier(l) == ObjectIdentifier(r)
Copy link
Contributor

Choose a reason for hiding this comment

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

@eeckstein @atrick Is the casting sequence here necessary for the optimizer to recognize === operations?

@swift-ci
Copy link
Contributor

Build comment file:

Optimized (O)

Regression (3)
TEST OLD NEW DELTA SPEEDUP
DropFirstCountableRangeLazy 18 19 +5.6% 0.95x
accessInMatSet 18 19 +5.6% 0.95x
PrefixCountableRange 18 19 +5.6% 0.95x
Improvement (1)
TEST OLD NEW DELTA SPEEDUP
ObjectiveCBridgeStubNSDateMutationRef 13282 12611 -5.1% 1.05x (?)
No Changes (323)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 2930 2944 +0.5% 1.00x (?)
AnyHashableWithAClass 66827 67034 +0.3% 1.00x
Array2D 1874 1866 -0.4% 1.00x (?)
ArrayAppend 1077 1076 -0.1% 1.00x (?)
ArrayAppendArrayOfInt 596 597 +0.2% 1.00x
ArrayAppendAscii 19790 19786 -0.0% 1.00x (?)
ArrayAppendFromGeneric 597 597 +0.0% 1.00x
ArrayAppendGenericStructs 1268 1223 -3.5% 1.04x
ArrayAppendLatin1 40596 40805 +0.5% 0.99x (?)
ArrayAppendLazyMap 999 992 -0.7% 1.01x (?)
ArrayAppendOptionals 1234 1227 -0.6% 1.01x
ArrayAppendRepeatCol 999 999 +0.0% 1.00x
ArrayAppendReserved 842 842 +0.0% 1.00x
ArrayAppendSequence 912 912 +0.0% 1.00x
ArrayAppendStrings 15052 15066 +0.1% 1.00x (?)
ArrayAppendToFromGeneric 597 597 +0.0% 1.00x
ArrayAppendToGeneric 597 597 +0.0% 1.00x
ArrayAppendUTF16 41242 41244 +0.0% 1.00x (?)
ArrayInClass 64 62 -3.1% 1.03x (?)
ArrayLiteral 0 0 +0.0% 1.00x
ArrayOfGenericPOD 230 230 +0.0% 1.00x
ArrayOfGenericRef 3997 4000 +0.1% 1.00x (?)
ArrayOfPOD 176 176 +0.0% 1.00x
ArrayOfRef 3943 3927 -0.4% 1.00x (?)
ArrayPlusEqualArrayOfInt 597 597 +0.0% 1.00x
ArrayPlusEqualFiveElementCollection 4810 4782 -0.6% 1.01x
ArrayPlusEqualSingleElementCollection 1078 1078 +0.0% 1.00x
ArrayPlusEqualThreeElements 1634 1633 -0.1% 1.00x (?)
ArraySubscript 1481 1482 +0.1% 1.00x (?)
ArrayValueProp 6 6 +0.0% 1.00x
ArrayValueProp2 6 6 +0.0% 1.00x
ArrayValueProp3 6 6 +0.0% 1.00x
ArrayValueProp4 6 6 +0.0% 1.00x
BitCount 135 135 +0.0% 1.00x
ByteSwap 115 115 +0.0% 1.00x
CStringLongAscii 4888 4888 +0.0% 1.00x
CStringLongNonAscii 2227 2226 -0.0% 1.00x (?)
CStringShortAscii 4882 4882 +0.0% 1.00x
Calculator 33 33 +0.0% 1.00x
CaptureProp 4609 4604 -0.1% 1.00x
CharIndexing_ascii_unicodeScalars 13843 13841 -0.0% 1.00x (?)
CharIndexing_ascii_unicodeScalars_Backwards 11248 11249 +0.0% 1.00x (?)
CharIndexing_chinese_unicodeScalars 10485 10484 -0.0% 1.00x (?)
CharIndexing_chinese_unicodeScalars_Backwards 8536 8533 -0.0% 1.00x
CharIndexing_japanese_unicodeScalars 16555 16557 +0.0% 1.00x (?)
CharIndexing_japanese_unicodeScalars_Backwards 13457 13462 +0.0% 1.00x
CharIndexing_korean_unicodeScalars 13426 13429 +0.0% 1.00x
CharIndexing_korean_unicodeScalars_Backwards 10909 10908 -0.0% 1.00x (?)
CharIndexing_punctuatedJapanese_unicodeScalars 2549 2548 -0.0% 1.00x (?)
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 2083 2084 +0.0% 1.00x (?)
CharIndexing_punctuated_unicodeScalars 3165 3165 +0.0% 1.00x
CharIndexing_punctuated_unicodeScalars_Backwards 2592 2593 +0.0% 1.00x (?)
CharIndexing_russian_unicodeScalars 11536 11540 +0.0% 1.00x (?)
CharIndexing_russian_unicodeScalars_Backwards 9381 9384 +0.0% 1.00x (?)
CharIndexing_tweet_unicodeScalars 27246 27309 +0.2% 1.00x (?)
CharIndexing_tweet_unicodeScalars_Backwards 22177 22197 +0.1% 1.00x
CharIndexing_utf16_unicodeScalars 83770 83793 +0.0% 1.00x (?)
CharIndexing_utf16_unicodeScalars_Backwards 73882 73915 +0.0% 1.00x (?)
CharIteration_ascii_unicodeScalars 15827 15830 +0.0% 1.00x (?)
CharIteration_ascii_unicodeScalars_Backwards 16190 16182 -0.0% 1.00x
CharIteration_chinese_unicodeScalars 11983 11989 +0.1% 1.00x (?)
CharIteration_chinese_unicodeScalars_Backwards 12256 12254 -0.0% 1.00x (?)
CharIteration_japanese_unicodeScalars 18943 18939 -0.0% 1.00x (?)
CharIteration_japanese_unicodeScalars_Backwards 19390 19381 -0.0% 1.00x
CharIteration_korean_unicodeScalars 15342 15342 +0.0% 1.00x
CharIteration_korean_unicodeScalars_Backwards 15694 15698 +0.0% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars 2870 2870 +0.0% 1.00x
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 2926 2927 +0.0% 1.00x (?)
CharIteration_punctuated_unicodeScalars 3584 3584 +0.0% 1.00x
CharIteration_punctuated_unicodeScalars_Backwards 3665 3662 -0.1% 1.00x (?)
CharIteration_russian_unicodeScalars 13191 13183 -0.1% 1.00x
CharIteration_russian_unicodeScalars_Backwards 13487 13488 +0.0% 1.00x (?)
CharIteration_tweet_unicodeScalars 31177 31210 +0.1% 1.00x (?)
CharIteration_tweet_unicodeScalars_Backwards 31956 31975 +0.1% 1.00x
CharIteration_utf16_unicodeScalars 78978 78989 +0.0% 1.00x (?)
CharIteration_utf16_unicodeScalars_Backwards 113107 113215 +0.1% 1.00x (?)
CharacterLiteralsLarge 5990 5991 +0.0% 1.00x (?)
CharacterLiteralsSmall 403 403 +0.0% 1.00x
Chars 425 425 +0.0% 1.00x
ClassArrayGetter 14 14 +0.0% 1.00x
DeadArray 186 186 +0.0% 1.00x
Dictionary 561 557 -0.7% 1.01x
Dictionary2 1843 1846 +0.2% 1.00x (?)
Dictionary2OfObjects 3357 3356 -0.0% 1.00x (?)
Dictionary3 458 457 -0.2% 1.00x (?)
Dictionary3OfObjects 896 896 +0.0% 1.00x
DictionaryBridge 2568 2601 +1.3% 0.99x (?)
DictionaryGroup 275 275 +0.0% 1.00x
DictionaryGroupOfObjects 1801 1799 -0.1% 1.00x (?)
DictionaryLiteral 1514 1508 -0.4% 1.00x
DictionaryOfObjects 2340 2339 -0.0% 1.00x (?)
DictionaryRemove 2533 2526 -0.3% 1.00x (?)
DictionaryRemoveOfObjects 23951 23914 -0.2% 1.00x (?)
DictionarySwap 415 415 +0.0% 1.00x
DictionarySwapOfObjects 7408 7388 -0.3% 1.00x (?)
DropFirstAnyCollection 55 55 +0.0% 1.00x
DropFirstAnyCollectionLazy 75638 75441 -0.3% 1.00x (?)
DropFirstAnySeqCRangeIter 27964 27963 -0.0% 1.00x (?)
DropFirstAnySeqCRangeIterLazy 27964 27912 -0.2% 1.00x (?)
DropFirstAnySeqCntRange 50 50 +0.0% 1.00x
DropFirstAnySeqCntRangeLazy 50 50 +0.0% 1.00x
DropFirstAnySequence 6272 6270 -0.0% 1.00x
DropFirstAnySequenceLazy 6265 6265 +0.0% 1.00x
DropFirstArray 30 30 +0.0% 1.00x
DropFirstArrayLazy 30 30 +0.0% 1.00x
DropFirstCountableRange 18 18 +0.0% 1.00x
DropFirstSequence 2095 2095 +0.0% 1.00x
DropFirstSequenceLazy 2019 2019 +0.0% 1.00x
DropLastAnyCollection 21 21 +0.0% 1.00x
DropLastAnyCollectionLazy 25317 25196 -0.5% 1.00x (?)
DropLastAnySeqCRangeIter 4735 4742 +0.1% 1.00x (?)
DropLastAnySeqCRangeIterLazy 4739 4731 -0.2% 1.00x (?)
DropLastAnySeqCntRange 16 16 +0.0% 1.00x
DropLastAnySeqCntRangeLazy 16 16 +0.0% 1.00x
DropLastAnySequence 6764 6757 -0.1% 1.00x (?)
DropLastAnySequenceLazy 6738 6713 -0.4% 1.00x
DropLastArray 10 10 +0.0% 1.00x
DropLastArrayLazy 10 10 +0.0% 1.00x
DropLastCountableRange 6 6 +0.0% 1.00x
DropLastCountableRangeLazy 6 6 +0.0% 1.00x
DropLastSequence 622 624 +0.3% 1.00x (?)
DropLastSequenceLazy 623 623 +0.0% 1.00x
DropWhileAnyCollection 68 68 +0.0% 1.00x
DropWhileAnyCollectionLazy 90 90 +0.0% 1.00x
DropWhileAnySeqCRangeIter 22831 22957 +0.6% 0.99x
DropWhileAnySeqCRangeIterLazy 89 89 +0.0% 1.00x
DropWhileAnySeqCntRange 63 63 +0.0% 1.00x
DropWhileAnySeqCntRangeLazy 89 89 +0.0% 1.00x
DropWhileAnySequence 7279 7280 +0.0% 1.00x (?)
DropWhileAnySequenceLazy 2007 2007 +0.0% 1.00x
DropWhileArray 43 43 +0.0% 1.00x
DropWhileArrayLazy 78 78 +0.0% 1.00x
DropWhileCountableRange 19 19 +0.0% 1.00x
DropWhileCountableRangeLazy 70 70 +0.0% 1.00x
DropWhileSequence 1550 1549 -0.1% 1.00x (?)
DropWhileSequenceLazy 46 47 +2.2% 0.98x
EqualStringSubstring 387 386 -0.3% 1.00x (?)
EqualSubstringString 386 386 +0.0% 1.00x
EqualSubstringSubstring 387 387 +0.0% 1.00x
EqualSubstringSubstringGenericEquatable 386 386 +0.0% 1.00x
ErrorHandling 2063 2059 -0.2% 1.00x (?)
FilterEvenUsingReduce 1288 1302 +1.1% 0.99x
FilterEvenUsingReduceInto 146 146 +0.0% 1.00x
FrequenciesUsingReduce 7484 7512 +0.4% 1.00x
FrequenciesUsingReduceInto 4160 4155 -0.1% 1.00x (?)
Hanoi 3516 3513 -0.1% 1.00x (?)
HashTest 1643 1642 -0.1% 1.00x (?)
Histogram 280 280 +0.0% 1.00x
Integrate 262 262 +0.0% 1.00x
IterateData 1389 1387 -0.1% 1.00x
Join 368 379 +3.0% 0.97x (?)
LazilyFilteredArrays 64697 64960 +0.4% 1.00x (?)
LazilyFilteredRange 3619 3625 +0.2% 1.00x
LessSubstringSubstring 382 382 +0.0% 1.00x
LessSubstringSubstringGenericComparable 384 384 +0.0% 1.00x
LinkedList 7111 7111 +0.0% 1.00x
MapReduce 361 362 +0.3% 1.00x
MapReduceAnyCollection 362 362 +0.0% 1.00x
MapReduceAnyCollectionShort 2104 2104 +0.0% 1.00x
MapReduceClass 3059 3061 +0.1% 1.00x (?)
MapReduceClassShort 4542 4537 -0.1% 1.00x
MapReduceLazyCollection 12 12 +0.0% 1.00x
MapReduceLazyCollectionShort 36 36 +0.0% 1.00x
MapReduceLazySequence 90 90 +0.0% 1.00x
MapReduceSequence 440 444 +0.9% 0.99x (?)
MapReduceShort 1988 1989 +0.1% 1.00x
MapReduceShortString 21 21 +0.0% 1.00x
MapReduceString 103 103 +0.0% 1.00x
Memset 234 234 +0.0% 1.00x
MonteCarloE 10399 10393 -0.1% 1.00x (?)
MonteCarloPi 43991 43979 -0.0% 1.00x
NSDictionaryCastToSwift 5373 5509 +2.5% 0.98x (?)
NSError 292 292 +0.0% 1.00x
NSStringConversion 351 348 -0.9% 1.01x (?)
NopDeinit 22899 22894 -0.0% 1.00x (?)
ObjectAllocation 178 179 +0.6% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObject 23288 23282 -0.0% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 3444 3449 +0.1% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 39865 39234 -1.6% 1.02x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 33406 32762 -1.9% 1.02x
ObjectiveCBridgeFromNSDictionaryAnyObject 120619 120257 -0.3% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 5081 5117 +0.7% 0.99x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 96943 96220 -0.7% 1.01x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 102800 98953 -3.7% 1.04x (?)
ObjectiveCBridgeFromNSSetAnyObject 64968 65571 +0.9% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 4172 4213 +1.0% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 67993 67943 -0.1% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 69497 68535 -1.4% 1.01x (?)
ObjectiveCBridgeFromNSString 992 993 +0.1% 1.00x (?)
ObjectiveCBridgeFromNSStringForced 1786 1774 -0.7% 1.01x
ObjectiveCBridgeStubDataAppend 3890 3892 +0.1% 1.00x (?)
ObjectiveCBridgeStubDateAccess 181 181 +0.0% 1.00x
ObjectiveCBridgeStubDateMutation 272 272 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 25309 25567 +1.0% 0.99x
ObjectiveCBridgeStubFromNSDate 3544 3729 +5.2% 0.95x
ObjectiveCBridgeStubFromNSDateRef 4128 4128 +0.0% 1.00x
ObjectiveCBridgeStubFromNSString 554 556 +0.4% 1.00x (?)
ObjectiveCBridgeStubFromNSStringRef 140 139 -0.7% 1.01x
ObjectiveCBridgeStubNSDataAppend 2484 2434 -2.0% 1.02x (?)
ObjectiveCBridgeStubNSDateRefAccess 339 338 -0.3% 1.00x (?)
ObjectiveCBridgeStubToArrayOfNSString 29066 29336 +0.9% 0.99x (?)
ObjectiveCBridgeStubToNSDate 14878 15064 +1.3% 0.99x (?)
ObjectiveCBridgeStubToNSDateRef 3306 3166 -4.2% 1.04x (?)
ObjectiveCBridgeStubToNSString 1517 1506 -0.7% 1.01x (?)
ObjectiveCBridgeStubToNSStringRef 108 108 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 223466 228025 +2.0% 0.98x (?)
ObjectiveCBridgeStubURLAppendPathRef 223063 219109 -1.8% 1.02x (?)
ObjectiveCBridgeToNSArray 29614 29590 -0.1% 1.00x (?)
ObjectiveCBridgeToNSDictionary 46253 45467 -1.7% 1.02x (?)
ObjectiveCBridgeToNSSet 39553 39101 -1.1% 1.01x (?)
ObjectiveCBridgeToNSString 1273 1272 -0.1% 1.00x (?)
ObserverClosure 2285 2285 +0.0% 1.00x
ObserverForwarderStruct 1142 1141 -0.1% 1.00x (?)
ObserverPartiallyAppliedMethod 3803 3795 -0.2% 1.00x (?)
ObserverUnappliedMethod 2687 2681 -0.2% 1.00x (?)
OpenClose 3 3 +0.0% 1.00x
Phonebook 5887 5890 +0.1% 1.00x (?)
PolymorphicCalls 17 17 +0.0% 1.00x
PopFrontArray 1227 1226 -0.1% 1.00x (?)
PopFrontArrayGeneric 1225 1225 +0.0% 1.00x
PopFrontUnsafePointer 5764 5763 -0.0% 1.00x (?)
PrefixAnyCollection 55 55 +0.0% 1.00x
PrefixAnyCollectionLazy 75691 75530 -0.2% 1.00x (?)
PrefixAnySeqCRangeIter 21989 21947 -0.2% 1.00x (?)
PrefixAnySeqCRangeIterLazy 21995 22098 +0.5% 1.00x (?)
PrefixAnySeqCntRange 50 50 +0.0% 1.00x
PrefixAnySeqCntRangeLazy 50 50 +0.0% 1.00x
PrefixAnySequence 5550 5550 +0.0% 1.00x
PrefixAnySequenceLazy 5552 5551 -0.0% 1.00x
PrefixArray 30 30 +0.0% 1.00x
PrefixArrayLazy 30 30 +0.0% 1.00x
PrefixCountableRangeLazy 18 18 +0.0% 1.00x
PrefixSequence 1571 1571 +0.0% 1.00x
PrefixSequenceLazy 1515 1515 +0.0% 1.00x
PrefixWhileAnyCollection 93 93 +0.0% 1.00x
PrefixWhileAnyCollectionLazy 66 66 +0.0% 1.00x
PrefixWhileAnySeqCRangeIter 12932 12933 +0.0% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 66 66 +0.0% 1.00x
PrefixWhileAnySeqCntRange 88 88 +0.0% 1.00x
PrefixWhileAnySeqCntRangeLazy 66 66 +0.0% 1.00x
PrefixWhileAnySequence 14362 14363 +0.0% 1.00x (?)
PrefixWhileAnySequenceLazy 1492 1492 +0.0% 1.00x
PrefixWhileArray 68 68 +0.0% 1.00x
PrefixWhileArrayLazy 37 37 +0.0% 1.00x
PrefixWhileCountableRange 29 29 +0.0% 1.00x
PrefixWhileCountableRangeLazy 18 18 +0.0% 1.00x
PrefixWhileSequence 370 368 -0.5% 1.01x
PrefixWhileSequenceLazy 28 28 +0.0% 1.00x
Prims 787 790 +0.4% 1.00x (?)
ProtocolDispatch 2731 2728 -0.1% 1.00x (?)
ProtocolDispatch2 161 161 +0.0% 1.00x
RC4 157 157 +0.0% 1.00x
RGBHistogram 2260 2270 +0.4% 1.00x (?)
RGBHistogramOfObjects 23482 23568 +0.4% 1.00x (?)
RangeAssignment 372 371 -0.3% 1.00x (?)
RecursiveOwnedParameter 2323 2322 -0.0% 1.00x (?)
ReversedArray 44 45 +2.3% 0.98x
ReversedBidirectional 29310 29265 -0.2% 1.00x
ReversedDictionary 109 105 -3.7% 1.04x
SetExclusiveOr 2828 2818 -0.4% 1.00x (?)
SetExclusiveOr_OfObjects 8460 8343 -1.4% 1.01x
SetIntersect 269 267 -0.7% 1.01x (?)
SetIntersect_OfObjects 1724 1729 +0.3% 1.00x (?)
SetIsSubsetOf 295 295 +0.0% 1.00x
SetIsSubsetOf_OfObjects 363 363 +0.0% 1.00x
SetUnion 2682 2683 +0.0% 1.00x (?)
SetUnion_OfObjects 7060 7027 -0.5% 1.00x (?)
SevenBoom 1472 1471 -0.1% 1.00x (?)
Sim2DArray 348 348 +0.0% 1.00x
SortLargeExistentials 8441 8440 -0.0% 1.00x (?)
SortLettersInPlace 1146 1147 +0.1% 1.00x (?)
SortSortedStrings 838 838 +0.0% 1.00x
SortStrings 1634 1635 +0.1% 1.00x (?)
SortStringsUnicode 7788 7782 -0.1% 1.00x (?)
StackPromo 22866 22857 -0.0% 1.00x
StaticArray 5 5 +0.0% 1.00x
StrComplexWalk 1652 1652 +0.0% 1.00x
StrToInt 1835 1833 -0.1% 1.00x (?)
StringAdder 3509 3500 -0.3% 1.00x (?)
StringBuilder 1019 1022 +0.3% 1.00x (?)
StringBuilderLong 941 941 +0.0% 1.00x
StringEdits 115118 115134 +0.0% 1.00x (?)
StringEqualPointerComparison 272 272 +0.0% 1.00x
StringFromLongWholeSubstring 182 182 +0.0% 1.00x
StringFromLongWholeSubstringGeneric 23 23 +0.0% 1.00x
StringHasPrefix 9 9 +0.0% 1.00x
StringHasPrefixUnicode 15027 14989 -0.3% 1.00x (?)
StringHasSuffix 9 9 +0.0% 1.00x
StringHasSuffixUnicode 61613 61668 +0.1% 1.00x (?)
StringInterpolation 10918 10874 -0.4% 1.00x (?)
StringMatch 7385 7393 +0.1% 1.00x
StringUTF16Builder 1901 1898 -0.2% 1.00x
StringWalk 1502 1502 +0.0% 1.00x
StringWithCString 68539 68529 -0.0% 1.00x (?)
SubstringComparable 1528 1527 -0.1% 1.00x
SubstringEqualString 1375 1377 +0.1% 1.00x (?)
SubstringEquatable 3521 3520 -0.0% 1.00x (?)
SubstringFromLongString 10 10 +0.0% 1.00x
SubstringFromLongStringGeneric 63 63 +0.0% 1.00x
SuffixAnyCollection 21 21 +0.0% 1.00x
SuffixAnyCollectionLazy 25235 25191 -0.2% 1.00x (?)
SuffixAnySeqCRangeIter 5062 5069 +0.1% 1.00x (?)
SuffixAnySeqCRangeIterLazy 5068 5061 -0.1% 1.00x (?)
SuffixAnySeqCntRange 16 16 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 16 16 +0.0% 1.00x
SuffixAnySequence 6806 6810 +0.1% 1.00x (?)
SuffixAnySequenceLazy 6745 6752 +0.1% 1.00x
SuffixArray 10 10 +0.0% 1.00x
SuffixArrayLazy 10 10 +0.0% 1.00x
SuffixCountableRange 6 6 +0.0% 1.00x
SuffixCountableRangeLazy 6 6 +0.0% 1.00x
SuffixSequence 4669 4670 +0.0% 1.00x (?)
SuffixSequenceLazy 4676 4679 +0.1% 1.00x (?)
SumUsingReduce 97 97 +0.0% 1.00x
SumUsingReduceInto 97 97 +0.0% 1.00x
SuperChars 83381 83308 -0.1% 1.00x (?)
TwoSum 953 952 -0.1% 1.00x (?)
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode 257 257 +0.0% 1.00x
Walsh 383 383 +0.0% 1.00x
XorLoop 347 347 +0.0% 1.00x
accessGlobal 3 3 +0.0% 1.00x
accessIndependent 2 2 +0.0% 1.00x

Unoptimized (Onone)

Improvement (3)
TEST OLD NEW DELTA SPEEDUP
Chars 59127 50746 -14.2% 1.17x
ObjectiveCBridgeStubToNSDate 15874 14868 -6.3% 1.07x (?)
SumUsingReduce 246530 233206 -5.4% 1.06x (?)
No Changes (324)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 5004 5042 +0.8% 0.99x (?)
AnyHashableWithAClass 85290 85982 +0.8% 0.99x (?)
Array2D 634692 634822 +0.0% 1.00x (?)
ArrayAppend 3982 3983 +0.0% 1.00x (?)
ArrayAppendArrayOfInt 656 657 +0.2% 1.00x (?)
ArrayAppendAscii 53345 53239 -0.2% 1.00x (?)
ArrayAppendFromGeneric 661 659 -0.3% 1.00x
ArrayAppendGenericStructs 1305 1294 -0.8% 1.01x
ArrayAppendLatin1 76275 78057 +2.3% 0.98x (?)
ArrayAppendLazyMap 229676 228251 -0.6% 1.01x
ArrayAppendOptionals 1346 1316 -2.2% 1.02x (?)
ArrayAppendRepeatCol 233254 234126 +0.4% 1.00x
ArrayAppendReserved 4008 4009 +0.0% 1.00x (?)
ArrayAppendSequence 79548 78801 -0.9% 1.01x
ArrayAppendStrings 15272 15278 +0.0% 1.00x (?)
ArrayAppendToFromGeneric 659 660 +0.2% 1.00x (?)
ArrayAppendToGeneric 660 660 +0.0% 1.00x
ArrayAppendUTF16 75581 75419 -0.2% 1.00x
ArrayInClass 6433 6434 +0.0% 1.00x (?)
ArrayLiteral 1746 1747 +0.1% 1.00x (?)
ArrayOfGenericPOD 1471 1471 +0.0% 1.00x
ArrayOfGenericRef 10010 10004 -0.1% 1.00x (?)
ArrayOfPOD 791 792 +0.1% 1.00x (?)
ArrayOfRef 9240 9252 +0.1% 1.00x (?)
ArrayPlusEqualArrayOfInt 658 657 -0.2% 1.00x
ArrayPlusEqualFiveElementCollection 310234 314065 +1.2% 0.99x (?)
ArrayPlusEqualSingleElementCollection 309366 306928 -0.8% 1.01x (?)
ArrayPlusEqualThreeElements 11266 11283 +0.2% 1.00x (?)
ArraySubscript 4389 4383 -0.1% 1.00x (?)
ArrayValueProp 3549 3555 +0.2% 1.00x (?)
ArrayValueProp2 19684 20213 +2.7% 0.97x
ArrayValueProp3 4017 4016 -0.0% 1.00x (?)
ArrayValueProp4 3986 3980 -0.2% 1.00x (?)
BitCount 1748 1750 +0.1% 1.00x (?)
ByteSwap 4017 4033 +0.4% 1.00x (?)
CStringLongAscii 4798 4797 -0.0% 1.00x (?)
CStringLongNonAscii 2357 2355 -0.1% 1.00x (?)
CStringShortAscii 8818 8835 +0.2% 1.00x (?)
Calculator 1163 1165 +0.2% 1.00x (?)
CaptureProp 126309 126189 -0.1% 1.00x
CharIndexing_ascii_unicodeScalars 479516 477243 -0.5% 1.00x (?)
CharIndexing_ascii_unicodeScalars_Backwards 527186 526039 -0.2% 1.00x (?)
CharIndexing_chinese_unicodeScalars 362403 356472 -1.6% 1.02x
CharIndexing_chinese_unicodeScalars_Backwards 391448 393785 +0.6% 0.99x (?)
CharIndexing_japanese_unicodeScalars 568166 566557 -0.3% 1.00x (?)
CharIndexing_japanese_unicodeScalars_Backwards 625311 627291 +0.3% 1.00x (?)
CharIndexing_korean_unicodeScalars 462552 464197 +0.4% 1.00x (?)
CharIndexing_korean_unicodeScalars_Backwards 508083 511492 +0.7% 0.99x (?)
CharIndexing_punctuatedJapanese_unicodeScalars 82136 82345 +0.3% 1.00x (?)
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 89367 89663 +0.3% 1.00x (?)
CharIndexing_punctuated_unicodeScalars 104368 104419 +0.0% 1.00x (?)
CharIndexing_punctuated_unicodeScalars_Backwards 113294 113811 +0.5% 1.00x (?)
CharIndexing_russian_unicodeScalars 397458 396378 -0.3% 1.00x (?)
CharIndexing_russian_unicodeScalars_Backwards 437575 439514 +0.4% 1.00x (?)
CharIndexing_tweet_unicodeScalars 936316 947420 +1.2% 0.99x
CharIndexing_tweet_unicodeScalars_Backwards 1029257 1034881 +0.5% 0.99x
CharIndexing_utf16_unicodeScalars 527182 526473 -0.1% 1.00x (?)
CharIndexing_utf16_unicodeScalars_Backwards 580604 588103 +1.3% 0.99x (?)
CharIteration_ascii_unicodeScalars 188105 193663 +3.0% 0.97x (?)
CharIteration_ascii_unicodeScalars_Backwards 332022 332526 +0.2% 1.00x (?)
CharIteration_chinese_unicodeScalars 141910 141971 +0.0% 1.00x (?)
CharIteration_chinese_unicodeScalars_Backwards 247438 247699 +0.1% 1.00x (?)
CharIteration_japanese_unicodeScalars 224124 224322 +0.1% 1.00x (?)
CharIteration_japanese_unicodeScalars_Backwards 392605 396107 +0.9% 0.99x (?)
CharIteration_korean_unicodeScalars 187198 187134 -0.0% 1.00x (?)
CharIteration_korean_unicodeScalars_Backwards 321624 321888 +0.1% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars 33752 33757 +0.0% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 57593 57590 -0.0% 1.00x (?)
CharIteration_punctuated_unicodeScalars 43003 41706 -3.0% 1.03x (?)
CharIteration_punctuated_unicodeScalars_Backwards 72830 72878 +0.1% 1.00x (?)
CharIteration_russian_unicodeScalars 160965 160765 -0.1% 1.00x (?)
CharIteration_russian_unicodeScalars_Backwards 276423 276499 +0.0% 1.00x (?)
CharIteration_tweet_unicodeScalars 369171 369285 +0.0% 1.00x (?)
CharIteration_tweet_unicodeScalars_Backwards 649937 648283 -0.3% 1.00x (?)
CharIteration_utf16_unicodeScalars 207830 208035 +0.1% 1.00x (?)
CharIteration_utf16_unicodeScalars_Backwards 405784 405472 -0.1% 1.00x (?)
CharacterLiteralsLarge 6181 6192 +0.2% 1.00x (?)
CharacterLiteralsSmall 663 662 -0.2% 1.00x
ClassArrayGetter 1026 1026 +0.0% 1.00x
DeadArray 113508 114104 +0.5% 0.99x (?)
Dictionary 3029 3063 +1.1% 0.99x (?)
Dictionary2 3451 3453 +0.1% 1.00x (?)
Dictionary2OfObjects 6055 6101 +0.8% 0.99x (?)
Dictionary3 1310 1309 -0.1% 1.00x (?)
Dictionary3OfObjects 2318 2308 -0.4% 1.00x (?)
DictionaryBridge 2658 2678 +0.8% 0.99x (?)
DictionaryGroup 5474 5477 +0.1% 1.00x (?)
DictionaryGroupOfObjects 8292 8322 +0.4% 1.00x (?)
DictionaryLiteral 8617 8695 +0.9% 0.99x (?)
DictionaryOfObjects 6550 6569 +0.3% 1.00x (?)
DictionaryRemove 21674 21664 -0.0% 1.00x
DictionaryRemoveOfObjects 60601 60663 +0.1% 1.00x (?)
DictionarySwap 5440 5444 +0.1% 1.00x
DictionarySwapOfObjects 23147 23170 +0.1% 1.00x (?)
DropFirstAnyCollection 20453 20515 +0.3% 1.00x (?)
DropFirstAnyCollectionLazy 142963 143247 +0.2% 1.00x (?)
DropFirstAnySeqCRangeIter 32262 32309 +0.1% 1.00x
DropFirstAnySeqCRangeIterLazy 31077 31018 -0.2% 1.00x
DropFirstAnySeqCntRange 20395 20391 -0.0% 1.00x (?)
DropFirstAnySeqCntRangeLazy 20481 20707 +1.1% 0.99x (?)
DropFirstAnySequence 15979 15988 +0.1% 1.00x
DropFirstAnySequenceLazy 15788 15797 +0.1% 1.00x
DropFirstArray 6320 6321 +0.0% 1.00x (?)
DropFirstArrayLazy 45843 45786 -0.1% 1.00x
DropFirstCountableRange 338 337 -0.3% 1.00x
DropFirstCountableRangeLazy 40609 40624 +0.0% 1.00x (?)
DropFirstSequence 15100 15112 +0.1% 1.00x (?)
DropFirstSequenceLazy 15284 14983 -2.0% 1.02x
DropLastAnyCollection 6867 6837 -0.4% 1.00x (?)
DropLastAnyCollectionLazy 47627 47629 +0.0% 1.00x (?)
DropLastAnySeqCRangeIter 47739 47752 +0.0% 1.00x (?)
DropLastAnySeqCRangeIterLazy 47168 47097 -0.2% 1.00x
DropLastAnySeqCntRange 6877 6904 +0.4% 1.00x (?)
DropLastAnySeqCntRangeLazy 6843 6911 +1.0% 0.99x
DropLastAnySequence 33748 33748 +0.0% 1.00x
DropLastAnySequenceLazy 33793 33787 -0.0% 1.00x (?)
DropLastArray 2113 2112 -0.0% 1.00x
DropLastArrayLazy 15354 15329 -0.2% 1.00x
DropLastCountableRange 118 118 +0.0% 1.00x
DropLastCountableRangeLazy 13586 13513 -0.5% 1.01x (?)
DropLastSequence 33595 33586 -0.0% 1.00x (?)
DropLastSequenceLazy 33398 33403 +0.0% 1.00x (?)
DropWhileAnyCollection 26894 27091 +0.7% 0.99x (?)
DropWhileAnyCollectionLazy 29154 29116 -0.1% 1.00x (?)
DropWhileAnySeqCRangeIter 34007 33965 -0.1% 1.00x (?)
DropWhileAnySeqCRangeIterLazy 29677 29683 +0.0% 1.00x (?)
DropWhileAnySeqCntRange 26715 26903 +0.7% 0.99x
DropWhileAnySeqCntRangeLazy 29269 29288 +0.1% 1.00x
DropWhileAnySequence 18801 18811 +0.1% 1.00x (?)
DropWhileAnySequenceLazy 15159 15157 -0.0% 1.00x (?)
DropWhileArray 9982 9991 +0.1% 1.00x
DropWhileArrayLazy 17477 17468 -0.1% 1.00x
DropWhileCountableRange 6587 6570 -0.3% 1.00x (?)
DropWhileCountableRangeLazy 28201 28223 +0.1% 1.00x (?)
DropWhileSequence 17930 17971 +0.2% 1.00x
DropWhileSequenceLazy 14124 14126 +0.0% 1.00x
EqualStringSubstring 675 676 +0.1% 1.00x (?)
EqualSubstringString 671 673 +0.3% 1.00x (?)
EqualSubstringSubstring 789 789 +0.0% 1.00x
EqualSubstringSubstringGenericEquatable 422 422 +0.0% 1.00x
ErrorHandling 6832 6897 +1.0% 0.99x (?)
FilterEvenUsingReduce 4336 4333 -0.1% 1.00x (?)
FilterEvenUsingReduceInto 2506 2508 +0.1% 1.00x (?)
FrequenciesUsingReduce 16297 16284 -0.1% 1.00x (?)
FrequenciesUsingReduceInto 9256 9237 -0.2% 1.00x (?)
Hanoi 19558 19524 -0.2% 1.00x (?)
HashTest 17146 17201 +0.3% 1.00x (?)
Histogram 8971 8961 -0.1% 1.00x (?)
Integrate 694 694 +0.0% 1.00x
IterateData 14045 14046 +0.0% 1.00x (?)
Join 1505 1504 -0.1% 1.00x
LazilyFilteredArrays 1757156 1751476 -0.3% 1.00x (?)
LazilyFilteredRange 711704 708363 -0.5% 1.00x (?)
LessSubstringSubstring 797 796 -0.1% 1.00x (?)
LessSubstringSubstringGenericComparable 442 441 -0.2% 1.00x
LinkedList 40132 40127 -0.0% 1.00x (?)
MapReduce 38980 38981 +0.0% 1.00x (?)
MapReduceAnyCollection 39236 39231 -0.0% 1.00x (?)
MapReduceAnyCollectionShort 52182 51828 -0.7% 1.01x (?)
MapReduceClass 44352 44356 +0.0% 1.00x (?)
MapReduceClassShort 55977 55698 -0.5% 1.01x (?)
MapReduceLazyCollection 34962 34965 +0.0% 1.00x (?)
MapReduceLazyCollectionShort 46357 46176 -0.4% 1.00x (?)
MapReduceLazySequence 30603 30447 -0.5% 1.01x
MapReduceSequence 46329 46496 +0.4% 1.00x
MapReduceShort 50961 51069 +0.2% 1.00x (?)
MapReduceShortString 289 286 -1.0% 1.01x (?)
MapReduceString 2745 2750 +0.2% 1.00x (?)
Memset 44656 44653 -0.0% 1.00x (?)
MonteCarloE 135266 135879 +0.5% 1.00x
MonteCarloPi 52481 52485 +0.0% 1.00x (?)
NSDictionaryCastToSwift 6689 6725 +0.5% 0.99x
NSError 700 701 +0.1% 1.00x (?)
NSStringConversion 388 387 -0.3% 1.00x (?)
NopDeinit 170008 174507 +2.6% 0.97x
ObjectAllocation 1472 1472 +0.0% 1.00x
ObjectiveCBridgeFromNSArrayAnyObject 25375 24968 -1.6% 1.02x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 6769 6814 +0.7% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 40507 40499 -0.0% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 34650 34330 -0.9% 1.01x
ObjectiveCBridgeFromNSDictionaryAnyObject 123982 124869 +0.7% 0.99x
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 7428 7777 +4.7% 0.96x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 99035 100630 +1.6% 0.98x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 102127 101871 -0.3% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObject 69278 69200 -0.1% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 7392 7423 +0.4% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 74941 76610 +2.2% 0.98x (?)
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 76334 73450 -3.8% 1.04x (?)
ObjectiveCBridgeFromNSString 3985 3989 +0.1% 1.00x (?)
ObjectiveCBridgeFromNSStringForced 2175 2179 +0.2% 1.00x
ObjectiveCBridgeStubDataAppend 4512 4597 +1.9% 0.98x (?)
ObjectiveCBridgeStubDateAccess 1034 1034 +0.0% 1.00x
ObjectiveCBridgeStubDateMutation 489 488 -0.2% 1.00x (?)
ObjectiveCBridgeStubFromArrayOfNSString 25373 25347 -0.1% 1.00x (?)
ObjectiveCBridgeStubFromNSDate 3817 3941 +3.2% 0.97x
ObjectiveCBridgeStubFromNSDateRef 4325 4329 +0.1% 1.00x (?)
ObjectiveCBridgeStubFromNSString 581 578 -0.5% 1.01x (?)
ObjectiveCBridgeStubFromNSStringRef 181 181 +0.0% 1.00x
ObjectiveCBridgeStubNSDataAppend 2785 2720 -2.3% 1.02x
ObjectiveCBridgeStubNSDateMutationRef 15875 16431 +3.5% 0.97x (?)
ObjectiveCBridgeStubNSDateRefAccess 1209 1209 +0.0% 1.00x
ObjectiveCBridgeStubToArrayOfNSString 29178 29444 +0.9% 0.99x (?)
ObjectiveCBridgeStubToNSDateRef 3341 3325 -0.5% 1.00x (?)
ObjectiveCBridgeStubToNSString 1544 1554 +0.6% 0.99x (?)
ObjectiveCBridgeStubToNSStringRef 155 155 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 219291 222546 +1.5% 0.99x (?)
ObjectiveCBridgeStubURLAppendPathRef 225031 224891 -0.1% 1.00x (?)
ObjectiveCBridgeToNSArray 29109 29867 +2.6% 0.97x (?)
ObjectiveCBridgeToNSDictionary 46468 46395 -0.2% 1.00x (?)
ObjectiveCBridgeToNSSet 39975 39737 -0.6% 1.01x (?)
ObjectiveCBridgeToNSString 1309 1306 -0.2% 1.00x (?)
ObserverClosure 7011 7014 +0.0% 1.00x (?)
ObserverForwarderStruct 5078 5069 -0.2% 1.00x (?)
ObserverPartiallyAppliedMethod 8470 8477 +0.1% 1.00x (?)
ObserverUnappliedMethod 8778 8841 +0.7% 0.99x (?)
OpenClose 391 391 +0.0% 1.00x
Phonebook 22237 22250 +0.1% 1.00x (?)
PolymorphicCalls 5130 5139 +0.2% 1.00x (?)
PopFrontArray 10384 10383 -0.0% 1.00x (?)
PopFrontArrayGeneric 9308 9293 -0.2% 1.00x (?)
PopFrontUnsafePointer 7261 7249 -0.2% 1.00x
PrefixAnyCollection 20558 20553 -0.0% 1.00x (?)
PrefixAnyCollectionLazy 143479 144262 +0.5% 0.99x (?)
PrefixAnySeqCRangeIter 24912 25007 +0.4% 1.00x
PrefixAnySeqCRangeIterLazy 24750 24711 -0.2% 1.00x
PrefixAnySeqCntRange 20403 20319 -0.4% 1.00x (?)
PrefixAnySeqCntRangeLazy 20529 20775 +1.2% 0.99x
PrefixAnySequence 12999 12996 -0.0% 1.00x (?)
PrefixAnySequenceLazy 13140 13136 -0.0% 1.00x (?)
PrefixArray 6322 6325 +0.0% 1.00x (?)
PrefixArrayLazy 45846 45787 -0.1% 1.00x
PrefixCountableRange 337 337 +0.0% 1.00x
PrefixCountableRangeLazy 40782 40798 +0.0% 1.00x (?)
PrefixSequence 12226 12228 +0.0% 1.00x (?)
PrefixSequenceLazy 12053 12047 -0.0% 1.00x
PrefixWhileAnyCollection 39184 39420 +0.6% 0.99x (?)
PrefixWhileAnyCollectionLazy 23901 23856 -0.2% 1.00x (?)
PrefixWhileAnySeqCRangeIter 43026 43054 +0.1% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 24114 24019 -0.4% 1.00x (?)
PrefixWhileAnySeqCntRange 39123 39352 +0.6% 0.99x
PrefixWhileAnySeqCntRangeLazy 24112 24059 -0.2% 1.00x
PrefixWhileAnySequence 32823 32828 +0.0% 1.00x (?)
PrefixWhileAnySequenceLazy 13634 13634 +0.0% 1.00x
PrefixWhileArray 17313 17307 -0.0% 1.00x (?)
PrefixWhileArrayLazy 15340 15341 +0.0% 1.00x (?)
PrefixWhileCountableRange 19018 19551 +2.8% 0.97x (?)
PrefixWhileCountableRangeLazy 23111 23083 -0.1% 1.00x (?)
PrefixWhileSequence 31619 31630 +0.0% 1.00x (?)
PrefixWhileSequenceLazy 12819 12744 -0.6% 1.01x
Prims 10595 10645 +0.5% 1.00x
ProtocolDispatch 7010 6997 -0.2% 1.00x (?)
ProtocolDispatch2 496 495 -0.2% 1.00x
RC4 18744 19001 +1.4% 0.99x
RGBHistogram 34681 34694 +0.0% 1.00x (?)
RGBHistogramOfObjects 108468 108197 -0.2% 1.00x (?)
RangeAssignment 5784 5772 -0.2% 1.00x (?)
RecursiveOwnedParameter 11136 11140 +0.0% 1.00x (?)
ReversedArray 44435 44245 -0.4% 1.00x (?)
ReversedBidirectional 75594 75623 +0.0% 1.00x (?)
ReversedDictionary 29382 29402 +0.1% 1.00x (?)
SetExclusiveOr 22991 22918 -0.3% 1.00x (?)
SetExclusiveOr_OfObjects 48361 48254 -0.2% 1.00x (?)
SetIntersect 12478 12480 +0.0% 1.00x (?)
SetIntersect_OfObjects 12601 12503 -0.8% 1.01x (?)
SetIsSubsetOf 1874 1875 +0.1% 1.00x
SetIsSubsetOf_OfObjects 1569 1557 -0.8% 1.01x
SetUnion 11867 11858 -0.1% 1.00x (?)
SetUnion_OfObjects 33875 33807 -0.2% 1.00x (?)
SevenBoom 1605 1604 -0.1% 1.00x (?)
Sim2DArray 44196 44197 +0.0% 1.00x (?)
SortLargeExistentials 17774 17782 +0.0% 1.00x (?)
SortLettersInPlace 3057 3060 +0.1% 1.00x (?)
SortSortedStrings 1456 1454 -0.1% 1.00x (?)
SortStrings 2556 2548 -0.3% 1.00x (?)
SortStringsUnicode 8964 8968 +0.0% 1.00x (?)
StackPromo 101497 102217 +0.7% 0.99x (?)
StaticArray 4605 4613 +0.2% 1.00x (?)
StrComplexWalk 6992 6974 -0.3% 1.00x
StrToInt 125953 126225 +0.2% 1.00x
StringAdder 3797 3799 +0.1% 1.00x (?)
StringBuilder 7150 7143 -0.1% 1.00x (?)
StringBuilderLong 1111 1112 +0.1% 1.00x
StringEdits 387606 384101 -0.9% 1.01x (?)
StringEqualPointerComparison 2506 2522 +0.6% 0.99x (?)
StringFromLongWholeSubstring 207 207 +0.0% 1.00x
StringFromLongWholeSubstringGeneric 222 222 +0.0% 1.00x
StringHasPrefix 1760 1762 +0.1% 1.00x (?)
StringHasPrefixUnicode 16583 16581 -0.0% 1.00x (?)
StringHasSuffix 1839 1839 +0.0% 1.00x
StringHasSuffixUnicode 63756 63780 +0.0% 1.00x (?)
StringInterpolation 13894 13832 -0.4% 1.00x
StringMatch 34678 34664 -0.0% 1.00x (?)
StringUTF16Builder 8138 8136 -0.0% 1.00x (?)
StringWalk 12381 12376 -0.0% 1.00x
StringWithCString 59114 59164 +0.1% 1.00x
SubstringComparable 4266 4265 -0.0% 1.00x (?)
SubstringEqualString 6523 6558 +0.5% 0.99x (?)
SubstringEquatable 8426 8423 -0.0% 1.00x (?)
SubstringFromLongString 16 16 +0.0% 1.00x
SubstringFromLongStringGeneric 116 116 +0.0% 1.00x
SuffixAnyCollection 6845 6833 -0.2% 1.00x (?)
SuffixAnyCollectionLazy 47779 47873 +0.2% 1.00x (?)
SuffixAnySeqCRangeIter 45140 45389 +0.6% 0.99x
SuffixAnySeqCRangeIterLazy 44545 44800 +0.6% 0.99x
SuffixAnySeqCntRange 6889 6899 +0.1% 1.00x (?)
SuffixAnySeqCntRangeLazy 6875 6949 +1.1% 0.99x
SuffixAnySequence 31274 31269 -0.0% 1.00x (?)
SuffixAnySequenceLazy 31181 31185 +0.0% 1.00x (?)
SuffixArray 2114 2115 +0.0% 1.00x (?)
SuffixArrayLazy 15349 15327 -0.1% 1.00x (?)
SuffixCountableRange 118 118 +0.0% 1.00x
SuffixCountableRangeLazy 13597 13546 -0.4% 1.00x (?)
SuffixSequence 30783 30786 +0.0% 1.00x (?)
SuffixSequenceLazy 30787 30783 -0.0% 1.00x (?)
SumUsingReduceInto 226942 236989 +4.4% 0.96x (?)
SuperChars 193246 196747 +1.8% 0.98x (?)
TwoSum 4320 4324 +0.1% 1.00x (?)
TypeFlood 169 162 -4.1% 1.04x (?)
UTF8Decode 38525 38529 +0.0% 1.00x (?)
Walsh 12044 12031 -0.1% 1.00x (?)
XorLoop 24012 24012 +0.0% 1.00x
accessGlobal 179 180 +0.6% 0.99x
accessInMatSet 324 324 +0.0% 1.00x
accessIndependent 124 125 +0.8% 0.99x
Hardware Overview
  Model Name: Mac mini
  Model Identifier: Macmini7,1
  Processor Name: Intel Core i5
  Processor Speed: 2.8 GHz
  Number of Processors: 1
  Total Number of Cores: 2
  L2 Cache (per Core): 256 KB
  L3 Cache: 3 MB
  Memory: 8 GB

@slavapestov
Copy link
Contributor

Interesting. We might be able to remove the type altogether, and just keep the TypeInfo in IRGen, used for lowering AnyObject and @objc class references.

@jrose-apple
Copy link
Contributor Author

That's my SR-5926 hope!

@jrose-apple
Copy link
Contributor Author

Still hoping for someone from @eeckstein's team to tell me whether this is okay, just in case.

@eeckstein
Copy link
Contributor

Since there are no regressions on the benchmarks, I think it's ok.

@atrick
Copy link
Contributor

atrick commented Sep 25, 2017

I experimented with it. The new ObjectIdentifier(l) approach generates better SIL. It probably doesn't matter at IR level.

@jrose-apple
Copy link
Contributor Author

Thanks, both!

@jrose-apple jrose-apple merged commit e0ddb21 into swiftlang:master Sep 25, 2017
@jrose-apple jrose-apple deleted the unknown-unknowns branch September 25, 2017 20:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants