-
Notifications
You must be signed in to change notification settings - Fork 10.5k
[stdlib] [WIP] Eliminate version of Array.append(contentsOf:) that takes a Collection #5521
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[stdlib] [WIP] Eliminate version of Array.append(contentsOf:) that takes a Collection #5521
Conversation
@swift-ci Please test |
@swift-ci Please benchmark |
Build failed |
@swift-ci Please test OS X platform |
Build comment file:Optimized (O)
|
TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
---|---|---|---|---|
ByteSwap | 0 | 1 | +100000.0% | 0.00x |
ArrayAppendLazyMap | 842 | 1078 | +28.0% | 0.78x |
Calculator | 31 | 34 | +9.7% | 0.91x |
ObjectiveCBridgeStubNSDateRefAccess | 310 | 339 | +9.3% | 0.91x |
CaptureProp | 4228 | 4564 | +8.0% | 0.93x |
MapReduce | 342 | 369 | +7.9% | 0.93x |
Phonebook | 7069 | 7564 | +7.0% | 0.93x |
StrToInt | 4905 | 5233 | +6.7% | 0.94x |
Improvement (3)
TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
---|---|---|---|---|
ArrayAppendSequence | 1062 | 920 | -13.4% | 1.15x |
StringHasPrefix | 743 | 639 | -14.0% | 1.16x |
StringWithCString | 198146 | 155335 | -21.6% | 1.28x(?) |
No Changes (132)
TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
---|---|---|---|---|
Walsh | 323 | 309 | -4.3% | 1.05x |
ObjectiveCBridgeStubFromNSDateRef | 3738 | 3625 | -3.0% | 1.03x |
ObjectiveCBridgeStubToNSDate | 13795 | 13356 | -3.2% | 1.03x(?) |
DictionaryBridge | 3833 | 3773 | -1.6% | 1.02x(?) |
PopFrontArray | 1133 | 1115 | -1.6% | 1.02x(?) |
AnyHashableWithAClass | 63993 | 62982 | -1.6% | 1.02x(?) |
TwoSum | 1606 | 1581 | -1.6% | 1.02x(?) |
ArrayAppendGenericStructs | 1232 | 1223 | -0.7% | 1.01x(?) |
StaticArray | 2761 | 2733 | -1.0% | 1.01x(?) |
StringHasSuffixUnicode | 63833 | 63388 | -0.7% | 1.01x(?) |
Dictionary2 | 2050 | 2032 | -0.9% | 1.01x(?) |
StrComplexWalk | 2901 | 2877 | -0.8% | 1.01x(?) |
ObjectiveCBridgeToNSSet | 15784 | 15566 | -1.4% | 1.01x(?) |
PopFrontArrayGeneric | 1133 | 1119 | -1.2% | 1.01x(?) |
ArrayAppendOptionals | 1241 | 1225 | -1.3% | 1.01x(?) |
Join | 466 | 460 | -1.3% | 1.01x |
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced | 137036 | 135804 | -0.9% | 1.01x(?) |
NSDictionaryCastToSwift | 7010 | 6915 | -1.4% | 1.01x(?) |
ArrayOfGenericRef | 3631 | 3590 | -1.1% | 1.01x(?) |
SetUnion_OfObjects | 6599 | 6547 | -0.8% | 1.01x(?) |
ObjectiveCBridgeStubNSDateMutationRef | 12365 | 12232 | -1.1% | 1.01x(?) |
ObjectiveCBridgeFromNSSetAnyObjectForced | 4624 | 4587 | -0.8% | 1.01x(?) |
ObjectiveCBridgeStubFromArrayOfNSString | 58815 | 58325 | -0.8% | 1.01x(?) |
ArraySubscript | 1444 | 1443 | -0.1% | 1.00x(?) |
ObjectiveCBridgeToNSString | 1070 | 1073 | +0.3% | 1.00x(?) |
DictionarySwapOfObjects | 6739 | 6755 | +0.2% | 1.00x(?) |
StackPromo | 21630 | 21576 | -0.2% | 1.00x(?) |
ObjectiveCBridgeFromNSDictionaryAnyObject | 203480 | 203430 | -0.0% | 1.00x(?) |
RecursiveOwnedParameter | 1937 | 1941 | +0.2% | 1.00x(?) |
Integrate | 238 | 239 | +0.4% | 1.00x(?) |
ObjectiveCBridgeFromNSDictionaryAnyObjectToString | 211173 | 210659 | -0.2% | 1.00x(?) |
ObjectiveCBridgeFromNSArrayAnyObjectToString | 116940 | 116538 | -0.3% | 1.00x(?) |
ClassArrayGetter | 12 | 12 | +0.0% | 1.00x |
Array2D | 2041 | 2037 | -0.2% | 1.00x(?) |
Histogram | 656 | 656 | +0.0% | 1.00x |
ObjectiveCBridgeFromNSDictionaryAnyObjectForced | 5296 | 5284 | -0.2% | 1.00x(?) |
MonteCarloPi | 45135 | 44985 | -0.3% | 1.00x(?) |
Prims | 734 | 736 | +0.3% | 1.00x(?) |
SortLettersInPlace | 972 | 973 | +0.1% | 1.00x(?) |
DictionarySwap | 628 | 628 | +0.0% | 1.00x |
ArrayOfGenericPOD | 220 | 220 | +0.0% | 1.00x |
RangeAssignment | 287 | 288 | +0.3% | 1.00x(?) |
SuperChars | 210651 | 210978 | +0.2% | 1.00x(?) |
XorLoop | 380 | 380 | +0.0% | 1.00x |
StringInterpolation | 10884 | 10860 | -0.2% | 1.00x(?) |
ObjectiveCBridgeStubToNSString | 1276 | 1280 | +0.3% | 1.00x(?) |
ArrayAppendStrings | 12131 | 12103 | -0.2% | 1.00x(?) |
DeadArray | 185 | 185 | +0.0% | 1.00x |
ProtocolDispatch | 3039 | 3039 | +0.0% | 1.00x |
ObjectAllocation | 153 | 153 | +0.0% | 1.00x |
TypeFlood | 0 | 0 | +0.0% | 1.00x |
ObjectiveCBridgeFromNSSetAnyObject | 96202 | 96203 | +0.0% | 1.00x(?) |
AngryPhonebook | 2807 | 2814 | +0.2% | 1.00x(?) |
Dictionary3 | 510 | 510 | +0.0% | 1.00x |
SetIntersect_OfObjects | 2290 | 2293 | +0.1% | 1.00x(?) |
ErrorHandling | 2938 | 2927 | -0.4% | 1.00x(?) |
ArrayOfRef | 3551 | 3536 | -0.4% | 1.00x(?) |
ObjectiveCBridgeStubDateMutation | 273 | 273 | +0.0% | 1.00x |
NSError | 324 | 324 | +0.0% | 1.00x |
DictionaryOfObjects | 2285 | 2286 | +0.0% | 1.00x(?) |
ObjectiveCBridgeStubToNSDateRef | 3444 | 3461 | +0.5% | 1.00x(?) |
StringEqualPointerComparison | 7299 | 7302 | +0.0% | 1.00x(?) |
PolymorphicCalls | 22 | 22 | +0.0% | 1.00x |
ArrayAppendReserved | 536 | 536 | +0.0% | 1.00x |
ObjectiveCBridgeStubToNSStringRef | 116 | 116 | +0.0% | 1.00x |
DictionaryLiteral | 2732 | 2737 | +0.2% | 1.00x(?) |
DictionaryRemoveOfObjects | 19620 | 19634 | +0.1% | 1.00x(?) |
UTF8Decode | 288 | 288 | +0.0% | 1.00x |
SortStringsUnicode | 8108 | 8145 | +0.5% | 1.00x(?) |
SetIsSubsetOf | 508 | 508 | +0.0% | 1.00x |
Dictionary | 743 | 744 | +0.1% | 1.00x(?) |
NopDeinit | 36647 | 36654 | +0.0% | 1.00x(?) |
ObjectiveCBridgeStubToArrayOfNSString | 29433 | 29515 | +0.3% | 1.00x(?) |
ObjectiveCBridgeFromNSArrayAnyObject | 75970 | 75731 | -0.3% | 1.00x(?) |
SetIntersect | 1071 | 1073 | +0.2% | 1.00x(?) |
StringBuilder | 1319 | 1317 | -0.1% | 1.00x(?) |
ArrayInClass | 63 | 63 | +0.0% | 1.00x |
ObjectiveCBridgeStubDateAccess | 182 | 182 | +0.0% | 1.00x |
Sim2DArray | 277 | 277 | +0.0% | 1.00x |
SetExclusiveOr_OfObjects | 7852 | 7842 | -0.1% | 1.00x(?) |
ArrayAppendRepeatCol | 643 | 643 | +0.0% | 1.00x |
ObjectiveCBridgeToNSDictionary | 16006 | 15999 | -0.0% | 1.00x(?) |
MonteCarloE | 10574 | 10570 | -0.0% | 1.00x(?) |
RC4 | 165 | 165 | +0.0% | 1.00x |
HashTest | 1742 | 1743 | +0.1% | 1.00x(?) |
SetIsSubsetOf_OfObjects | 522 | 522 | +0.0% | 1.00x |
ArrayAppend | 776 | 776 | +0.0% | 1.00x |
DictionaryRemove | 4602 | 4587 | -0.3% | 1.00x(?) |
LinkedList | 7246 | 7253 | +0.1% | 1.00x(?) |
ObjectiveCBridgeFromNSSetAnyObjectToStringForced | 107498 | 107414 | -0.1% | 1.00x(?) |
RGBHistogramOfObjects | 22022 | 22044 | +0.1% | 1.00x(?) |
NSStringConversion | 826 | 822 | -0.5% | 1.00x(?) |
RGBHistogram | 2814 | 2817 | +0.1% | 1.00x(?) |
ArrayAppendArrayOfInt | 599 | 599 | +0.0% | 1.00x |
ArrayOfPOD | 182 | 182 | +0.0% | 1.00x |
SetUnion | 3050 | 3052 | +0.1% | 1.00x(?) |
Chars | 624 | 623 | -0.2% | 1.00x(?) |
ArrayValueProp2 | 6 | 6 | +0.0% | 1.00x |
BitCount | 1 | 1 | +0.0% | 1.00x |
ArrayLiteral | 1178 | 1173 | -0.4% | 1.00x(?) |
SevenBoom | 1349 | 1355 | +0.4% | 1.00x(?) |
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced | 90073 | 90074 | +0.0% | 1.00x(?) |
StringWalk | 5872 | 5883 | +0.2% | 1.00x(?) |
ArrayValueProp | 6 | 6 | +0.0% | 1.00x |
GlobalClass | 0 | 0 | +0.0% | 1.00x |
Memset | 235 | 236 | +0.4% | 1.00x(?) |
Dictionary2OfObjects | 3395 | 3392 | -0.1% | 1.00x(?) |
ArrayValueProp4 | 6 | 6 | +0.0% | 1.00x |
ArrayValueProp3 | 6 | 6 | +0.0% | 1.00x |
ObjectiveCBridgeFromNSArrayAnyObjectForced | 6086 | 6127 | +0.7% | 0.99x(?) |
ObjectiveCBridgeFromNSStringForced | 2677 | 2697 | +0.8% | 0.99x(?) |
Dictionary3OfObjects | 857 | 862 | +0.6% | 0.99x(?) |
ObjectiveCBridgeStubFromNSStringRef | 128 | 129 | +0.8% | 0.99x(?) |
ObjectiveCBridgeStubFromNSString | 768 | 772 | +0.5% | 0.99x(?) |
ProtocolDispatch2 | 158 | 160 | +1.3% | 0.99x |
ObjectiveCBridgeToNSArray | 30135 | 30372 | +0.8% | 0.99x(?) |
ObjectiveCBridgeStubURLAppendPath | 229414 | 232161 | +1.2% | 0.99x(?) |
SetExclusiveOr | 2621 | 2657 | +1.4% | 0.99x(?) |
StringHasSuffix | 800 | 806 | +0.8% | 0.99x |
142 | 3004696 | 3039209 | +1.1% | 0.99x |
ObjectiveCBridgeFromNSString | 1816 | 1836 | +1.1% | 0.99x(?) |
ObjectiveCBridgeStubURLAppendPathRef | 229598 | 234159 | +2.0% | 0.98x(?) |
IterateData | 2539 | 2597 | +2.3% | 0.98x |
ObjectiveCBridgeStubDataAppend | 2962 | 3012 | +1.7% | 0.98x(?) |
ObjectiveCBridgeFromNSSetAnyObjectToString | 142393 | 145247 | +2.0% | 0.98x(?) |
ObjectiveCBridgeStubNSDataAppend | 2386 | 2440 | +2.3% | 0.98x(?) |
SortStrings | 1721 | 1773 | +3.0% | 0.97x |
PopFrontUnsafePointer | 9172 | 9455 | +3.1% | 0.97x(?) |
ObjectiveCBridgeStubFromNSDate | 3455 | 3564 | +3.1% | 0.97x |
Hanoi | 3199 | 3334 | +4.2% | 0.96x |
StringHasPrefixUnicode | 13443 | 14045 | +4.5% | 0.96x |
OpenClose | 54 | 57 | +5.6% | 0.95x |
Regression (5)
TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
---|---|---|---|---|
ArrayAppendRepeatCol | 215540 | 505378 | +134.5% | 0.43x |
ArrayAppendLazyMap | 244615 | 531105 | +117.1% | 0.46x |
TypeFlood | 174 | 190 | +9.2% | 0.92x(?) |
142 | 6017247 | 6537813 | +8.7% | 0.92x |
ArrayAppendArrayOfInt | 642 | 680 | +5.9% | 0.94x |
Improvement (1)
TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
---|---|---|---|---|
StrComplexWalk | 7878 | 7400 | -6.1% | 1.06x |
No Changes (137)
TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
---|---|---|---|---|
ObjectiveCBridgeStubFromNSStringRef | 163 | 158 | -3.1% | 1.03x |
NSError | 685 | 667 | -2.6% | 1.03x(?) |
StringEqualPointerComparison | 9886 | 9644 | -2.5% | 1.03x |
SortStrings | 2770 | 2715 | -2.0% | 1.02x |
Dictionary2 | 4427 | 4356 | -1.6% | 1.02x(?) |
ObjectiveCBridgeStubNSDateRefAccess | 1257 | 1228 | -2.3% | 1.02x |
ObjectiveCBridgeStubDateMutation | 434 | 426 | -1.8% | 1.02x |
NSStringConversion | 3016 | 2966 | -1.7% | 1.02x(?) |
ObjectiveCBridgeFromNSArrayAnyObjectToString | 121036 | 120154 | -0.7% | 1.01x(?) |
ErrorHandling | 3828 | 3790 | -1.0% | 1.01x(?) |
ObjectAllocation | 561 | 556 | -0.9% | 1.01x(?) |
ObjectiveCBridgeToNSSet | 15873 | 15656 | -1.4% | 1.01x(?) |
ObjectiveCBridgeToNSArray | 30481 | 30183 | -1.0% | 1.01x(?) |
PopFrontArrayGeneric | 9712 | 9641 | -0.7% | 1.01x(?) |
PolymorphicCalls | 1143 | 1127 | -1.4% | 1.01x |
Calculator | 968 | 958 | -1.0% | 1.01x |
SetExclusiveOr | 30710 | 30549 | -0.5% | 1.01x |
NSDictionaryCastToSwift | 8330 | 8228 | -1.2% | 1.01x(?) |
ArrayOfGenericRef | 10077 | 10021 | -0.6% | 1.01x(?) |
Phonebook | 63460 | 62750 | -1.1% | 1.01x(?) |
ObjectiveCBridgeFromNSSetAnyObjectForced | 7477 | 7406 | -0.9% | 1.01x(?) |
ObjectiveCBridgeStubNSDataAppend | 2787 | 2769 | -0.7% | 1.01x(?) |
ArraySubscript | 5637 | 5640 | +0.1% | 1.00x(?) |
ObjectiveCBridgeToNSString | 1101 | 1100 | -0.1% | 1.00x(?) |
DictionarySwapOfObjects | 21165 | 21123 | -0.2% | 1.00x(?) |
StackPromo | 127607 | 128053 | +0.3% | 1.00x(?) |
ObjectiveCBridgeFromNSDictionaryAnyObject | 209814 | 210100 | +0.1% | 1.00x(?) |
RecursiveOwnedParameter | 10815 | 10806 | -0.1% | 1.00x(?) |
Integrate | 368 | 368 | +0.0% | 1.00x |
ClassArrayGetter | 1267 | 1265 | -0.2% | 1.00x(?) |
Array2D | 813677 | 812122 | -0.2% | 1.00x(?) |
Histogram | 11749 | 11788 | +0.3% | 1.00x(?) |
DictionaryBridge | 3876 | 3891 | +0.4% | 1.00x(?) |
ObjectiveCBridgeFromNSDictionaryAnyObjectForced | 7724 | 7703 | -0.3% | 1.00x(?) |
StringWithCString | 155067 | 154785 | -0.2% | 1.00x |
Prims | 13565 | 13604 | +0.3% | 1.00x(?) |
ObjectiveCBridgeFromNSString | 5144 | 5127 | -0.3% | 1.00x(?) |
PopFrontArray | 24622 | 24706 | +0.3% | 1.00x(?) |
Dictionary3OfObjects | 2268 | 2266 | -0.1% | 1.00x(?) |
RangeAssignment | 13271 | 13284 | +0.1% | 1.00x(?) |
ByteSwap | 9 | 9 | +0.0% | 1.00x |
ObjectiveCBridgeStubToNSDate | 14348 | 14313 | -0.2% | 1.00x(?) |
XorLoop | 19993 | 20002 | +0.1% | 1.00x(?) |
StringInterpolation | 15743 | 15796 | +0.3% | 1.00x(?) |
ObjectiveCBridgeStubToNSString | 1339 | 1338 | -0.1% | 1.00x(?) |
ArrayAppendStrings | 11803 | 11831 | +0.2% | 1.00x(?) |
StaticArray | 34896 | 34924 | +0.1% | 1.00x(?) |
ProtocolDispatch | 5472 | 5474 | +0.0% | 1.00x(?) |
ObjectiveCBridgeFromNSSetAnyObject | 101556 | 101703 | +0.1% | 1.00x(?) |
ArrayLiteral | 1242 | 1243 | +0.1% | 1.00x(?) |
ProtocolDispatch2 | 444 | 444 | +0.0% | 1.00x |
Walsh | 13158 | 13209 | +0.4% | 1.00x(?) |
Dictionary3 | 1607 | 1606 | -0.1% | 1.00x(?) |
SetIntersect_OfObjects | 13916 | 13879 | -0.3% | 1.00x(?) |
ArrayOfRef | 9408 | 9362 | -0.5% | 1.00x |
DictionaryOfObjects | 4882 | 4884 | +0.0% | 1.00x(?) |
PopFrontUnsafePointer | 242903 | 242606 | -0.1% | 1.00x(?) |
RC4 | 9361 | 9361 | +0.0% | 1.00x |
ObjectiveCBridgeStubToNSStringRef | 156 | 156 | +0.0% | 1.00x |
MapReduce | 45267 | 45392 | +0.3% | 1.00x(?) |
AngryPhonebook | 2985 | 2977 | -0.3% | 1.00x(?) |
IterateData | 10574 | 10542 | -0.3% | 1.00x(?) |
DictionaryLiteral | 16774 | 16692 | -0.5% | 1.00x(?) |
Hanoi | 20389 | 20433 | +0.2% | 1.00x |
DictionaryRemoveOfObjects | 46896 | 47026 | +0.3% | 1.00x(?) |
UTF8Decode | 43489 | 43570 | +0.2% | 1.00x(?) |
SortStringsUnicode | 9268 | 9253 | -0.2% | 1.00x(?) |
SetIsSubsetOf | 2437 | 2445 | +0.3% | 1.00x(?) |
Dictionary | 2144 | 2145 | +0.1% | 1.00x(?) |
ObjectiveCBridgeFromNSArrayAnyObject | 78855 | 78556 | -0.4% | 1.00x(?) |
SetIntersect | 15152 | 15152 | +0.0% | 1.00x |
StrToInt | 5742 | 5768 | +0.5% | 1.00x |
ArrayInClass | 3957 | 3959 | +0.1% | 1.00x(?) |
Sim2DArray | 14576 | 14578 | +0.0% | 1.00x(?) |
SetExclusiveOr_OfObjects | 46853 | 46757 | -0.2% | 1.00x(?) |
MonteCarloPi | 53721 | 53705 | -0.0% | 1.00x(?) |
MonteCarloE | 108857 | 109018 | +0.1% | 1.00x(?) |
SetUnion_OfObjects | 34397 | 34359 | -0.1% | 1.00x(?) |
StringHasSuffixUnicode | 65401 | 65500 | +0.1% | 1.00x(?) |
HashTest | 5397 | 5383 | -0.3% | 1.00x(?) |
SetIsSubsetOf_OfObjects | 2213 | 2211 | -0.1% | 1.00x(?) |
ArrayAppend | 3443 | 3440 | -0.1% | 1.00x(?) |
DictionaryRemove | 17481 | 17432 | -0.3% | 1.00x(?) |
LinkedList | 27937 | 27875 | -0.2% | 1.00x(?) |
RGBHistogramOfObjects | 93195 | 93652 | +0.5% | 1.00x(?) |
RGBHistogram | 44237 | 44064 | -0.4% | 1.00x(?) |
ArrayValueProp4 | 3001 | 2996 | -0.2% | 1.00x(?) |
SetUnion | 18438 | 18415 | -0.1% | 1.00x(?) |
Chars | 5011 | 5020 | +0.2% | 1.00x(?) |
DeadArray | 120862 | 120867 | +0.0% | 1.00x(?) |
BitCount | 96 | 96 | +0.0% | 1.00x |
SevenBoom | 1506 | 1502 | -0.3% | 1.00x |
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced | 91637 | 91939 | +0.3% | 1.00x(?) |
ArrayValueProp | 2623 | 2615 | -0.3% | 1.00x(?) |
ObjectiveCBridgeStubFromArrayOfNSString | 58981 | 58952 | -0.1% | 1.00x(?) |
GlobalClass | 0 | 0 | +0.0% | 1.00x |
Memset | 20652 | 20646 | -0.0% | 1.00x(?) |
Dictionary2OfObjects | 6239 | 6236 | -0.1% | 1.00x(?) |
TwoSum | 6553 | 6546 | -0.1% | 1.00x(?) |
ArrayValueProp2 | 3142 | 3146 | +0.1% | 1.00x(?) |
ArrayValueProp3 | 3061 | 3062 | +0.0% | 1.00x(?) |
ObjectiveCBridgeStubFromNSDate | 3808 | 3813 | +0.1% | 1.00x(?) |
ObjectiveCBridgeFromNSDictionaryAnyObjectToString | 218931 | 220232 | +0.6% | 0.99x(?) |
ObjectiveCBridgeFromNSArrayAnyObjectForced | 10239 | 10298 | +0.6% | 0.99x(?) |
SortLettersInPlace | 2567 | 2580 | +0.5% | 0.99x(?) |
SuperChars | 261728 | 263773 | +0.8% | 0.99x(?) |
StringHasPrefix | 1684 | 1705 | +1.2% | 0.99x |
Join | 1457 | 1469 | +0.8% | 0.99x(?) |
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced | 141651 | 143777 | +1.5% | 0.99x(?) |
ObjectiveCBridgeStubDataAppend | 3355 | 3388 | +1.0% | 0.99x(?) |
ObjectiveCBridgeToNSDictionary | 16400 | 16585 | +1.1% | 0.99x(?) |
ObjectiveCBridgeFromNSSetAnyObjectToStringForced | 118485 | 119741 | +1.1% | 0.99x(?) |
StringBuilder | 2712 | 2732 | +0.7% | 0.99x(?) |
AnyHashableWithAClass | 78245 | 79308 | +1.4% | 0.99x |
ObjectiveCBridgeStubNSDateMutationRef | 14555 | 14762 | +1.4% | 0.99x(?) |
ObjectiveCBridgeFromNSStringForced | 3069 | 3125 | +1.8% | 0.98x(?) |
DictionarySwap | 7519 | 7642 | +1.6% | 0.98x |
ArrayAppendGenericStructs | 1314 | 1342 | +2.1% | 0.98x |
ObjectiveCBridgeStubToNSDateRef | 3310 | 3362 | +1.6% | 0.98x(?) |
CaptureProp | 116370 | 118746 | +2.0% | 0.98x |
ObjectiveCBridgeStubURLAppendPath | 233589 | 238791 | +2.2% | 0.98x(?) |
ObjectiveCBridgeStubToArrayOfNSString | 29592 | 30044 | +1.5% | 0.98x(?) |
ObjectiveCBridgeFromNSSetAnyObjectToString | 157070 | 159650 | +1.6% | 0.98x(?) |
StringHasSuffix | 1765 | 1801 | +2.0% | 0.98x |
StringHasPrefixUnicode | 14943 | 15288 | +2.3% | 0.98x |
ObjectiveCBridgeStubFromNSDateRef | 4080 | 4222 | +3.5% | 0.97x |
ArrayOfGenericPOD | 3428 | 3517 | +2.6% | 0.97x |
ObjectiveCBridgeStubFromNSString | 815 | 844 | +3.6% | 0.97x |
ArrayAppendOptionals | 1292 | 1330 | +2.9% | 0.97x(?) |
NopDeinit | 58079 | 59812 | +3.0% | 0.97x |
ObjectiveCBridgeStubDateAccess | 1094 | 1125 | +2.8% | 0.97x |
ArrayAppendSequence | 106298 | 109072 | +2.6% | 0.97x |
StringWalk | 22105 | 22691 | +2.6% | 0.97x |
ObjectiveCBridgeStubURLAppendPathRef | 231003 | 239857 | +3.8% | 0.96x(?) |
OpenClose | 430 | 450 | +4.7% | 0.96x |
ArrayAppendReserved | 3193 | 3326 | +4.2% | 0.96x |
ArrayOfPOD | 2329 | 2451 | +5.2% | 0.95x |
Build failed |
@swift-ci Please benchmark |
1 similar comment
@swift-ci Please benchmark |
Build comment file:Optimized (O)
|
TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
---|---|---|---|---|
ArrayAppendLazyMap | 793 | 1015 | +28.0% | 0.78x |
ClassArrayGetter | 11 | 12 | +9.1% | 0.92x(?) |
CaptureProp | 3962 | 4305 | +8.7% | 0.92x |
MapReduce | 323 | 350 | +8.4% | 0.92x(?) |
ObjectiveCBridgeStubNSDateRefAccess | 295 | 322 | +9.2% | 0.92x |
Phonebook | 6667 | 7135 | +7.0% | 0.93x |
Calculator | 30 | 32 | +6.7% | 0.94x |
OpenClose | 51 | 54 | +5.9% | 0.94x |
StrToInt | 4636 | 4935 | +6.5% | 0.94x |
Improvement (2)
TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
---|---|---|---|---|
ArrayAppendSequence | 1001 | 868 | -13.3% | 1.15x |
StringHasPrefix | 697 | 603 | -13.5% | 1.16x |
No Changes (132)
TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
---|---|---|---|---|
Walsh | 305 | 292 | -4.3% | 1.04x |
ObjectiveCBridgeStubFromNSDateRef | 3520 | 3419 | -2.9% | 1.03x |
ObjectiveCBridgeStubToNSDate | 12434 | 12040 | -3.2% | 1.03x(?) |
AnyHashableWithAClass | 60432 | 59414 | -1.7% | 1.02x(?) |
ObjectiveCBridgeFromNSDictionaryAnyObjectToString | 197224 | 196009 | -0.6% | 1.01x(?) |
SortLettersInPlace | 919 | 914 | -0.5% | 1.01x(?) |
ObjectiveCBridgeFromNSDictionaryAnyObject | 192443 | 191044 | -0.7% | 1.01x(?) |
Join | 433 | 430 | -0.7% | 1.01x(?) |
StringHasSuffixUnicode | 60202 | 59766 | -0.7% | 1.01x(?) |
Dictionary2 | 1934 | 1918 | -0.8% | 1.01x(?) |
ObjectiveCBridgeStubToNSDateRef | 3099 | 3079 | -0.7% | 1.01x(?) |
PopFrontArrayGeneric | 1069 | 1056 | -1.2% | 1.01x(?) |
DictionaryLiteral | 2594 | 2579 | -0.6% | 1.01x(?) |
ObjectiveCBridgeFromNSArrayAnyObject | 71867 | 71141 | -1.0% | 1.01x(?) |
NSDictionaryCastToSwift | 6626 | 6565 | -0.9% | 1.01x(?) |
142 | 2828793 | 2799926 | -1.0% | 1.01x |
ArrayOfGenericRef | 3419 | 3392 | -0.8% | 1.01x(?) |
SetUnion_OfObjects | 6220 | 6180 | -0.6% | 1.01x(?) |
ObjectiveCBridgeFromNSSetAnyObjectForced | 4370 | 4335 | -0.8% | 1.01x(?) |
SetUnion | 2889 | 2863 | -0.9% | 1.01x(?) |
Chars | 600 | 592 | -1.3% | 1.01x(?) |
ArrayAppendArrayOfInt | 565 | 562 | -0.5% | 1.01x(?) |
Dictionary2OfObjects | 3219 | 3202 | -0.5% | 1.01x(?) |
TwoSum | 1498 | 1489 | -0.6% | 1.01x(?) |
ArraySubscript | 1348 | 1348 | +0.0% | 1.00x |
ObjectiveCBridgeToNSString | 1011 | 1014 | +0.3% | 1.00x(?) |
DictionarySwapOfObjects | 6359 | 6364 | +0.1% | 1.00x(?) |
StackPromo | 20414 | 20394 | -0.1% | 1.00x(?) |
PopFrontArray | 1070 | 1067 | -0.3% | 1.00x(?) |
RecursiveOwnedParameter | 1828 | 1830 | +0.1% | 1.00x(?) |
Integrate | 228 | 228 | +0.0% | 1.00x |
ObjectiveCBridgeFromNSArrayAnyObjectToString | 111171 | 110633 | -0.5% | 1.00x(?) |
Array2D | 1934 | 1942 | +0.4% | 1.00x(?) |
Histogram | 619 | 619 | +0.0% | 1.00x |
DictionaryBridge | 3580 | 3581 | +0.0% | 1.00x(?) |
MonteCarloPi | 42597 | 42467 | -0.3% | 1.00x |
StringWithCString | 146358 | 146149 | -0.1% | 1.00x(?) |
ObjectiveCBridgeFromNSArrayAnyObjectForced | 5875 | 5891 | +0.3% | 1.00x(?) |
Prims | 695 | 696 | +0.1% | 1.00x(?) |
DictionarySwap | 593 | 593 | +0.0% | 1.00x |
Dictionary3OfObjects | 811 | 811 | +0.0% | 1.00x |
RangeAssignment | 271 | 271 | +0.0% | 1.00x |
ByteSwap | 0 | 0 | +0.0% | 1.00x |
ArrayAppendGenericStructs | 1142 | 1142 | +0.0% | 1.00x |
SuperChars | 198721 | 198971 | +0.1% | 1.00x(?) |
XorLoop | 358 | 358 | +0.0% | 1.00x |
StringInterpolation | 10216 | 10241 | +0.2% | 1.00x(?) |
ObjectiveCBridgeStubToNSString | 1209 | 1211 | +0.2% | 1.00x(?) |
ArrayAppendStrings | 11420 | 11386 | -0.3% | 1.00x(?) |
ObjectiveCBridgeStubFromNSStringRef | 121 | 121 | +0.0% | 1.00x |
StaticArray | 2602 | 2600 | -0.1% | 1.00x(?) |
ProtocolDispatch | 2867 | 2868 | +0.0% | 1.00x(?) |
ObjectAllocation | 144 | 144 | +0.0% | 1.00x |
TypeFlood | 0 | 0 | +0.0% | 1.00x |
ObjectiveCBridgeFromNSSetAnyObject | 90684 | 90694 | +0.0% | 1.00x(?) |
AngryPhonebook | 2651 | 2656 | +0.2% | 1.00x(?) |
Dictionary3 | 480 | 481 | +0.2% | 1.00x(?) |
StrComplexWalk | 2738 | 2728 | -0.4% | 1.00x(?) |
SetIntersect_OfObjects | 2151 | 2145 | -0.3% | 1.00x(?) |
ErrorHandling | 2767 | 2777 | +0.4% | 1.00x(?) |
ArrayOfRef | 3342 | 3335 | -0.2% | 1.00x(?) |
ArrayAppendOptionals | 1141 | 1141 | +0.0% | 1.00x |
ObjectiveCBridgeToNSArray | 28553 | 28476 | -0.3% | 1.00x(?) |
NSError | 306 | 306 | +0.0% | 1.00x |
DictionaryOfObjects | 2155 | 2159 | +0.2% | 1.00x(?) |
StringEqualPointerComparison | 6883 | 6893 | +0.1% | 1.00x(?) |
PolymorphicCalls | 20 | 20 | +0.0% | 1.00x |
ObjectiveCBridgeStubDateMutation | 258 | 258 | +0.0% | 1.00x |
ArrayOfGenericPOD | 207 | 207 | +0.0% | 1.00x |
DictionaryRemoveOfObjects | 18504 | 18524 | +0.1% | 1.00x(?) |
UTF8Decode | 272 | 272 | +0.0% | 1.00x |
ObjectiveCBridgeStubURLAppendPath | 219035 | 219288 | +0.1% | 1.00x(?) |
SortStringsUnicode | 7649 | 7685 | +0.5% | 1.00x(?) |
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced | 128346 | 128734 | +0.3% | 1.00x(?) |
SetIsSubsetOf | 480 | 480 | +0.0% | 1.00x |
Dictionary | 700 | 700 | +0.0% | 1.00x |
NopDeinit | 34574 | 34571 | -0.0% | 1.00x(?) |
ObjectiveCBridgeStubToArrayOfNSString | 27857 | 27738 | -0.4% | 1.00x(?) |
SetIntersect | 1012 | 1012 | +0.0% | 1.00x |
StringBuilder | 1245 | 1244 | -0.1% | 1.00x(?) |
ArrayInClass | 59 | 59 | +0.0% | 1.00x |
ObjectiveCBridgeStubDateAccess | 172 | 172 | +0.0% | 1.00x |
Sim2DArray | 261 | 261 | +0.0% | 1.00x |
SetExclusiveOr_OfObjects | 7400 | 7393 | -0.1% | 1.00x(?) |
ArrayAppendRepeatCol | 606 | 606 | +0.0% | 1.00x |
MonteCarloE | 9962 | 9954 | -0.1% | 1.00x(?) |
RC4 | 156 | 156 | +0.0% | 1.00x |
HashTest | 1643 | 1646 | +0.2% | 1.00x(?) |
SetIsSubsetOf_OfObjects | 494 | 494 | +0.0% | 1.00x |
ArrayAppend | 731 | 731 | +0.0% | 1.00x |
DictionaryRemove | 4348 | 4331 | -0.4% | 1.00x(?) |
LinkedList | 6842 | 6830 | -0.2% | 1.00x(?) |
RGBHistogramOfObjects | 20751 | 20759 | +0.0% | 1.00x(?) |
NSStringConversion | 776 | 777 | +0.1% | 1.00x(?) |
RGBHistogram | 2643 | 2655 | +0.5% | 1.00x(?) |
ArrayAppendReserved | 505 | 505 | +0.0% | 1.00x |
ArrayOfPOD | 171 | 171 | +0.0% | 1.00x |
DeadArray | 174 | 174 | +0.0% | 1.00x |
ArrayValueProp2 | 5 | 5 | +0.0% | 1.00x |
BitCount | 1 | 1 | +0.0% | 1.00x |
ArrayLiteral | 1111 | 1113 | +0.2% | 1.00x(?) |
SevenBoom | 1277 | 1273 | -0.3% | 1.00x(?) |
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced | 84930 | 85242 | +0.4% | 1.00x(?) |
StringWalk | 5564 | 5550 | -0.2% | 1.00x(?) |
ArrayValueProp | 5 | 5 | +0.0% | 1.00x |
ObjectiveCBridgeStubFromArrayOfNSString | 55058 | 54937 | -0.2% | 1.00x(?) |
GlobalClass | 0 | 0 | +0.0% | 1.00x |
Memset | 222 | 222 | +0.0% | 1.00x |
ArrayValueProp4 | 5 | 5 | +0.0% | 1.00x |
ArrayValueProp3 | 5 | 5 | +0.0% | 1.00x |
ObjectiveCBridgeFromNSDictionaryAnyObjectForced | 4933 | 4979 | +0.9% | 0.99x(?) |
ObjectiveCBridgeFromNSStringForced | 2527 | 2543 | +0.6% | 0.99x(?) |
ObjectiveCBridgeStubFromNSString | 725 | 729 | +0.6% | 0.99x(?) |
ProtocolDispatch2 | 149 | 151 | +1.3% | 0.99x |
ObjectiveCBridgeStubURLAppendPathRef | 219138 | 220930 | +0.8% | 0.99x(?) |
ObjectiveCBridgeStubToNSStringRef | 109 | 110 | +0.9% | 0.99x(?) |
SetExclusiveOr | 2479 | 2503 | +1.0% | 0.99x(?) |
ObjectiveCBridgeFromNSSetAnyObjectToString | 134685 | 135377 | +0.5% | 0.99x(?) |
ObjectiveCBridgeFromNSString | 1715 | 1733 | +1.1% | 0.99x |
ObjectiveCBridgeStubNSDateMutationRef | 11041 | 11146 | +0.9% | 0.99x(?) |
ObjectiveCBridgeFromNSSetAnyObjectToStringForced | 100597 | 101835 | +1.2% | 0.99x(?) |
StringHasSuffix | 755 | 763 | +1.1% | 0.99x |
ObjectiveCBridgeStubNSDataAppend | 2278 | 2296 | +0.8% | 0.99x(?) |
ObjectiveCBridgeToNSSet | 14482 | 14798 | +2.2% | 0.98x(?) |
IterateData | 2396 | 2451 | +2.3% | 0.98x |
ObjectiveCBridgeStubDataAppend | 2777 | 2840 | +2.3% | 0.98x(?) |
ObjectiveCBridgeToNSDictionary | 14875 | 15145 | +1.8% | 0.98x(?) |
SortStrings | 1624 | 1673 | +3.0% | 0.97x |
PopFrontUnsafePointer | 8652 | 8921 | +3.1% | 0.97x(?) |
Hanoi | 3014 | 3151 | +4.5% | 0.96x |
ObjectiveCBridgeStubFromNSDate | 3238 | 3362 | +3.8% | 0.96x |
StringHasPrefixUnicode | 12666 | 13269 | +4.8% | 0.95x |
Regression (3)
TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
---|---|---|---|---|
ArrayAppendRepeatCol | 203147 | 475722 | +134.2% | 0.43x |
ArrayAppendLazyMap | 230787 | 496798 | +115.3% | 0.46x |
142 | 5630272 | 6195043 | +10.0% | 0.91x |
Improvement (3)
TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
---|---|---|---|---|
StrComplexWalk | 7405 | 6981 | -5.7% | 1.06x |
TypeFlood | 186 | 176 | -5.4% | 1.06x(?) |
StringWalk | 21394 | 19908 | -7.0% | 1.07x |
No Changes (137)
TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
---|---|---|---|---|
ObjectiveCBridgeFromNSArrayAnyObjectToString | 118996 | 113858 | -4.3% | 1.05x(?) |
StringEqualPointerComparison | 9325 | 9097 | -2.5% | 1.03x |
ObjectiveCBridgeFromNSSetAnyObjectForced | 7201 | 7009 | -2.7% | 1.03x(?) |
ObjectiveCBridgeFromNSDictionaryAnyObjectToString | 209415 | 206218 | -1.5% | 1.02x(?) |
SortStrings | 2615 | 2564 | -1.9% | 1.02x |
DictionaryBridge | 3717 | 3632 | -2.3% | 1.02x(?) |
ObjectiveCBridgeFromNSDictionaryAnyObject | 199147 | 194556 | -2.3% | 1.02x(?) |
ObjectiveCBridgeStubNSDateRefAccess | 1185 | 1159 | -2.2% | 1.02x |
ObjectiveCBridgeStubDateMutation | 409 | 402 | -1.7% | 1.02x |
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced | 87639 | 86257 | -1.6% | 1.02x(?) |
ObjectiveCBridgeStubFromArrayOfNSString | 56418 | 55573 | -1.5% | 1.02x(?) |
AnyHashableWithAClass | 73757 | 72808 | -1.3% | 1.01x(?) |
ObjectiveCBridgeFromNSDictionaryAnyObjectForced | 7390 | 7295 | -1.3% | 1.01x(?) |
Prims | 12803 | 12739 | -0.5% | 1.01x(?) |
ErrorHandling | 3586 | 3563 | -0.6% | 1.01x(?) |
ObjectiveCBridgeStubFromNSStringRef | 152 | 151 | -0.7% | 1.01x(?) |
Dictionary2 | 4152 | 4101 | -1.2% | 1.01x(?) |
NSError | 645 | 637 | -1.2% | 1.01x(?) |
ObjectiveCBridgeStubToNSDateRef | 3155 | 3138 | -0.5% | 1.01x(?) |
PopFrontArrayGeneric | 9209 | 9120 | -1.0% | 1.01x |
PolymorphicCalls | 1078 | 1063 | -1.4% | 1.01x |
Calculator | 913 | 904 | -1.0% | 1.01x |
ObjectiveCBridgeFromNSArrayAnyObject | 74394 | 73572 | -1.1% | 1.01x(?) |
ArrayOfGenericRef | 9492 | 9421 | -0.8% | 1.01x(?) |
ObjectiveCBridgeStubNSDateMutationRef | 13483 | 13397 | -0.6% | 1.01x(?) |
RGBHistogramOfObjects | 88604 | 88023 | -0.7% | 1.01x(?) |
NSStringConversion | 2844 | 2808 | -1.3% | 1.01x |
SevenBoom | 1425 | 1416 | -0.6% | 1.01x |
ArraySubscript | 5310 | 5293 | -0.3% | 1.00x(?) |
ObjectiveCBridgeToNSString | 1038 | 1038 | +0.0% | 1.00x |
DictionarySwapOfObjects | 20013 | 20036 | +0.1% | 1.00x(?) |
StackPromo | 120099 | 120022 | -0.1% | 1.00x(?) |
PopFrontArray | 23441 | 23326 | -0.5% | 1.00x(?) |
RecursiveOwnedParameter | 10276 | 10273 | -0.0% | 1.00x(?) |
Integrate | 347 | 347 | +0.0% | 1.00x |
ClassArrayGetter | 1194 | 1193 | -0.1% | 1.00x(?) |
Array2D | 766531 | 765316 | -0.2% | 1.00x(?) |
Histogram | 11035 | 11062 | +0.2% | 1.00x(?) |
StringWithCString | 146145 | 145845 | -0.2% | 1.00x(?) |
ObjectiveCBridgeFromNSArrayAnyObjectForced | 9830 | 9852 | +0.2% | 1.00x(?) |
SortLettersInPlace | 2421 | 2426 | +0.2% | 1.00x(?) |
Dictionary3OfObjects | 2143 | 2138 | -0.2% | 1.00x(?) |
RangeAssignment | 12536 | 12506 | -0.2% | 1.00x(?) |
ByteSwap | 9 | 9 | +0.0% | 1.00x |
SuperChars | 220519 | 220591 | +0.0% | 1.00x(?) |
XorLoop | 18874 | 18871 | -0.0% | 1.00x(?) |
StringInterpolation | 14865 | 14843 | -0.1% | 1.00x(?) |
ObjectiveCBridgeStubToNSString | 1271 | 1269 | -0.2% | 1.00x(?) |
ArrayAppendStrings | 11123 | 11111 | -0.1% | 1.00x(?) |
ProtocolDispatch | 5163 | 5164 | +0.0% | 1.00x(?) |
ObjectAllocation | 528 | 526 | -0.4% | 1.00x(?) |
ObjectiveCBridgeFromNSSetAnyObject | 96793 | 96317 | -0.5% | 1.00x(?) |
AngryPhonebook | 2819 | 2808 | -0.4% | 1.00x |
ProtocolDispatch2 | 419 | 419 | +0.0% | 1.00x |
Walsh | 12492 | 12488 | -0.0% | 1.00x(?) |
Dictionary3 | 1521 | 1520 | -0.1% | 1.00x(?) |
SetIntersect_OfObjects | 13128 | 13095 | -0.2% | 1.00x(?) |
Join | 1383 | 1382 | -0.1% | 1.00x(?) |
ArrayOfRef | 8850 | 8818 | -0.4% | 1.00x |
ObjectiveCBridgeToNSSet | 14958 | 14990 | +0.2% | 1.00x(?) |
ObjectiveCBridgeToNSArray | 28713 | 28626 | -0.3% | 1.00x(?) |
DictionaryOfObjects | 4608 | 4610 | +0.0% | 1.00x(?) |
PopFrontUnsafePointer | 229270 | 228940 | -0.1% | 1.00x(?) |
RC4 | 8845 | 8837 | -0.1% | 1.00x(?) |
ObjectiveCBridgeStubToNSStringRef | 147 | 147 | +0.0% | 1.00x |
MapReduce | 43558 | 43503 | -0.1% | 1.00x(?) |
IterateData | 9984 | 9948 | -0.4% | 1.00x(?) |
DictionaryRemoveOfObjects | 44261 | 44416 | +0.3% | 1.00x(?) |
UTF8Decode | 41205 | 41108 | -0.2% | 1.00x(?) |
SortStringsUnicode | 8743 | 8730 | -0.1% | 1.00x(?) |
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced | 134440 | 134881 | +0.3% | 1.00x(?) |
SetIsSubsetOf | 2302 | 2309 | +0.3% | 1.00x(?) |
Dictionary | 2031 | 2030 | -0.1% | 1.00x(?) |
SetIntersect | 14319 | 14306 | -0.1% | 1.00x(?) |
SetExclusiveOr | 28903 | 28826 | -0.3% | 1.00x(?) |
NSDictionaryCastToSwift | 7819 | 7818 | -0.0% | 1.00x(?) |
ArrayInClass | 3735 | 3732 | -0.1% | 1.00x |
Sim2DArray | 13759 | 13753 | -0.0% | 1.00x(?) |
SetExclusiveOr_OfObjects | 44263 | 44177 | -0.2% | 1.00x(?) |
MonteCarloPi | 50684 | 50690 | +0.0% | 1.00x(?) |
MonteCarloE | 102571 | 102562 | -0.0% | 1.00x(?) |
SetUnion_OfObjects | 32396 | 32419 | +0.1% | 1.00x(?) |
StringHasSuffixUnicode | 61699 | 61827 | +0.2% | 1.00x(?) |
HashTest | 5087 | 5088 | +0.0% | 1.00x(?) |
SetIsSubsetOf_OfObjects | 2199 | 2204 | +0.2% | 1.00x(?) |
ArrayAppend | 3247 | 3244 | -0.1% | 1.00x |
DictionaryRemove | 16476 | 16486 | +0.1% | 1.00x(?) |
LinkedList | 26375 | 26392 | +0.1% | 1.00x(?) |
Chars | 4722 | 4735 | +0.3% | 1.00x |
StringBuilder | 2589 | 2578 | -0.4% | 1.00x(?) |
ArrayValueProp2 | 2969 | 2962 | -0.2% | 1.00x(?) |
BitCount | 91 | 91 | +0.0% | 1.00x |
ArrayLiteral | 1171 | 1173 | +0.2% | 1.00x(?) |
ArrayValueProp4 | 2829 | 2835 | +0.2% | 1.00x(?) |
ArrayValueProp | 2473 | 2474 | +0.0% | 1.00x(?) |
ObjectiveCBridgeFromNSString | 4854 | 4838 | -0.3% | 1.00x(?) |
GlobalClass | 0 | 0 | +0.0% | 1.00x |
Memset | 19491 | 19503 | +0.1% | 1.00x(?) |
Dictionary2OfObjects | 5894 | 5879 | -0.2% | 1.00x(?) |
TwoSum | 6373 | 6356 | -0.3% | 1.00x(?) |
ObjectiveCBridgeStubNSDataAppend | 2629 | 2616 | -0.5% | 1.00x(?) |
ArrayValueProp3 | 2889 | 2893 | +0.1% | 1.00x(?) |
ObjectiveCBridgeStubFromNSDate | 3590 | 3594 | +0.1% | 1.00x(?) |
OpenClose | 406 | 409 | +0.7% | 0.99x(?) |
ObjectiveCBridgeStubToNSDate | 13081 | 13212 | +1.0% | 0.99x(?) |
StaticArray | 33002 | 33173 | +0.5% | 0.99x(?) |
StringHasPrefix | 1584 | 1602 | +1.1% | 0.99x |
ObjectiveCBridgeStubURLAppendPathRef | 221970 | 223202 | +0.6% | 0.99x(?) |
DictionaryLiteral | 15579 | 15751 | +1.1% | 0.99x(?) |
Hanoi | 19214 | 19383 | +0.9% | 0.99x |
ObjectiveCBridgeStubURLAppendPath | 223905 | 226278 | +1.1% | 0.99x(?) |
ObjectiveCBridgeStubDataAppend | 3153 | 3174 | +0.7% | 0.99x(?) |
StrToInt | 5418 | 5450 | +0.6% | 0.99x |
Phonebook | 59618 | 60200 | +1.0% | 0.99x(?) |
ObjectiveCBridgeToNSDictionary | 15562 | 15699 | +0.9% | 0.99x(?) |
ObjectiveCBridgeFromNSSetAnyObjectToStringForced | 113410 | 114112 | +0.6% | 0.99x(?) |
RGBHistogram | 41787 | 42052 | +0.6% | 0.99x(?) |
SetUnion | 17444 | 17554 | +0.6% | 0.99x(?) |
DeadArray | 113542 | 114211 | +0.6% | 0.99x(?) |
ObjectiveCBridgeFromNSStringForced | 2897 | 2946 | +1.7% | 0.98x(?) |
DictionarySwap | 7108 | 7265 | +2.2% | 0.98x(?) |
CaptureProp | 109866 | 112344 | +2.3% | 0.98x(?) |
ObjectiveCBridgeStubToArrayOfNSString | 27751 | 28247 | +1.8% | 0.98x(?) |
ObjectiveCBridgeFromNSSetAnyObjectToString | 147483 | 150789 | +2.2% | 0.98x(?) |
StringHasSuffix | 1659 | 1700 | +2.5% | 0.98x |
StringHasPrefixUnicode | 14077 | 14393 | +2.2% | 0.98x |
ObjectiveCBridgeStubFromNSDateRef | 3876 | 3979 | +2.7% | 0.97x |
ArrayAppendGenericStructs | 1187 | 1223 | +3.0% | 0.97x |
ObjectiveCBridgeStubFromNSString | 769 | 795 | +3.4% | 0.97x |
ArrayAppendOptionals | 1186 | 1222 | +3.0% | 0.97x |
ArrayOfGenericPOD | 3231 | 3320 | +2.8% | 0.97x |
NopDeinit | 54824 | 56470 | +3.0% | 0.97x |
ObjectiveCBridgeStubDateAccess | 1033 | 1061 | +2.7% | 0.97x |
ArrayAppendSequence | 100074 | 102975 | +2.9% | 0.97x |
ArrayAppendReserved | 3012 | 3136 | +4.1% | 0.96x |
ArrayAppendArrayOfInt | 605 | 640 | +5.8% | 0.95x |
ArrayOfPOD | 2197 | 2313 | +5.3% | 0.95x |
Build comment file:Optimized (O)
|
TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
---|---|---|---|---|
ByteSwap | 0 | 1 | +100000.0% | 0.00x |
StringWithCString | 155552 | 198701 | +27.7% | 0.78x(?) |
ArrayAppendLazyMap | 842 | 1073 | +27.4% | 0.78x |
CaptureProp | 4187 | 4563 | +9.0% | 0.92x |
ObjectiveCBridgeStubNSDateRefAccess | 310 | 338 | +9.0% | 0.92x |
MapReduce | 342 | 369 | +7.9% | 0.93x |
Improvement (1)
TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
---|---|---|---|---|
ArrayAppendSequence | 1061 | 920 | -13.3% | 1.15x |
No Changes (136)
TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
---|---|---|---|---|
Walsh | 323 | 312 | -3.4% | 1.04x |
ObjectiveCBridgeStubToNSDate | 12985 | 12649 | -2.6% | 1.03x(?) |
Calculator | 31 | 30 | -3.2% | 1.03x |
ObjectiveCBridgeStubFromNSDateRef | 3731 | 3654 | -2.1% | 1.02x |
ObjectiveCBridgeStubToArrayOfNSString | 29586 | 29062 | -1.8% | 1.02x(?) |
ArrayInClass | 63 | 62 | -1.6% | 1.02x(?) |
SetIsSubsetOf_OfObjects | 524 | 514 | -1.9% | 1.02x |
ObjectiveCBridgeFromNSSetAnyObjectForced | 4663 | 4552 | -2.4% | 1.02x(?) |
Chars | 637 | 623 | -2.2% | 1.02x |
ObjectiveCBridgeFromNSArrayAnyObjectToString | 117260 | 116585 | -0.6% | 1.01x(?) |
Array2D | 2046 | 2025 | -1.0% | 1.01x(?) |
ObjectiveCBridgeFromNSDictionaryAnyObjectForced | 5298 | 5249 | -0.9% | 1.01x(?) |
ObjectiveCBridgeFromNSArrayAnyObjectForced | 6242 | 6205 | -0.6% | 1.01x(?) |
ObjectiveCBridgeFromNSStringForced | 2681 | 2656 | -0.9% | 1.01x |
ObjectiveCBridgeFromNSString | 1818 | 1804 | -0.8% | 1.01x(?) |
PopFrontArray | 1134 | 1120 | -1.2% | 1.01x(?) |
StringHasPrefix | 744 | 740 | -0.5% | 1.01x(?) |
ArrayAppendGenericStructs | 1238 | 1230 | -0.7% | 1.01x(?) |
AnyHashableWithAClass | 64061 | 63613 | -0.7% | 1.01x |
ErrorHandling | 2917 | 2888 | -1.0% | 1.01x(?) |
ObjectiveCBridgeStubURLAppendPathRef | 234042 | 231529 | -1.1% | 1.01x(?) |
ObjectiveCBridgeStubToNSDateRef | 3297 | 3252 | -1.4% | 1.01x(?) |
ArrayAppendOptionals | 1241 | 1234 | -0.6% | 1.01x(?) |
DictionaryLiteral | 2747 | 2728 | -0.7% | 1.01x(?) |
Hanoi | 3199 | 3180 | -0.6% | 1.01x |
142 | 3082014 | 3049617 | -1.1% | 1.01x |
ArrayOfGenericRef | 3631 | 3612 | -0.5% | 1.01x(?) |
SetExclusiveOr_OfObjects | 7844 | 7787 | -0.7% | 1.01x(?) |
SetUnion_OfObjects | 6588 | 6521 | -1.0% | 1.01x(?) |
NSStringConversion | 825 | 814 | -1.3% | 1.01x(?) |
SevenBoom | 1354 | 1346 | -0.6% | 1.01x(?) |
ObjectiveCBridgeStubNSDateMutationRef | 11823 | 11652 | -1.4% | 1.01x(?) |
TwoSum | 1607 | 1586 | -1.3% | 1.01x(?) |
ObjectiveCBridgeStubFromNSDate | 3458 | 3411 | -1.4% | 1.01x |
ArraySubscript | 1446 | 1449 | +0.2% | 1.00x(?) |
ObjectiveCBridgeToNSString | 1074 | 1069 | -0.5% | 1.00x(?) |
DictionarySwapOfObjects | 6746 | 6748 | +0.0% | 1.00x(?) |
StackPromo | 21568 | 21549 | -0.1% | 1.00x(?) |
ObjectiveCBridgeFromNSDictionaryAnyObject | 203050 | 203958 | +0.5% | 1.00x(?) |
RecursiveOwnedParameter | 1937 | 1938 | +0.1% | 1.00x(?) |
Integrate | 241 | 241 | +0.0% | 1.00x |
ClassArrayGetter | 12 | 12 | +0.0% | 1.00x |
Histogram | 656 | 656 | +0.0% | 1.00x |
MonteCarloPi | 45139 | 44981 | -0.3% | 1.00x |
Prims | 736 | 734 | -0.3% | 1.00x(?) |
SortLettersInPlace | 973 | 974 | +0.1% | 1.00x(?) |
DictionarySwap | 628 | 628 | +0.0% | 1.00x |
ArrayOfGenericPOD | 220 | 220 | +0.0% | 1.00x |
Dictionary3OfObjects | 858 | 858 | +0.0% | 1.00x |
RangeAssignment | 287 | 288 | +0.3% | 1.00x(?) |
SuperChars | 210356 | 211116 | +0.4% | 1.00x(?) |
XorLoop | 380 | 380 | +0.0% | 1.00x |
ArrayAppendReserved | 536 | 535 | -0.2% | 1.00x(?) |
StringInterpolation | 10851 | 10813 | -0.3% | 1.00x(?) |
ObjectiveCBridgeStubToNSString | 1279 | 1283 | +0.3% | 1.00x(?) |
ArrayAppendStrings | 12156 | 12108 | -0.4% | 1.00x(?) |
ObjectiveCBridgeStubFromNSStringRef | 129 | 129 | +0.0% | 1.00x |
StaticArray | 2744 | 2757 | +0.5% | 1.00x(?) |
ProtocolDispatch | 3040 | 3040 | +0.0% | 1.00x |
TypeFlood | 0 | 0 | +0.0% | 1.00x |
ObjectiveCBridgeFromNSSetAnyObject | 96370 | 96253 | -0.1% | 1.00x(?) |
AngryPhonebook | 2809 | 2817 | +0.3% | 1.00x(?) |
Dictionary3 | 509 | 509 | +0.0% | 1.00x |
Dictionary2 | 2048 | 2042 | -0.3% | 1.00x(?) |
StrComplexWalk | 2903 | 2896 | -0.2% | 1.00x(?) |
SetIntersect_OfObjects | 2276 | 2272 | -0.2% | 1.00x(?) |
Join | 463 | 464 | +0.2% | 1.00x(?) |
ArrayOfRef | 3550 | 3537 | -0.4% | 1.00x(?) |
ArrayAppend | 775 | 774 | -0.1% | 1.00x(?) |
ObjectiveCBridgeStubDateMutation | 273 | 273 | +0.0% | 1.00x |
ObjectiveCBridgeToNSArray | 30186 | 30230 | +0.1% | 1.00x(?) |
NSError | 324 | 325 | +0.3% | 1.00x(?) |
DictionaryOfObjects | 2288 | 2292 | +0.2% | 1.00x(?) |
PopFrontArrayGeneric | 1133 | 1133 | +0.0% | 1.00x |
StringEqualPointerComparison | 7301 | 7296 | -0.1% | 1.00x(?) |
PolymorphicCalls | 22 | 22 | +0.0% | 1.00x |
RC4 | 165 | 165 | +0.0% | 1.00x |
IterateData | 2538 | 2537 | -0.0% | 1.00x(?) |
OpenClose | 54 | 54 | +0.0% | 1.00x |
UTF8Decode | 288 | 288 | +0.0% | 1.00x |
ObjectiveCBridgeStubURLAppendPath | 232781 | 231792 | -0.4% | 1.00x(?) |
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced | 136089 | 135985 | -0.1% | 1.00x(?) |
SetIsSubsetOf | 508 | 508 | +0.0% | 1.00x |
NopDeinit | 36648 | 36635 | -0.0% | 1.00x(?) |
ObjectiveCBridgeFromNSArrayAnyObject | 75909 | 75859 | -0.1% | 1.00x(?) |
SetIntersect | 1071 | 1072 | +0.1% | 1.00x(?) |
RGBHistogramOfObjects | 21981 | 21978 | -0.0% | 1.00x(?) |
StringHasSuffix | 800 | 800 | +0.0% | 1.00x |
Phonebook | 7076 | 7104 | +0.4% | 1.00x(?) |
ObjectiveCBridgeStubDateAccess | 182 | 182 | +0.0% | 1.00x |
Sim2DArray | 277 | 277 | +0.0% | 1.00x |
ArrayAppendRepeatCol | 642 | 641 | -0.2% | 1.00x(?) |
MonteCarloE | 10572 | 10576 | +0.0% | 1.00x(?) |
StringHasSuffixUnicode | 63852 | 63661 | -0.3% | 1.00x(?) |
HashTest | 1745 | 1744 | -0.1% | 1.00x(?) |
ObjectiveCBridgeToNSSet | 15745 | 15809 | +0.4% | 1.00x(?) |
ArrayAppendArrayOfInt | 599 | 598 | -0.2% | 1.00x(?) |
ArrayOfPOD | 182 | 182 | +0.0% | 1.00x |
SetUnion | 3025 | 3012 | -0.4% | 1.00x(?) |
StringBuilder | 1319 | 1314 | -0.4% | 1.00x(?) |
DeadArray | 185 | 185 | +0.0% | 1.00x |
ArrayValueProp2 | 6 | 6 | +0.0% | 1.00x |
BitCount | 1 | 1 | +0.0% | 1.00x |
ArrayLiteral | 1178 | 1178 | +0.0% | 1.00x |
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced | 90323 | 90191 | -0.1% | 1.00x(?) |
StringWalk | 5863 | 5871 | +0.1% | 1.00x(?) |
ArrayValueProp | 6 | 6 | +0.0% | 1.00x |
ObjectiveCBridgeStubFromArrayOfNSString | 58580 | 58496 | -0.1% | 1.00x(?) |
GlobalClass | 0 | 0 | +0.0% | 1.00x |
Memset | 235 | 236 | +0.4% | 1.00x |
Dictionary2OfObjects | 3395 | 3404 | +0.3% | 1.00x(?) |
ArrayValueProp4 | 6 | 6 | +0.0% | 1.00x |
ArrayValueProp3 | 6 | 6 | +0.0% | 1.00x |
ObjectiveCBridgeFromNSDictionaryAnyObjectToString | 209288 | 211102 | +0.9% | 0.99x(?) |
DictionaryBridge | 3842 | 3878 | +0.9% | 0.99x(?) |
ObjectiveCBridgeStubFromNSString | 768 | 775 | +0.9% | 0.99x |
ObjectAllocation | 153 | 154 | +0.7% | 0.99x(?) |
ProtocolDispatch2 | 158 | 160 | +1.3% | 0.99x |
PopFrontUnsafePointer | 9080 | 9165 | +0.9% | 0.99x(?) |
ObjectiveCBridgeStubToNSStringRef | 117 | 118 | +0.8% | 0.99x(?) |
DictionaryRemoveOfObjects | 19611 | 19756 | +0.7% | 0.99x(?) |
SortStringsUnicode | 8105 | 8221 | +1.4% | 0.99x |
Dictionary | 743 | 747 | +0.5% | 0.99x(?) |
SetExclusiveOr | 2610 | 2642 | +1.2% | 0.99x(?) |
NSDictionaryCastToSwift | 6996 | 7048 | +0.7% | 0.99x(?) |
DictionaryRemove | 4608 | 4659 | +1.1% | 0.99x(?) |
LinkedList | 7209 | 7253 | +0.6% | 0.99x(?) |
ObjectiveCBridgeFromNSSetAnyObjectToStringForced | 105248 | 105828 | +0.6% | 0.99x(?) |
RGBHistogram | 2815 | 2836 | +0.8% | 0.99x(?) |
ObjectiveCBridgeStubNSDataAppend | 2406 | 2438 | +1.3% | 0.99x(?) |
ObjectiveCBridgeStubDataAppend | 2944 | 2994 | +1.7% | 0.98x(?) |
ObjectiveCBridgeToNSDictionary | 15697 | 16045 | +2.2% | 0.98x(?) |
SortStrings | 1722 | 1773 | +3.0% | 0.97x |
StrToInt | 4910 | 5056 | +3.0% | 0.97x |
ObjectiveCBridgeFromNSSetAnyObjectToString | 141438 | 145132 | +2.6% | 0.97x(?) |
StringHasPrefixUnicode | 13440 | 14214 | +5.8% | 0.95x |
Regression (6)
TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
---|---|---|---|---|
ArrayAppendRepeatCol | 215514 | 513059 | +138.1% | 0.42x |
ArrayAppendLazyMap | 244449 | 532995 | +118.0% | 0.46x |
ArrayAppendGenericStructs | 1298 | 1423 | +9.6% | 0.91x |
142 | 6024071 | 6562428 | +8.9% | 0.92x |
ArrayOfGenericPOD | 3429 | 3695 | +7.8% | 0.93x |
ObjectiveCBridgeStubNSDateMutationRef | 13643 | 14604 | +7.0% | 0.93x(?) |
Improvement (1)
TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
---|---|---|---|---|
TypeFlood | 201 | 187 | -7.0% | 1.07x(?) |
No Changes (136)
TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
---|---|---|---|---|
StringEqualPointerComparison | 9893 | 9527 | -3.7% | 1.04x |
ObjectiveCBridgeStubFromArrayOfNSString | 60957 | 58879 | -3.4% | 1.04x(?) |
StringWalk | 22678 | 21961 | -3.2% | 1.03x |
ObjectiveCBridgeFromNSDictionaryAnyObjectToString | 220445 | 216397 | -1.8% | 1.02x(?) |
StringHasPrefix | 1685 | 1650 | -2.1% | 1.02x |
NSError | 686 | 673 | -1.9% | 1.02x(?) |
Calculator | 967 | 948 | -2.0% | 1.02x |
ObjectiveCBridgeStubNSDateRefAccess | 1256 | 1232 | -1.9% | 1.02x |
ObjectiveCBridgeFromNSSetAnyObjectToStringForced | 120295 | 118488 | -1.5% | 1.02x(?) |
NSStringConversion | 3021 | 2970 | -1.7% | 1.02x(?) |
ObjectiveCBridgeFromNSSetAnyObjectForced | 7589 | 7446 | -1.9% | 1.02x(?) |
StringHasSuffix | 1755 | 1725 | -1.7% | 1.02x |
ObjectiveCBridgeStubFromNSDate | 3795 | 3720 | -2.0% | 1.02x |
StackPromo | 128395 | 127488 | -0.7% | 1.01x(?) |
ObjectiveCBridgeFromNSDictionaryAnyObjectForced | 7773 | 7695 | -1.0% | 1.01x(?) |
StringInterpolation | 15836 | 15752 | -0.5% | 1.01x(?) |
AnyHashableWithAClass | 78173 | 77757 | -0.5% | 1.01x(?) |
ObjectiveCBridgeStubToNSString | 1347 | 1340 | -0.5% | 1.01x |
ErrorHandling | 3832 | 3776 | -1.5% | 1.01x(?) |
ObjectiveCBridgeStubFromNSStringRef | 162 | 161 | -0.6% | 1.01x |
ObjectiveCBridgeStubFromNSString | 815 | 807 | -1.0% | 1.01x |
StaticArray | 35519 | 35216 | -0.8% | 1.01x(?) |
ObjectiveCBridgeStubURLAppendPathRef | 240102 | 237435 | -1.1% | 1.01x(?) |
DictionaryOfObjects | 4887 | 4857 | -0.6% | 1.01x |
ObjectiveCBridgeStubURLAppendPath | 236717 | 235018 | -0.7% | 1.01x(?) |
SetExclusiveOr | 30693 | 30439 | -0.8% | 1.01x |
SetExclusiveOr_OfObjects | 46930 | 46587 | -0.7% | 1.01x(?) |
ObjectiveCBridgeStubDateMutation | 433 | 427 | -1.4% | 1.01x |
DictionaryRemove | 17472 | 17351 | -0.7% | 1.01x(?) |
Chars | 5025 | 4986 | -0.8% | 1.01x |
StrToInt | 5744 | 5699 | -0.8% | 1.01x(?) |
DeadArray | 121126 | 120278 | -0.7% | 1.01x(?) |
ObjectiveCBridgeStubNSDataAppend | 2789 | 2772 | -0.6% | 1.01x(?) |
SevenBoom | 1511 | 1496 | -1.0% | 1.01x(?) |
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced | 92489 | 91418 | -1.2% | 1.01x(?) |
TwoSum | 6739 | 6688 | -0.8% | 1.01x |
ArraySubscript | 5632 | 5633 | +0.0% | 1.00x(?) |
ObjectiveCBridgeToNSString | 1103 | 1102 | -0.1% | 1.00x(?) |
RecursiveOwnedParameter | 10894 | 10881 | -0.1% | 1.00x(?) |
Integrate | 368 | 368 | +0.0% | 1.00x |
ObjectiveCBridgeFromNSArrayAnyObjectToString | 119567 | 119720 | +0.1% | 1.00x(?) |
ClassArrayGetter | 1266 | 1265 | -0.1% | 1.00x(?) |
Array2D | 812901 | 812593 | -0.0% | 1.00x(?) |
SortStrings | 2770 | 2779 | +0.3% | 1.00x |
DictionaryBridge | 3958 | 3951 | -0.2% | 1.00x(?) |
MonteCarloPi | 53726 | 53721 | -0.0% | 1.00x(?) |
StringWithCString | 154829 | 154655 | -0.1% | 1.00x(?) |
Prims | 13572 | 13526 | -0.3% | 1.00x(?) |
SortLettersInPlace | 2567 | 2562 | -0.2% | 1.00x(?) |
DictionarySwap | 7517 | 7515 | -0.0% | 1.00x(?) |
PopFrontArray | 24628 | 24669 | +0.2% | 1.00x(?) |
Dictionary3OfObjects | 2263 | 2266 | +0.1% | 1.00x(?) |
RangeAssignment | 13268 | 13265 | -0.0% | 1.00x(?) |
ByteSwap | 9 | 9 | +0.0% | 1.00x |
SuperChars | 263998 | 264630 | +0.2% | 1.00x(?) |
XorLoop | 20016 | 19997 | -0.1% | 1.00x(?) |
ArrayAppendReserved | 3191 | 3192 | +0.0% | 1.00x(?) |
ArrayAppendStrings | 11838 | 11864 | +0.2% | 1.00x(?) |
ProtocolDispatch | 5474 | 5473 | -0.0% | 1.00x(?) |
ObjectAllocation | 561 | 561 | +0.0% | 1.00x |
ObjectiveCBridgeFromNSSetAnyObject | 102061 | 102290 | +0.2% | 1.00x(?) |
AngryPhonebook | 2983 | 2985 | +0.1% | 1.00x(?) |
ProtocolDispatch2 | 444 | 445 | +0.2% | 1.00x |
HashTest | 5394 | 5378 | -0.3% | 1.00x(?) |
Dictionary3 | 1609 | 1605 | -0.2% | 1.00x(?) |
Dictionary2 | 4440 | 4420 | -0.5% | 1.00x(?) |
SetIntersect_OfObjects | 13921 | 13969 | +0.3% | 1.00x(?) |
ArrayOfRef | 9394 | 9362 | -0.3% | 1.00x |
PopFrontArrayGeneric | 9757 | 9768 | +0.1% | 1.00x(?) |
PopFrontUnsafePointer | 242972 | 242429 | -0.2% | 1.00x(?) |
PolymorphicCalls | 1143 | 1143 | +0.0% | 1.00x |
RC4 | 9371 | 9369 | -0.0% | 1.00x(?) |
ObjectiveCBridgeStubToNSStringRef | 157 | 157 | +0.0% | 1.00x |
Hanoi | 20357 | 20366 | +0.0% | 1.00x(?) |
DictionaryRemoveOfObjects | 46832 | 46914 | +0.2% | 1.00x(?) |
UTF8Decode | 43674 | 43592 | -0.2% | 1.00x(?) |
SortStringsUnicode | 9277 | 9247 | -0.3% | 1.00x(?) |
SetIsSubsetOf | 2441 | 2440 | -0.0% | 1.00x(?) |
Dictionary | 2145 | 2151 | +0.3% | 1.00x(?) |
NopDeinit | 58081 | 58077 | -0.0% | 1.00x(?) |
ObjectiveCBridgeStubToArrayOfNSString | 30011 | 29934 | -0.3% | 1.00x(?) |
SetIntersect | 15179 | 15138 | -0.3% | 1.00x(?) |
ObjectiveCBridgeStubDataAppend | 3335 | 3349 | +0.4% | 1.00x(?) |
RGBHistogramOfObjects | 93788 | 93374 | -0.4% | 1.00x(?) |
StringBuilder | 2719 | 2721 | +0.1% | 1.00x(?) |
ArrayInClass | 3957 | 3957 | +0.0% | 1.00x |
ArrayOfGenericRef | 10058 | 10028 | -0.3% | 1.00x(?) |
ObjectiveCBridgeFromNSString | 5131 | 5156 | +0.5% | 1.00x(?) |
Sim2DArray | 14575 | 14576 | +0.0% | 1.00x(?) |
MonteCarloE | 108896 | 108665 | -0.2% | 1.00x(?) |
SetUnion_OfObjects | 34368 | 34313 | -0.2% | 1.00x(?) |
StringHasSuffixUnicode | 65312 | 65360 | +0.1% | 1.00x(?) |
Walsh | 13216 | 13238 | +0.2% | 1.00x(?) |
ArrayAppend | 3441 | 3440 | -0.0% | 1.00x(?) |
LinkedList | 27926 | 27871 | -0.2% | 1.00x(?) |
ObjectiveCBridgeFromNSSetAnyObjectToString | 157111 | 157000 | -0.1% | 1.00x(?) |
RGBHistogram | 44221 | 44428 | +0.5% | 1.00x(?) |
SetUnion | 18518 | 18482 | -0.2% | 1.00x(?) |
BitCount | 96 | 96 | +0.0% | 1.00x |
ArrayLiteral | 1241 | 1246 | +0.4% | 1.00x(?) |
ArrayValueProp | 2623 | 2615 | -0.3% | 1.00x(?) |
GlobalClass | 0 | 0 | +0.0% | 1.00x |
Memset | 20654 | 20655 | +0.0% | 1.00x(?) |
ArrayValueProp4 | 3006 | 2996 | -0.3% | 1.00x(?) |
ArrayValueProp2 | 3147 | 3147 | +0.0% | 1.00x |
ArrayValueProp3 | 3059 | 3064 | +0.2% | 1.00x(?) |
DictionarySwapOfObjects | 21186 | 21397 | +1.0% | 0.99x(?) |
ObjectiveCBridgeFromNSDictionaryAnyObject | 212886 | 214471 | +0.7% | 0.99x(?) |
Histogram | 11686 | 11834 | +1.3% | 0.99x(?) |
ObjectiveCBridgeFromNSStringForced | 3073 | 3105 | +1.0% | 0.99x |
Join | 1454 | 1462 | +0.6% | 0.99x |
ObjectiveCBridgeToNSArray | 30360 | 30702 | +1.1% | 0.99x(?) |
MapReduce | 45841 | 46366 | +1.1% | 0.99x(?) |
DictionaryLiteral | 16655 | 16739 | +0.5% | 0.99x(?) |
ObjectiveCBridgeFromNSArrayAnyObject | 78930 | 80056 | +1.4% | 0.99x(?) |
NSDictionaryCastToSwift | 8273 | 8348 | +0.9% | 0.99x(?) |
Phonebook | 63057 | 63568 | +0.8% | 0.99x(?) |
ObjectiveCBridgeToNSDictionary | 16379 | 16626 | +1.5% | 0.99x(?) |
SetIsSubsetOf_OfObjects | 2333 | 2350 | +0.7% | 0.99x(?) |
ArrayAppendSequence | 106213 | 107657 | +1.4% | 0.99x(?) |
Dictionary2OfObjects | 6218 | 6256 | +0.6% | 0.99x(?) |
ObjectiveCBridgeStubFromNSDateRef | 4041 | 4129 | +2.2% | 0.98x |
ObjectiveCBridgeStubToNSDate | 14187 | 14466 | +2.0% | 0.98x(?) |
ObjectiveCBridgeStubToNSDateRef | 3298 | 3370 | +2.2% | 0.98x(?) |
CaptureProp | 116346 | 118381 | +1.8% | 0.98x(?) |
IterateData | 10586 | 10754 | +1.6% | 0.98x |
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced | 145448 | 147728 | +1.6% | 0.98x(?) |
StrComplexWalk | 7852 | 8083 | +2.9% | 0.97x |
ObjectiveCBridgeToNSSet | 16050 | 16510 | +2.9% | 0.97x(?) |
OpenClose | 428 | 441 | +3.0% | 0.97x(?) |
ObjectiveCBridgeStubDateAccess | 1094 | 1125 | +2.8% | 0.97x |
ObjectiveCBridgeFromNSArrayAnyObjectForced | 10337 | 10788 | +4.4% | 0.96x(?) |
ArrayAppendOptionals | 1295 | 1349 | +4.2% | 0.96x |
StringHasPrefixUnicode | 14931 | 15520 | +3.9% | 0.96x |
ArrayAppendArrayOfInt | 642 | 678 | +5.6% | 0.95x |
ArrayOfPOD | 2328 | 2451 | +5.3% | 0.95x |
@swift-ci Please test |
@swift-ci Please test OS X platform |
608b0e7
to
9947cd6
Compare
Array.append(contentsOf:)
taking a Collection
@swift-ci Please test |
@swift-ci Please benchmark |
Build failed |
Build failed |
@dabrahams @atrick this implements the change we discussed last week re: |
Array.append(contentsOf:)
taking a Collection
@airspeedswift Cool… but, wow, the benchmarks aren't very encouraging. I suppose that's why you've alerted @atrick? There are a lot of commits here and the messages hint that you may have made changes and then changed something back; has the history been optimized for review? |
@dabrahams Most of those benchmark variations seem to be noise unrelated to the change – for example the StringWithCString test just creates a This was a WIP PR for a while (temporarily renamed some methods, move them around, then move them back) but it's stabilized now. If it's easier to review all in one go, I can create a fresh PR though. |
…th checks for overrun.
0d7aa36
to
acfc744
Compare
@dabrahams have squashed the initial set of commits from when it was still a WIP |
Build comment file:Optimized (O)
|
TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
---|---|---|---|---|
ArrayAppendLazyMap | 794 | 1016 | +28.0% | 0.78x |
CaptureProp | 3976 | 4307 | +8.3% | 0.92x |
ObjectiveCBridgeStubNSDateRefAccess | 295 | 320 | +8.5% | 0.92x |
Improvement (2)
TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
---|---|---|---|---|
Calculator | 30 | 28 | -6.7% | 1.07x |
ArrayAppendSequence | 1000 | 868 | -13.2% | 1.15x |
No Changes (138)
TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
---|---|---|---|---|
ObjectiveCBridgeFromNSString | 1713 | 1643 | -4.1% | 1.04x |
AnyHashableWithAClass | 60391 | 58882 | -2.5% | 1.03x(?) |
DictionaryBridge | 3651 | 3592 | -1.6% | 1.02x(?) |
ObjectiveCBridgeStubFromNSDateRef | 3515 | 3449 | -1.9% | 1.02x |
ObjectiveCBridgeToNSSet | 14887 | 14573 | -2.1% | 1.02x(?) |
Dictionary | 700 | 687 | -1.9% | 1.02x |
SetIsSubsetOf_OfObjects | 494 | 484 | -2.0% | 1.02x |
Array2D | 1944 | 1931 | -0.7% | 1.01x(?) |
SortStrings | 1627 | 1617 | -0.6% | 1.01x |
ObjectiveCBridgeFromNSArrayAnyObjectForced | 5884 | 5853 | -0.5% | 1.01x(?) |
ObjectiveCBridgeFromNSStringForced | 2529 | 2502 | -1.1% | 1.01x(?) |
ObjectiveCBridgeFromNSDictionaryAnyObject | 191774 | 190101 | -0.9% | 1.01x(?) |
StringHasPrefix | 698 | 691 | -1.0% | 1.01x(?) |
StringInterpolation | 10333 | 10248 | -0.8% | 1.01x(?) |
ObjectiveCBridgeStubFromNSStringRef | 121 | 120 | -0.8% | 1.01x(?) |
StaticArray | 2614 | 2592 | -0.8% | 1.01x(?) |
ArrayOfRef | 3347 | 3322 | -0.8% | 1.01x(?) |
DictionaryLiteral | 2600 | 2586 | -0.5% | 1.01x(?) |
ObjectiveCBridgeStubToArrayOfNSString | 27876 | 27531 | -1.2% | 1.01x(?) |
142 | 2827883 | 2806864 | -0.7% | 1.01x |
DictionaryRemove | 4341 | 4313 | -0.7% | 1.01x(?) |
NSStringConversion | 772 | 767 | -0.7% | 1.01x(?) |
ObjectiveCBridgeFromNSSetAnyObjectForced | 4376 | 4330 | -1.1% | 1.01x(?) |
TwoSum | 1509 | 1487 | -1.5% | 1.01x(?) |
ObjectiveCBridgeStubFromNSDate | 3255 | 3218 | -1.1% | 1.01x(?) |
ArraySubscript | 1353 | 1359 | +0.4% | 1.00x(?) |
ObjectiveCBridgeToNSString | 1010 | 1008 | -0.2% | 1.00x(?) |
DictionarySwapOfObjects | 6366 | 6375 | +0.1% | 1.00x(?) |
StackPromo | 20326 | 20285 | -0.2% | 1.00x(?) |
RecursiveOwnedParameter | 1827 | 1830 | +0.2% | 1.00x(?) |
Integrate | 228 | 228 | +0.0% | 1.00x |
ObjectiveCBridgeFromNSDictionaryAnyObjectToString | 199510 | 199261 | -0.1% | 1.00x(?) |
ObjectiveCBridgeFromNSArrayAnyObjectToString | 111027 | 111261 | +0.2% | 1.00x(?) |
ClassArrayGetter | 12 | 12 | +0.0% | 1.00x |
Histogram | 619 | 619 | +0.0% | 1.00x |
ObjectiveCBridgeFromNSDictionaryAnyObjectForced | 4997 | 4998 | +0.0% | 1.00x(?) |
MonteCarloPi | 42598 | 42472 | -0.3% | 1.00x |
StringWithCString | 146454 | 147014 | +0.4% | 1.00x(?) |
Prims | 694 | 695 | +0.1% | 1.00x(?) |
SortLettersInPlace | 920 | 919 | -0.1% | 1.00x(?) |
DictionarySwap | 593 | 591 | -0.3% | 1.00x(?) |
ArrayOfGenericPOD | 207 | 207 | +0.0% | 1.00x |
Dictionary3OfObjects | 807 | 808 | +0.1% | 1.00x(?) |
RangeAssignment | 271 | 272 | +0.4% | 1.00x(?) |
ByteSwap | 0 | 0 | +0.0% | 1.00x |
ArrayAppendGenericStructs | 1142 | 1141 | -0.1% | 1.00x(?) |
SuperChars | 198400 | 199008 | +0.3% | 1.00x(?) |
XorLoop | 359 | 359 | +0.0% | 1.00x |
ArrayAppendReserved | 505 | 505 | +0.0% | 1.00x |
ObjectiveCBridgeStubToNSString | 1206 | 1208 | +0.2% | 1.00x(?) |
ArrayAppendStrings | 11401 | 11375 | -0.2% | 1.00x(?) |
Join | 435 | 437 | +0.5% | 1.00x(?) |
ObjectiveCBridgeStubFromNSString | 725 | 722 | -0.4% | 1.00x(?) |
ProtocolDispatch | 2869 | 2868 | -0.0% | 1.00x(?) |
TypeFlood | 0 | 0 | +0.0% | 1.00x |
ObjectiveCBridgeFromNSSetAnyObject | 90661 | 90867 | +0.2% | 1.00x(?) |
AngryPhonebook | 2651 | 2655 | +0.1% | 1.00x(?) |
Walsh | 304 | 305 | +0.3% | 1.00x(?) |
Dictionary3 | 480 | 480 | +0.0% | 1.00x |
Dictionary2 | 1935 | 1928 | -0.4% | 1.00x(?) |
StrComplexWalk | 2736 | 2732 | -0.1% | 1.00x(?) |
SetIntersect_OfObjects | 2151 | 2152 | +0.1% | 1.00x(?) |
ErrorHandling | 2782 | 2775 | -0.2% | 1.00x(?) |
ObjectiveCBridgeStubURLAppendPathRef | 216403 | 217366 | +0.5% | 1.00x(?) |
ArrayAppendOptionals | 1141 | 1141 | +0.0% | 1.00x |
NSError | 307 | 306 | -0.3% | 1.00x(?) |
DictionaryOfObjects | 2156 | 2161 | +0.2% | 1.00x(?) |
ObjectiveCBridgeStubToNSDateRef | 3258 | 3248 | -0.3% | 1.00x(?) |
PopFrontUnsafePointer | 8660 | 8650 | -0.1% | 1.00x(?) |
StringEqualPointerComparison | 6893 | 6896 | +0.0% | 1.00x(?) |
PolymorphicCalls | 20 | 20 | +0.0% | 1.00x |
RC4 | 156 | 156 | +0.0% | 1.00x |
MapReduce | 322 | 322 | +0.0% | 1.00x |
ObjectiveCBridgeStubDateMutation | 258 | 258 | +0.0% | 1.00x |
IterateData | 2396 | 2395 | -0.0% | 1.00x(?) |
Hanoi | 3017 | 3003 | -0.5% | 1.00x(?) |
OpenClose | 51 | 51 | +0.0% | 1.00x |
DictionaryRemoveOfObjects | 18526 | 18517 | -0.1% | 1.00x(?) |
UTF8Decode | 272 | 272 | +0.0% | 1.00x |
ObjectiveCBridgeStubURLAppendPath | 219304 | 218876 | -0.2% | 1.00x(?) |
SetIsSubsetOf | 481 | 481 | +0.0% | 1.00x |
NopDeinit | 34596 | 34577 | -0.1% | 1.00x(?) |
SetIntersect | 1011 | 1011 | +0.0% | 1.00x |
SetExclusiveOr | 2463 | 2473 | +0.4% | 1.00x(?) |
NSDictionaryCastToSwift | 6578 | 6566 | -0.2% | 1.00x(?) |
ObjectiveCBridgeFromNSSetAnyObjectToString | 134534 | 135013 | +0.4% | 1.00x(?) |
ArrayOfGenericRef | 3423 | 3412 | -0.3% | 1.00x(?) |
StringHasSuffix | 755 | 755 | +0.0% | 1.00x |
Phonebook | 6675 | 6660 | -0.2% | 1.00x(?) |
ObjectiveCBridgeStubDateAccess | 172 | 172 | +0.0% | 1.00x |
Sim2DArray | 261 | 261 | +0.0% | 1.00x |
SetExclusiveOr_OfObjects | 7430 | 7415 | -0.2% | 1.00x(?) |
ArrayAppendRepeatCol | 606 | 606 | +0.0% | 1.00x |
MonteCarloE | 9962 | 9979 | +0.2% | 1.00x(?) |
SetUnion_OfObjects | 6246 | 6252 | +0.1% | 1.00x(?) |
StringHasSuffixUnicode | 60257 | 60011 | -0.4% | 1.00x(?) |
ArrayAppend | 731 | 730 | -0.1% | 1.00x(?) |
StringHasPrefixUnicode | 12677 | 12630 | -0.4% | 1.00x(?) |
LinkedList | 6845 | 6846 | +0.0% | 1.00x(?) |
RGBHistogramOfObjects | 20742 | 20725 | -0.1% | 1.00x(?) |
RGBHistogram | 2654 | 2647 | -0.3% | 1.00x(?) |
ArrayAppendArrayOfInt | 565 | 565 | +0.0% | 1.00x |
ArrayOfPOD | 171 | 171 | +0.0% | 1.00x |
Chars | 590 | 590 | +0.0% | 1.00x |
StringBuilder | 1246 | 1246 | +0.0% | 1.00x |
DeadArray | 174 | 174 | +0.0% | 1.00x |
ArrayValueProp2 | 5 | 5 | +0.0% | 1.00x |
BitCount | 1 | 1 | +0.0% | 1.00x |
SevenBoom | 1274 | 1274 | +0.0% | 1.00x |
StringWalk | 5556 | 5565 | +0.2% | 1.00x(?) |
ArrayValueProp | 5 | 5 | +0.0% | 1.00x |
ObjectiveCBridgeStubFromArrayOfNSString | 55473 | 55500 | +0.1% | 1.00x(?) |
GlobalClass | 0 | 0 | +0.0% | 1.00x |
Memset | 222 | 222 | +0.0% | 1.00x |
ArrayValueProp4 | 5 | 5 | +0.0% | 1.00x |
ArrayValueProp3 | 5 | 5 | +0.0% | 1.00x |
PopFrontArray | 1056 | 1070 | +1.3% | 0.99x(?) |
ObjectAllocation | 144 | 145 | +0.7% | 0.99x(?) |
ProtocolDispatch2 | 149 | 151 | +1.3% | 0.99x |
ObjectiveCBridgeToNSArray | 28293 | 28489 | +0.7% | 0.99x(?) |
PopFrontArrayGeneric | 1055 | 1071 | +1.5% | 0.99x(?) |
ObjectiveCBridgeStubToNSStringRef | 109 | 110 | +0.9% | 0.99x(?) |
SortStringsUnicode | 7647 | 7749 | +1.3% | 0.99x(?) |
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced | 129453 | 130121 | +0.5% | 0.99x(?) |
ObjectiveCBridgeFromNSArrayAnyObject | 71274 | 72045 | +1.1% | 0.99x(?) |
StrToInt | 4639 | 4702 | +1.4% | 0.99x |
HashTest | 1646 | 1657 | +0.7% | 0.99x(?) |
ObjectiveCBridgeFromNSSetAnyObjectToStringForced | 100091 | 100903 | +0.8% | 0.99x(?) |
SetUnion | 2839 | 2857 | +0.6% | 0.99x(?) |
ArrayLiteral | 1106 | 1112 | +0.5% | 0.99x(?) |
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced | 85078 | 85529 | +0.5% | 0.99x(?) |
ObjectiveCBridgeStubNSDateMutationRef | 11595 | 11666 | +0.6% | 0.99x(?) |
Dictionary2OfObjects | 3198 | 3218 | +0.6% | 0.99x(?) |
ObjectiveCBridgeStubNSDataAppend | 2279 | 2303 | +1.1% | 0.99x(?) |
ObjectiveCBridgeStubDataAppend | 2793 | 2854 | +2.2% | 0.98x(?) |
ArrayInClass | 59 | 60 | +1.7% | 0.98x(?) |
ObjectiveCBridgeToNSDictionary | 14732 | 15009 | +1.9% | 0.98x(?) |
ObjectiveCBridgeStubToNSDate | 12363 | 12719 | +2.9% | 0.97x(?) |
Regression (5)
TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
---|---|---|---|---|
ArrayAppendRepeatCol | 203180 | 477358 | +134.9% | 0.43x |
ArrayAppendLazyMap | 230774 | 496762 | +115.3% | 0.46x |
ObjectiveCBridgeStubDateMutation | 409 | 459 | +12.2% | 0.89x |
142 | 5625601 | 6190084 | +10.0% | 0.91x |
PopFrontUnsafePointer | 229356 | 244295 | +6.5% | 0.94x |
Improvement (3)
TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
---|---|---|---|---|
StrComplexWalk | 7395 | 6960 | -5.9% | 1.06x |
StringHasSuffix | 1649 | 1512 | -8.3% | 1.09x |
StringHasPrefix | 1585 | 1436 | -9.4% | 1.10x |
No Changes (135)
TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
---|---|---|---|---|
Calculator | 914 | 870 | -4.8% | 1.05x |
StringWalk | 21333 | 20339 | -4.7% | 1.05x |
StringEqualPointerComparison | 9326 | 8953 | -4.0% | 1.04x |
SortStrings | 2610 | 2537 | -2.8% | 1.03x(?) |
ObjectiveCBridgeStubFromNSString | 768 | 748 | -2.6% | 1.03x |
ObjectiveCBridgeFromNSDictionaryAnyObject | 201704 | 197096 | -2.3% | 1.02x(?) |
TypeFlood | 171 | 167 | -2.3% | 1.02x(?) |
ObjectiveCBridgeStubURLAppendPath | 222309 | 217996 | -1.9% | 1.02x(?) |
ObjectiveCBridgeFromNSString | 4861 | 4763 | -2.0% | 1.02x(?) |
ObjectiveCBridgeFromNSSetAnyObjectForced | 7126 | 6965 | -2.3% | 1.02x(?) |
StackPromo | 121509 | 120364 | -0.9% | 1.01x(?) |
ObjectiveCBridgeFromNSDictionaryAnyObjectForced | 7278 | 7212 | -0.9% | 1.01x(?) |
ObjectiveCBridgeFromNSStringForced | 2904 | 2870 | -1.2% | 1.01x(?) |
ObjectiveCBridgeStubToNSDate | 13679 | 13483 | -1.4% | 1.01x(?) |
Join | 1388 | 1375 | -0.9% | 1.01x(?) |
ObjectAllocation | 526 | 523 | -0.6% | 1.01x(?) |
ObjectiveCBridgeToNSSet | 14983 | 14821 | -1.1% | 1.01x(?) |
DictionaryOfObjects | 4602 | 4577 | -0.5% | 1.01x(?) |
PopFrontArrayGeneric | 9205 | 9100 | -1.1% | 1.01x |
MapReduce | 43831 | 43362 | -1.1% | 1.01x(?) |
Hanoi | 19247 | 18977 | -1.4% | 1.01x |
SortStringsUnicode | 8750 | 8674 | -0.9% | 1.01x(?) |
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced | 140458 | 138568 | -1.4% | 1.01x(?) |
ObjectiveCBridgeStubToArrayOfNSString | 28336 | 27969 | -1.3% | 1.01x(?) |
SetIntersect | 14376 | 14287 | -0.6% | 1.01x(?) |
SetExclusiveOr | 28945 | 28671 | -0.9% | 1.01x |
ArrayOfGenericRef | 9520 | 9464 | -0.6% | 1.01x(?) |
DictionaryRemove | 16497 | 16398 | -0.6% | 1.01x(?) |
ArrayLiteral | 1171 | 1165 | -0.5% | 1.01x(?) |
NSStringConversion | 2806 | 2776 | -1.1% | 1.01x(?) |
StringBuilder | 2576 | 2555 | -0.8% | 1.01x(?) |
ObjectiveCBridgeStubNSDataAppend | 2618 | 2598 | -0.8% | 1.01x(?) |
SevenBoom | 1427 | 1408 | -1.3% | 1.01x |
ObjectiveCBridgeStubFromNSDate | 3587 | 3569 | -0.5% | 1.01x |
ArraySubscript | 5324 | 5311 | -0.2% | 1.00x(?) |
ObjectiveCBridgeToNSString | 1037 | 1037 | +0.0% | 1.00x |
PopFrontArray | 23080 | 22981 | -0.4% | 1.00x(?) |
RecursiveOwnedParameter | 10238 | 10228 | -0.1% | 1.00x(?) |
Integrate | 344 | 344 | +0.0% | 1.00x |
ObjectiveCBridgeFromNSDictionaryAnyObjectToString | 207544 | 208458 | +0.4% | 1.00x(?) |
ClassArrayGetter | 1194 | 1195 | +0.1% | 1.00x(?) |
Array2D | 766737 | 766726 | -0.0% | 1.00x(?) |
MonteCarloPi | 50690 | 50665 | -0.1% | 1.00x(?) |
StringWithCString | 146197 | 145771 | -0.3% | 1.00x |
Prims | 12824 | 12776 | -0.4% | 1.00x(?) |
SortLettersInPlace | 2422 | 2427 | +0.2% | 1.00x(?) |
ArrayOfGenericPOD | 3239 | 3240 | +0.0% | 1.00x(?) |
Dictionary3OfObjects | 2143 | 2141 | -0.1% | 1.00x(?) |
RangeAssignment | 12530 | 12518 | -0.1% | 1.00x(?) |
ByteSwap | 9 | 9 | +0.0% | 1.00x |
SuperChars | 219671 | 220229 | +0.2% | 1.00x(?) |
XorLoop | 18877 | 18866 | -0.1% | 1.00x(?) |
ArrayAppendReserved | 3014 | 3018 | +0.1% | 1.00x |
StringInterpolation | 14940 | 14918 | -0.1% | 1.00x(?) |
ObjectiveCBridgeStubToNSString | 1272 | 1270 | -0.2% | 1.00x(?) |
ArrayAppendStrings | 11108 | 11111 | +0.0% | 1.00x(?) |
ProtocolDispatch2 | 419 | 419 | +0.0% | 1.00x |
HashTest | 5084 | 5082 | -0.0% | 1.00x(?) |
Dictionary3 | 1520 | 1518 | -0.1% | 1.00x(?) |
Dictionary2 | 4157 | 4144 | -0.3% | 1.00x(?) |
SetIntersect_OfObjects | 13111 | 13110 | -0.0% | 1.00x(?) |
ErrorHandling | 3612 | 3622 | +0.3% | 1.00x(?) |
ArrayOfRef | 8891 | 8863 | -0.3% | 1.00x(?) |
ObjectiveCBridgeToNSArray | 28752 | 28849 | +0.3% | 1.00x(?) |
NSError | 647 | 648 | +0.1% | 1.00x(?) |
PolymorphicCalls | 1078 | 1081 | +0.3% | 1.00x |
RC4 | 8841 | 8843 | +0.0% | 1.00x(?) |
ObjectiveCBridgeStubToNSStringRef | 147 | 147 | +0.0% | 1.00x |
IterateData | 9958 | 9978 | +0.2% | 1.00x(?) |
DictionaryLiteral | 15667 | 15642 | -0.2% | 1.00x(?) |
DictionaryRemoveOfObjects | 44239 | 44333 | +0.2% | 1.00x(?) |
UTF8Decode | 41092 | 41150 | +0.1% | 1.00x(?) |
SetIsSubsetOf | 2305 | 2311 | +0.3% | 1.00x |
Dictionary | 2015 | 2012 | -0.1% | 1.00x |
NopDeinit | 54826 | 54832 | +0.0% | 1.00x(?) |
ObjectiveCBridgeStubDataAppend | 3138 | 3123 | -0.5% | 1.00x(?) |
NSDictionaryCastToSwift | 7787 | 7787 | +0.0% | 1.00x |
ObjectiveCBridgeStubNSDateRefAccess | 1185 | 1188 | +0.2% | 1.00x |
StrToInt | 5420 | 5442 | +0.4% | 1.00x |
ArrayInClass | 3735 | 3734 | -0.0% | 1.00x(?) |
Sim2DArray | 13757 | 13745 | -0.1% | 1.00x(?) |
SetExclusiveOr_OfObjects | 44270 | 44116 | -0.3% | 1.00x(?) |
ObjectiveCBridgeToNSDictionary | 15400 | 15375 | -0.2% | 1.00x(?) |
MonteCarloE | 102633 | 102512 | -0.1% | 1.00x |
SetUnion_OfObjects | 32441 | 32589 | +0.5% | 1.00x(?) |
StringHasSuffixUnicode | 61610 | 61320 | -0.5% | 1.00x |
Walsh | 12426 | 12422 | -0.0% | 1.00x(?) |
SetIsSubsetOf_OfObjects | 2089 | 2085 | -0.2% | 1.00x(?) |
LinkedList | 26306 | 26279 | -0.1% | 1.00x(?) |
RGBHistogramOfObjects | 88187 | 88207 | +0.0% | 1.00x(?) |
RGBHistogram | 41951 | 41997 | +0.1% | 1.00x(?) |
ArrayOfPOD | 2198 | 2196 | -0.1% | 1.00x(?) |
SetUnion | 17598 | 17653 | +0.3% | 1.00x(?) |
Chars | 4727 | 4706 | -0.4% | 1.00x |
DeadArray | 114432 | 113956 | -0.4% | 1.00x(?) |
BitCount | 91 | 91 | +0.0% | 1.00x |
AnyHashableWithAClass | 73721 | 73826 | +0.1% | 1.00x(?) |
ArrayValueProp | 2475 | 2469 | -0.2% | 1.00x(?) |
ObjectiveCBridgeStubFromArrayOfNSString | 55964 | 55865 | -0.2% | 1.00x(?) |
GlobalClass | 0 | 0 | +0.0% | 1.00x |
Memset | 19485 | 19489 | +0.0% | 1.00x(?) |
ArrayValueProp4 | 2834 | 2824 | -0.3% | 1.00x |
TwoSum | 6195 | 6177 | -0.3% | 1.00x(?) |
ArrayValueProp2 | 2966 | 2965 | -0.0% | 1.00x(?) |
ArrayValueProp3 | 2887 | 2891 | +0.1% | 1.00x(?) |
DictionarySwapOfObjects | 20168 | 20310 | +0.7% | 0.99x(?) |
ObjectiveCBridgeFromNSArrayAnyObjectToString | 113028 | 114362 | +1.2% | 0.99x(?) |
Histogram | 11058 | 11131 | +0.7% | 0.99x(?) |
StaticArray | 33528 | 33934 | +1.2% | 0.99x |
ObjectiveCBridgeFromNSSetAnyObject | 96047 | 96634 | +0.6% | 0.99x(?) |
AngryPhonebook | 2817 | 2847 | +1.1% | 0.99x |
ObjectiveCBridgeStubURLAppendPathRef | 221487 | 223513 | +0.9% | 0.99x(?) |
ObjectiveCBridgeStubToNSDateRef | 3089 | 3117 | +0.9% | 0.99x(?) |
CaptureProp | 109767 | 110428 | +0.6% | 0.99x |
StringHasPrefixUnicode | 14086 | 14163 | +0.6% | 0.99x |
ObjectiveCBridgeFromNSSetAnyObjectToStringForced | 113088 | 113873 | +0.7% | 0.99x(?) |
ObjectiveCBridgeStubNSDateMutationRef | 13396 | 13596 | +1.5% | 0.99x(?) |
Dictionary2OfObjects | 5894 | 5924 | +0.5% | 0.99x(?) |
DictionaryBridge | 3729 | 3824 | +2.5% | 0.98x(?) |
DictionarySwap | 7106 | 7257 | +2.1% | 0.98x(?) |
OpenClose | 406 | 416 | +2.5% | 0.98x(?) |
ObjectiveCBridgeFromNSArrayAnyObject | 74265 | 75965 | +2.3% | 0.98x |
Phonebook | 58921 | 59951 | +1.8% | 0.98x(?) |
ArrayAppendSequence | 100178 | 101944 | +1.8% | 0.98x |
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced | 86132 | 87894 | +2.0% | 0.98x(?) |
ObjectiveCBridgeFromNSArrayAnyObjectForced | 9810 | 10108 | +3.0% | 0.97x(?) |
ArrayAppendGenericStructs | 1184 | 1220 | +3.0% | 0.97x |
ObjectiveCBridgeStubFromNSStringRef | 148 | 152 | +2.7% | 0.97x(?) |
ArrayAppendOptionals | 1184 | 1222 | +3.2% | 0.97x |
ObjectiveCBridgeStubDateAccess | 1033 | 1062 | +2.8% | 0.97x |
ObjectiveCBridgeStubFromNSDateRef | 3808 | 3971 | +4.3% | 0.96x |
ProtocolDispatch | 5166 | 5371 | +4.0% | 0.96x |
ObjectiveCBridgeFromNSSetAnyObjectToString | 149636 | 156889 | +4.8% | 0.95x(?) |
ArrayAppend | 3248 | 3402 | +4.7% | 0.95x |
ArrayAppendArrayOfInt | 604 | 639 | +5.8% | 0.95x |
Build comment file:Optimized (O)
|
TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
---|---|---|---|---|
ByteSwap | 0 | 1 | +100000.0% | 0.00x |
ArrayAppendLazyMap | 846 | 1075 | +27.1% | 0.79x |
StringWithCString | 160169 | 198610 | +24.0% | 0.81x(?) |
CaptureProp | 4191 | 4565 | +8.9% | 0.92x |
ObjectiveCBridgeStubNSDateRefAccess | 310 | 338 | +9.0% | 0.92x |
Improvement (2)
TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
---|---|---|---|---|
RecursiveOwnedParameter | 2148 | 1939 | -9.7% | 1.11x |
ArrayAppendSequence | 1062 | 920 | -13.4% | 1.15x |
No Changes (136)
TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
---|---|---|---|---|
ObjectiveCBridgeFromNSString | 1817 | 1740 | -4.2% | 1.04x(?) |
DictionaryBridge | 3981 | 3850 | -3.3% | 1.03x(?) |
AnyHashableWithAClass | 63978 | 62273 | -2.7% | 1.03x |
PopFrontUnsafePointer | 9449 | 9167 | -3.0% | 1.03x(?) |
Calculator | 31 | 30 | -3.2% | 1.03x |
ObjectiveCBridgeStubFromNSDateRef | 3731 | 3651 | -2.1% | 1.02x |
ObjectiveCBridgeFromNSDictionaryAnyObject | 205347 | 202033 | -1.6% | 1.02x(?) |
ObjectiveCBridgeStubToNSDate | 13395 | 13118 | -2.1% | 1.02x(?) |
SetIsSubsetOf_OfObjects | 522 | 512 | -1.9% | 1.02x |
ObjectiveCBridgeFromNSDictionaryAnyObjectToString | 216431 | 214315 | -1.0% | 1.01x(?) |
ObjectiveCBridgeFromNSStringForced | 2677 | 2650 | -1.0% | 1.01x(?) |
StringHasPrefix | 743 | 736 | -0.9% | 1.01x(?) |
ArrayAppendGenericStructs | 1246 | 1235 | -0.9% | 1.01x(?) |
StrComplexWalk | 2904 | 2889 | -0.5% | 1.01x(?) |
ObjectiveCBridgeToNSArray | 30240 | 30074 | -0.6% | 1.01x(?) |
Hanoi | 3198 | 3177 | -0.7% | 1.01x |
ObjectiveCBridgeStubURLAppendPath | 255590 | 253947 | -0.6% | 1.01x(?) |
Dictionary | 742 | 734 | -1.1% | 1.01x |
NSDictionaryCastToSwift | 7031 | 6978 | -0.8% | 1.01x(?) |
142 | 3155463 | 3129992 | -0.8% | 1.01x |
NSStringConversion | 823 | 814 | -1.1% | 1.01x(?) |
ObjectiveCBridgeFromNSSetAnyObjectForced | 4636 | 4583 | -1.1% | 1.01x(?) |
SevenBoom | 1353 | 1345 | -0.6% | 1.01x(?) |
ObjectiveCBridgeStubNSDateMutationRef | 11995 | 11909 | -0.7% | 1.01x(?) |
ObjectiveCBridgeStubFromNSDate | 3443 | 3412 | -0.9% | 1.01x(?) |
ArraySubscript | 1435 | 1434 | -0.1% | 1.00x(?) |
ObjectiveCBridgeToNSString | 1071 | 1069 | -0.2% | 1.00x(?) |
DictionarySwapOfObjects | 6747 | 6753 | +0.1% | 1.00x(?) |
StackPromo | 21641 | 21634 | -0.0% | 1.00x(?) |
Integrate | 239 | 239 | +0.0% | 1.00x |
ClassArrayGetter | 12 | 12 | +0.0% | 1.00x |
Array2D | 2033 | 2038 | +0.2% | 1.00x(?) |
Histogram | 656 | 656 | +0.0% | 1.00x |
SortStrings | 1721 | 1714 | -0.4% | 1.00x |
ObjectiveCBridgeFromNSDictionaryAnyObjectForced | 5293 | 5294 | +0.0% | 1.00x(?) |
MonteCarloPi | 45134 | 45005 | -0.3% | 1.00x |
ObjectiveCBridgeFromNSArrayAnyObjectForced | 6226 | 6216 | -0.2% | 1.00x(?) |
Prims | 735 | 735 | +0.0% | 1.00x |
SortLettersInPlace | 976 | 972 | -0.4% | 1.00x(?) |
DictionarySwap | 629 | 627 | -0.3% | 1.00x |
ArrayOfGenericPOD | 220 | 220 | +0.0% | 1.00x |
Dictionary3OfObjects | 858 | 857 | -0.1% | 1.00x(?) |
RangeAssignment | 287 | 288 | +0.3% | 1.00x(?) |
SuperChars | 249747 | 250076 | +0.1% | 1.00x(?) |
XorLoop | 380 | 380 | +0.0% | 1.00x |
ArrayAppendReserved | 536 | 536 | +0.0% | 1.00x |
StringInterpolation | 10869 | 10845 | -0.2% | 1.00x(?) |
ObjectiveCBridgeStubToNSString | 1281 | 1282 | +0.1% | 1.00x(?) |
ArrayAppendStrings | 12149 | 12099 | -0.4% | 1.00x(?) |
ErrorHandling | 2919 | 2931 | +0.4% | 1.00x(?) |
ObjectiveCBridgeStubFromNSStringRef | 128 | 128 | +0.0% | 1.00x |
ObjectiveCBridgeStubFromNSString | 768 | 768 | +0.0% | 1.00x |
ProtocolDispatch | 3038 | 3040 | +0.1% | 1.00x(?) |
TypeFlood | 0 | 0 | +0.0% | 1.00x |
ObjectiveCBridgeFromNSSetAnyObject | 96162 | 96093 | -0.1% | 1.00x(?) |
AngryPhonebook | 2810 | 2814 | +0.1% | 1.00x(?) |
Dictionary3 | 511 | 513 | +0.4% | 1.00x(?) |
Dictionary2 | 2053 | 2047 | -0.3% | 1.00x(?) |
SetIntersect_OfObjects | 2291 | 2288 | -0.1% | 1.00x(?) |
ArrayOfRef | 3562 | 3547 | -0.4% | 1.00x(?) |
ObjectiveCBridgeStubURLAppendPathRef | 254423 | 253619 | -0.3% | 1.00x(?) |
ObjectiveCBridgeToNSSet | 16198 | 16151 | -0.3% | 1.00x(?) |
ObjectiveCBridgeStubDateMutation | 273 | 273 | +0.0% | 1.00x |
NSError | 324 | 325 | +0.3% | 1.00x(?) |
DictionaryOfObjects | 2286 | 2295 | +0.4% | 1.00x(?) |
StringEqualPointerComparison | 7301 | 7300 | -0.0% | 1.00x(?) |
PolymorphicCalls | 22 | 22 | +0.0% | 1.00x |
RC4 | 165 | 165 | +0.0% | 1.00x |
ObjectiveCBridgeStubToNSStringRef | 116 | 116 | +0.0% | 1.00x |
ArrayAppendOptionals | 1236 | 1242 | +0.5% | 1.00x(?) |
IterateData | 2539 | 2538 | -0.0% | 1.00x(?) |
DictionaryLiteral | 2742 | 2754 | +0.4% | 1.00x(?) |
OpenClose | 54 | 54 | +0.0% | 1.00x |
DictionaryRemoveOfObjects | 19620 | 19625 | +0.0% | 1.00x(?) |
UTF8Decode | 288 | 288 | +0.0% | 1.00x |
SetIsSubsetOf | 508 | 508 | +0.0% | 1.00x |
NopDeinit | 36648 | 36628 | -0.1% | 1.00x(?) |
ObjectiveCBridgeStubToArrayOfNSString | 29642 | 29538 | -0.3% | 1.00x(?) |
ObjectiveCBridgeFromNSArrayAnyObject | 76285 | 76443 | +0.2% | 1.00x(?) |
SetIntersect | 1073 | 1072 | -0.1% | 1.00x(?) |
SetExclusiveOr | 2618 | 2615 | -0.1% | 1.00x(?) |
ObjectiveCBridgeFromNSSetAnyObjectToString | 142721 | 142619 | -0.1% | 1.00x(?) |
ArrayInClass | 63 | 63 | +0.0% | 1.00x |
ArrayOfGenericRef | 3609 | 3605 | -0.1% | 1.00x(?) |
StringHasSuffix | 800 | 800 | +0.0% | 1.00x |
Phonebook | 7072 | 7055 | -0.2% | 1.00x(?) |
ObjectiveCBridgeStubDateAccess | 182 | 182 | +0.0% | 1.00x |
Sim2DArray | 277 | 277 | +0.0% | 1.00x |
SetExclusiveOr_OfObjects | 7831 | 7858 | +0.3% | 1.00x(?) |
ArrayAppendRepeatCol | 643 | 643 | +0.0% | 1.00x |
ObjectiveCBridgeToNSDictionary | 16804 | 16841 | +0.2% | 1.00x(?) |
MonteCarloE | 10572 | 10588 | +0.1% | 1.00x(?) |
SetUnion_OfObjects | 6633 | 6650 | +0.3% | 1.00x(?) |
StringHasSuffixUnicode | 63850 | 63586 | -0.4% | 1.00x |
Walsh | 323 | 323 | +0.0% | 1.00x |
ArrayAppend | 776 | 773 | -0.4% | 1.00x(?) |
DictionaryRemove | 4595 | 4584 | -0.2% | 1.00x(?) |
StringHasPrefixUnicode | 13447 | 13381 | -0.5% | 1.00x(?) |
MapReduce | 342 | 342 | +0.0% | 1.00x |
RGBHistogramOfObjects | 22007 | 21974 | -0.1% | 1.00x(?) |
RGBHistogram | 2805 | 2812 | +0.2% | 1.00x(?) |
ArrayAppendArrayOfInt | 599 | 599 | +0.0% | 1.00x |
ArrayOfPOD | 182 | 182 | +0.0% | 1.00x |
SetUnion | 3018 | 3005 | -0.4% | 1.00x(?) |
Chars | 626 | 625 | -0.2% | 1.00x(?) |
StringBuilder | 1318 | 1322 | +0.3% | 1.00x(?) |
ArrayValueProp2 | 6 | 6 | +0.0% | 1.00x |
BitCount | 1 | 1 | +0.0% | 1.00x |
ArrayLiteral | 1175 | 1179 | +0.3% | 1.00x(?) |
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced | 90638 | 90698 | +0.1% | 1.00x(?) |
StringWalk | 5891 | 5873 | -0.3% | 1.00x(?) |
ArrayValueProp | 6 | 6 | +0.0% | 1.00x |
ObjectiveCBridgeStubFromArrayOfNSString | 58566 | 58495 | -0.1% | 1.00x(?) |
GlobalClass | 0 | 0 | +0.0% | 1.00x |
Memset | 235 | 235 | +0.0% | 1.00x |
Dictionary2OfObjects | 3404 | 3413 | +0.3% | 1.00x(?) |
ArrayValueProp4 | 6 | 6 | +0.0% | 1.00x |
TwoSum | 1598 | 1593 | -0.3% | 1.00x(?) |
ArrayValueProp3 | 6 | 6 | +0.0% | 1.00x |
PopFrontArray | 1118 | 1133 | +1.3% | 0.99x(?) |
ObjectiveCBridgeFromNSArrayAnyObjectToString | 116771 | 117409 | +0.6% | 0.99x(?) |
StaticArray | 2614 | 2648 | +1.3% | 0.99x(?) |
ObjectAllocation | 153 | 154 | +0.7% | 0.99x(?) |
ProtocolDispatch2 | 159 | 160 | +0.6% | 0.99x |
HashTest | 1746 | 1757 | +0.6% | 0.99x(?) |
Join | 465 | 469 | +0.9% | 0.99x(?) |
ObjectiveCBridgeStubToNSDateRef | 3270 | 3298 | +0.9% | 0.99x(?) |
PopFrontArrayGeneric | 1119 | 1134 | +1.3% | 0.99x(?) |
SortStringsUnicode | 8103 | 8196 | +1.1% | 0.99x |
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced | 136344 | 137371 | +0.8% | 0.99x(?) |
LinkedList | 7210 | 7253 | +0.6% | 0.99x(?) |
ObjectiveCBridgeFromNSSetAnyObjectToStringForced | 107448 | 108267 | +0.8% | 0.99x(?) |
DeadArray | 184 | 185 | +0.5% | 0.99x |
ObjectiveCBridgeStubNSDataAppend | 2416 | 2440 | +1.0% | 0.99x(?) |
ObjectiveCBridgeStubDataAppend | 2954 | 3000 | +1.6% | 0.98x(?) |
StrToInt | 4892 | 4979 | +1.8% | 0.98x |
Regression (5)
TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
---|---|---|---|---|
ArrayAppendRepeatCol | 215527 | 507768 | +135.6% | 0.42x |
ArrayAppendLazyMap | 245146 | 531971 | +117.0% | 0.46x |
ObjectiveCBridgeStubDateMutation | 434 | 486 | +12.0% | 0.89x |
142 | 6081252 | 6636746 | +9.1% | 0.92x |
PopFrontUnsafePointer | 242843 | 258521 | +6.5% | 0.94x |
Improvement (3)
TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
---|---|---|---|---|
StrComplexWalk | 7850 | 7384 | -5.9% | 1.06x |
StringHasSuffix | 1748 | 1606 | -8.1% | 1.09x |
StringHasPrefix | 1686 | 1523 | -9.7% | 1.11x |
No Changes (135)
TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
---|---|---|---|---|
Calculator | 968 | 920 | -5.0% | 1.05x |
Phonebook | 64349 | 61572 | -4.3% | 1.05x(?) |
StringEqualPointerComparison | 9879 | 9487 | -4.0% | 1.04x |
ObjectiveCBridgeFromNSSetAnyObjectToString | 163398 | 156795 | -4.0% | 1.04x(?) |
SortStrings | 2770 | 2692 | -2.8% | 1.03x |
DictionaryBridge | 4128 | 3992 | -3.3% | 1.03x(?) |
ObjectiveCBridgeFromNSDictionaryAnyObject | 214688 | 209434 | -2.5% | 1.03x(?) |
ErrorHandling | 3894 | 3781 | -2.9% | 1.03x(?) |
TypeFlood | 211 | 205 | -2.8% | 1.03x(?) |
ObjectiveCBridgeStubURLAppendPathRef | 262677 | 256039 | -2.5% | 1.03x(?) |
ObjectiveCBridgeFromNSArrayAnyObjectToString | 124813 | 120838 | -3.2% | 1.03x(?) |
ObjectiveCBridgeStubFromArrayOfNSString | 60746 | 59131 | -2.7% | 1.03x(?) |
ObjectiveCBridgeStubFromNSString | 812 | 794 | -2.2% | 1.02x |
ObjectiveCBridgeFromNSSetAnyObjectToStringForced | 123782 | 121034 | -2.2% | 1.02x(?) |
NSStringConversion | 3009 | 2943 | -2.2% | 1.02x(?) |
StringWalk | 22038 | 21681 | -1.6% | 1.02x |
PopFrontArray | 24971 | 24773 | -0.8% | 1.01x |
AnyHashableWithAClass | 78528 | 77531 | -1.3% | 1.01x(?) |
ObjectiveCBridgeFromNSStringForced | 3073 | 3042 | -1.0% | 1.01x(?) |
ObjectiveCBridgeStubToNSDate | 14178 | 14021 | -1.1% | 1.01x(?) |
StringInterpolation | 15857 | 15739 | -0.7% | 1.01x(?) |
StringHasSuffixUnicode | 65381 | 65001 | -0.6% | 1.01x |
ObjectiveCBridgeFromNSSetAnyObject | 101829 | 100927 | -0.9% | 1.01x(?) |
ObjectiveCBridgeToNSArray | 30286 | 29894 | -1.3% | 1.01x(?) |
PopFrontArrayGeneric | 9765 | 9643 | -1.2% | 1.01x(?) |
PolymorphicCalls | 1143 | 1132 | -1.0% | 1.01x |
ObjectiveCBridgeStubToNSStringRef | 157 | 155 | -1.3% | 1.01x(?) |
Hanoi | 20323 | 20101 | -1.1% | 1.01x |
ObjectiveCBridgeStubURLAppendPath | 260904 | 257476 | -1.3% | 1.01x(?) |
SortStringsUnicode | 9265 | 9204 | -0.7% | 1.01x |
ObjectiveCBridgeFromNSArrayAnyObject | 79633 | 79170 | -0.6% | 1.01x(?) |
SetExclusiveOr | 30668 | 30409 | -0.8% | 1.01x(?) |
ObjectiveCBridgeFromNSString | 5143 | 5079 | -1.2% | 1.01x(?) |
LinkedList | 27950 | 27721 | -0.8% | 1.01x(?) |
ObjectiveCBridgeFromNSSetAnyObjectForced | 7602 | 7553 | -0.6% | 1.01x(?) |
DeadArray | 121076 | 120015 | -0.9% | 1.01x(?) |
ObjectiveCBridgeStubNSDataAppend | 2780 | 2741 | -1.4% | 1.01x |
SevenBoom | 1503 | 1486 | -1.1% | 1.01x(?) |
ArrayValueProp4 | 3004 | 2989 | -0.5% | 1.01x |
ObjectiveCBridgeStubNSDateMutationRef | 14201 | 14079 | -0.9% | 1.01x(?) |
TwoSum | 6568 | 6519 | -0.8% | 1.01x(?) |
ArraySubscript | 5626 | 5625 | -0.0% | 1.00x(?) |
ObjectiveCBridgeToNSString | 1099 | 1099 | +0.0% | 1.00x |
RecursiveOwnedParameter | 10844 | 10816 | -0.3% | 1.00x(?) |
Integrate | 368 | 368 | +0.0% | 1.00x |
ClassArrayGetter | 1266 | 1265 | -0.1% | 1.00x(?) |
Array2D | 812733 | 812131 | -0.1% | 1.00x(?) |
MonteCarloPi | 53729 | 53700 | -0.1% | 1.00x(?) |
StringWithCString | 155031 | 154317 | -0.5% | 1.00x |
ObjectiveCBridgeFromNSArrayAnyObjectForced | 10777 | 10733 | -0.4% | 1.00x(?) |
Prims | 13569 | 13562 | -0.1% | 1.00x(?) |
SortLettersInPlace | 2581 | 2569 | -0.5% | 1.00x(?) |
DictionarySwap | 7516 | 7534 | +0.2% | 1.00x(?) |
ArrayOfGenericPOD | 3427 | 3431 | +0.1% | 1.00x(?) |
Dictionary3OfObjects | 2260 | 2254 | -0.3% | 1.00x(?) |
RangeAssignment | 13289 | 13303 | +0.1% | 1.00x(?) |
ByteSwap | 9 | 9 | +0.0% | 1.00x |
XorLoop | 20020 | 20001 | -0.1% | 1.00x |
ObjectiveCBridgeStubToNSString | 1348 | 1342 | -0.5% | 1.00x(?) |
StaticArray | 35480 | 35655 | +0.5% | 1.00x(?) |
ProtocolDispatch2 | 444 | 444 | +0.0% | 1.00x |
HashTest | 5384 | 5381 | -0.1% | 1.00x(?) |
Dictionary3 | 1607 | 1609 | +0.1% | 1.00x(?) |
Dictionary2 | 4403 | 4416 | +0.3% | 1.00x(?) |
SetIntersect_OfObjects | 13955 | 13929 | -0.2% | 1.00x(?) |
Join | 1462 | 1465 | +0.2% | 1.00x(?) |
ArrayOfRef | 9412 | 9416 | +0.0% | 1.00x(?) |
NSError | 690 | 690 | +0.0% | 1.00x |
DictionaryOfObjects | 4880 | 4864 | -0.3% | 1.00x(?) |
MapReduce | 45473 | 45644 | +0.4% | 1.00x(?) |
IterateData | 10576 | 10580 | +0.0% | 1.00x(?) |
DictionaryLiteral | 16610 | 16591 | -0.1% | 1.00x(?) |
UTF8Decode | 43885 | 43754 | -0.3% | 1.00x(?) |
SetIsSubsetOf | 2458 | 2449 | -0.4% | 1.00x(?) |
Dictionary | 2147 | 2140 | -0.3% | 1.00x(?) |
NopDeinit | 58047 | 58079 | +0.1% | 1.00x(?) |
ObjectiveCBridgeStubToArrayOfNSString | 29777 | 29635 | -0.5% | 1.00x(?) |
SetIntersect | 15157 | 15127 | -0.2% | 1.00x(?) |
ObjectiveCBridgeStubDataAppend | 3333 | 3338 | +0.1% | 1.00x(?) |
RGBHistogramOfObjects | 93516 | 93409 | -0.1% | 1.00x(?) |
ObjectiveCBridgeStubNSDateRefAccess | 1254 | 1260 | +0.5% | 1.00x |
ArrayInClass | 3955 | 3954 | -0.0% | 1.00x(?) |
ArrayOfGenericRef | 10069 | 10041 | -0.3% | 1.00x(?) |
Sim2DArray | 14575 | 14583 | +0.1% | 1.00x(?) |
SetExclusiveOr_OfObjects | 46839 | 46834 | -0.0% | 1.00x(?) |
ObjectiveCBridgeToNSDictionary | 16976 | 16938 | -0.2% | 1.00x(?) |
MonteCarloE | 108856 | 108657 | -0.2% | 1.00x(?) |
SetUnion_OfObjects | 34398 | 34403 | +0.0% | 1.00x(?) |
RC4 | 9368 | 9368 | +0.0% | 1.00x |
Walsh | 13227 | 13204 | -0.2% | 1.00x(?) |
SetIsSubsetOf_OfObjects | 2315 | 2316 | +0.0% | 1.00x(?) |
DictionaryRemove | 17386 | 17318 | -0.4% | 1.00x |
StringHasPrefixUnicode | 14936 | 15005 | +0.5% | 1.00x(?) |
RGBHistogram | 44192 | 44170 | -0.1% | 1.00x(?) |
ArrayOfPOD | 2330 | 2327 | -0.1% | 1.00x(?) |
SetUnion | 18392 | 18410 | +0.1% | 1.00x(?) |
Chars | 5013 | 4998 | -0.3% | 1.00x |
BitCount | 96 | 96 | +0.0% | 1.00x |
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced | 91923 | 91892 | -0.0% | 1.00x(?) |
ArrayValueProp | 2629 | 2616 | -0.5% | 1.00x(?) |
GlobalClass | 0 | 0 | +0.0% | 1.00x |
Memset | 20657 | 20658 | +0.0% | 1.00x(?) |
Dictionary2OfObjects | 6264 | 6244 | -0.3% | 1.00x(?) |
ArrayAppendReserved | 3193 | 3196 | +0.1% | 1.00x(?) |
ArrayValueProp2 | 3143 | 3141 | -0.1% | 1.00x(?) |
ArrayValueProp3 | 3065 | 3064 | -0.0% | 1.00x(?) |
ObjectiveCBridgeStubFromNSDate | 3803 | 3796 | -0.2% | 1.00x(?) |
DictionarySwapOfObjects | 21318 | 21515 | +0.9% | 0.99x(?) |
StackPromo | 128304 | 129868 | +1.2% | 0.99x(?) |
ObjectiveCBridgeFromNSDictionaryAnyObjectToString | 223615 | 225789 | +1.0% | 0.99x(?) |
Histogram | 11686 | 11774 | +0.8% | 0.99x(?) |
ObjectiveCBridgeFromNSDictionaryAnyObjectForced | 7703 | 7745 | +0.6% | 0.99x(?) |
SuperChars | 275533 | 278075 | +0.9% | 0.99x(?) |
ArrayAppendStrings | 11827 | 11907 | +0.7% | 0.99x |
ObjectiveCBridgeStubFromNSStringRef | 159 | 160 | +0.6% | 0.99x |
ObjectAllocation | 560 | 568 | +1.4% | 0.99x(?) |
ArrayLiteral | 1240 | 1249 | +0.7% | 0.99x |
ObjectiveCBridgeStubToNSDateRef | 3329 | 3362 | +1.0% | 0.99x(?) |
CaptureProp | 116402 | 117036 | +0.5% | 0.99x |
DictionaryRemoveOfObjects | 46910 | 47254 | +0.7% | 0.99x(?) |
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced | 142873 | 144564 | +1.2% | 0.99x(?) |
NSDictionaryCastToSwift | 8359 | 8435 | +0.9% | 0.99x(?) |
StringBuilder | 2708 | 2729 | +0.8% | 0.99x(?) |
ObjectiveCBridgeToNSSet | 16570 | 16697 | +0.8% | 0.99x(?) |
StrToInt | 5740 | 5793 | +0.9% | 0.99x |
AngryPhonebook | 2990 | 3017 | +0.9% | 0.99x |
OpenClose | 437 | 446 | +2.1% | 0.98x |
ArrayAppendSequence | 106127 | 108115 | +1.9% | 0.98x |
ObjectiveCBridgeStubDateAccess | 1095 | 1125 | +2.7% | 0.97x |
ObjectiveCBridgeStubFromNSDateRef | 4027 | 4208 | +4.5% | 0.96x |
ArrayAppendGenericStructs | 1307 | 1355 | +3.7% | 0.96x |
ProtocolDispatch | 5471 | 5671 | +3.7% | 0.96x |
ArrayAppendOptionals | 1307 | 1362 | +4.2% | 0.96x |
ArrayAppend | 3441 | 3618 | +5.1% | 0.95x |
ArrayAppendArrayOfInt | 642 | 677 | +5.5% | 0.95x |
Cleaning out some old JIRAs, don't want these to regress...
…on-tests Add test cases for a few bugs that seem to be fixed already
…atePairedRequirements Add test case for crash triggered in `swift::GenericSignature::enumeratePairedRequirements`. Current number of unresolved compiler crashers: 20 (5389 resolved) Assertion failure in `llvm/include/llvm/ADT/Optional.h (line 138)`: ``` Assertion `hasVal' failed. When executing: T &&llvm::Optional<swift::ProtocolConformanceRef>::operator*() && [T = swift::ProtocolConformanceRef] ``` Assertion context: ``` return hasValue() ? getValue() : std::forward<U>(value); } #if LLVM_HAS_RVALUE_REFERENCE_THIS T&& getValue() && { assert(hasVal); return std::move(*getPointer()); } T&& operator*() && { assert(hasVal); return std::move(*getPointer()); } template <typename U> T getValueOr(U &&value) && { return hasValue() ? std::move(getValue()) : std::forward<U>(value); } ``` Stack trace: ``` 0 0x0000000003512118 llvm::sys::PrintStackTrace(llvm::raw_ostream&) (/path/to/swift/bin/swift+0x3512118) 1 0x0000000003512856 SignalHandler(int) (/path/to/swift/bin/swift+0x3512856) 2 0x00007f07b159e3e0 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x113e0) 3 0x00007f07afccc428 gsignal /build/glibc-Qz8a69/glibc-2.23/signal/../sysdeps/unix/sysv/linux/raise.c:54:0 4 0x00007f07afcce02a abort /build/glibc-Qz8a69/glibc-2.23/stdlib/abort.c:91:0 5 0x00007f07afcc4bd7 __assert_fail_base /build/glibc-Qz8a69/glibc-2.23/assert/assert.c:92:0 6 0x00007f07afcc4c82 (/lib/x86_64-linux-gnu/libc.so.6+0x2dc82) 7 0x0000000000e4ee90 bool llvm::function_ref<bool (swift::Type, llvm::ArrayRef<swift::Requirement>)>::callback_fn<swift::GenericSignature::getSubstitutions(llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, llvm::SmallVectorImpl<swift::Substitution>&) const::$_3>(long, swift::Type, llvm::ArrayRef<swift::Requirement>) (/path/to/swift/bin/swift+0xe4ee90) 8 0x0000000000e4da41 swift::GenericSignature::enumeratePairedRequirements(llvm::function_ref<bool (swift::Type, llvm::ArrayRef<swift::Requirement>)>) const (/path/to/swift/bin/swift+0xe4da41) 9 0x0000000000e4dd26 swift::GenericSignature::getSubstitutions(llvm::DenseMap<swift::SubstitutableType*, swift::Type, llvm::DenseMapInfo<swift::SubstitutableType*>, llvm::detail::DenseMapPair<swift::SubstitutableType*, swift::Type> > const&, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, llvm::SmallVectorImpl<swift::Substitution>&) const (/path/to/swift/bin/swift+0xe4dd26) 10 0x0000000000c29986 swift::constraints::Solution::computeSubstitutions(swift::Type, swift::DeclContext*, swift::Type, swift::constraints::ConstraintLocator*, llvm::SmallVectorImpl<swift::Substitution>&) const (/path/to/swift/bin/swift+0xc29986) 11 0x0000000000c30c90 (anonymous namespace)::ExprRewriter::buildMemberRef(swift::Expr*, swift::Type, swift::SourceLoc, swift::ValueDecl*, swift::DeclNameLoc, swift::Type, swift::constraints::ConstraintLocatorBuilder, swift::constraints::ConstraintLocatorBuilder, bool, swift::FunctionRefKind, swift::AccessSemantics, bool) (/path/to/swift/bin/swift+0xc30c90) 12 0x0000000000c41461 swift::ASTVisitor<(anonymous namespace)::ExprRewriter, swift::Expr*, void, void, void, void, void>::visit(swift::Expr*) (/path/to/swift/bin/swift+0xc41461) 13 0x0000000000c2f774 (anonymous namespace)::ExprRewriter::walkToExprPost(swift::Expr*) (/path/to/swift/bin/swift+0xc2f774) 14 0x0000000000c35021 (anonymous namespace)::ExprWalker::walkToExprPost(swift::Expr*) (/path/to/swift/bin/swift+0xc35021) 15 0x0000000000e0c387 swift::ASTVisitor<(anonymous namespace)::Traversal, swift::Expr*, swift::Stmt*, bool, swift::Pattern*, bool, void>::visit(swift::Expr*) (/path/to/swift/bin/swift+0xe0c387) 16 0x0000000000e0ad1b swift::Expr::walk(swift::ASTWalker&) (/path/to/swift/bin/swift+0xe0ad1b) 17 0x0000000000c2c268 swift::constraints::ConstraintSystem::applySolution(swift::constraints::Solution&, swift::Expr*, swift::Type, bool, bool, bool) (/path/to/swift/bin/swift+0xc2c268) 18 0x0000000000cf5433 swift::TypeChecker::typeCheckExpression(swift::Expr*&, swift::DeclContext*, swift::TypeLoc, swift::ContextualTypePurpose, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem*) (/path/to/swift/bin/swift+0xcf5433) 19 0x0000000000c5a791 (anonymous namespace)::FailureDiagnosis::typeCheckChildIndependently(swift::Expr*, swift::Type, swift::ContextualTypePurpose, swift::OptionSet<TCCFlags, unsigned int>, swift::ExprTypeCheckListener*, bool) (/path/to/swift/bin/swift+0xc5a791) 20 0x0000000000c63c40 (anonymous namespace)::FailureDiagnosis::typeCheckArgumentChildIndependently(swift::Expr*, swift::Type, (anonymous namespace)::CalleeCandidateInfo const&, swift::OptionSet<TCCFlags, unsigned int>) (/path/to/swift/bin/swift+0xc63c40) 21 0x0000000000c70920 (anonymous namespace)::FailureDiagnosis::visitApplyExpr(swift::ApplyExpr*) (/path/to/swift/bin/swift+0xc70920) 22 0x0000000000c567a3 swift::ASTVisitor<(anonymous namespace)::FailureDiagnosis, bool, void, void, void, void, void>::visit(swift::Expr*) (/path/to/swift/bin/swift+0xc567a3) 23 0x0000000000c4ec2a swift::constraints::ConstraintSystem::diagnoseFailureForExpr(swift::Expr*) (/path/to/swift/bin/swift+0xc4ec2a) 24 0x0000000000c55ced swift::constraints::ConstraintSystem::salvage(llvm::SmallVectorImpl<swift::constraints::Solution>&, swift::Expr*) (/path/to/swift/bin/swift+0xc55ced) 25 0x0000000000cf1ed8 swift::TypeChecker::solveForExpression(swift::Expr*&, swift::DeclContext*, swift::Type, swift::FreeTypeVariableBinding, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem&, llvm::SmallVectorImpl<swift::constraints::Solution>&, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>) (/path/to/swift/bin/swift+0xcf1ed8) 26 0x0000000000cf539d swift::TypeChecker::typeCheckExpression(swift::Expr*&, swift::DeclContext*, swift::TypeLoc, swift::ContextualTypePurpose, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem*) (/path/to/swift/bin/swift+0xcf539d) 27 0x0000000000c0cf9e swift::ASTVisitor<(anonymous namespace)::StmtChecker, void, swift::Stmt*, void, void, void, void>::visit(swift::Stmt*) (/path/to/swift/bin/swift+0xc0cf9e) 28 0x0000000000c0c7c6 swift::TypeChecker::typeCheckTopLevelCodeDecl(swift::TopLevelCodeDecl*) (/path/to/swift/bin/swift+0xc0c7c6) 29 0x0000000000c21c70 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int) (/path/to/swift/bin/swift+0xc21c70) 30 0x0000000000996736 swift::CompilerInstance::performSema() (/path/to/swift/bin/swift+0x996736) 31 0x000000000047c5aa swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (/path/to/swift/bin/swift+0x47c5aa) 32 0x000000000043ade7 main (/path/to/swift/bin/swift+0x43ade7) 33 0x00007f07afcb7830 __libc_start_main /build/glibc-Qz8a69/glibc-2.23/csu/../csu/libc-start.c:325:0 34 0x0000000000438229 _start (/path/to/swift/bin/swift+0x438229) ```
…reachable-executed-at-swift-lib-sema-csapply-cpp-5466 [swiftc (20 vs. 5389)] Add crasher in swift::GenericSignature::enumeratePairedRequirements
…pendIdentifier(...) Add test case for crash triggered in `swift::NewMangling::Mangler::appendIdentifier(...)`. Current number of unresolved compiler crashers: 21 (5389 resolved) /cc @eeckstein - just wanted to let you know that this crasher caused an assertion failure for the assertion `!isDigit(ident[Pos]) && "first char of sub-string may not be a digit"` added on 2016-12-02 by you in commit 684092d :-) Assertion failure in [`include/swift/Basic/ManglingUtils.h (line 187)`](https://github.com/apple/swift/blob/master/include/swift/Basic/ManglingUtils.h#L187): ``` Assertion `!isDigit(ident[Pos]) && "first char of sub-string may not be a digit"' failed. When executing: void swift::NewMangling::mangleIdentifier(Mangler &, llvm::StringRef) [Mangler = swift::NewMangling::Mangler] ``` Assertion context: ``` // Mangle the sub-string up to the next word substitution (or to the end // of the identifier - that's why we added the dummy-word). // The first thing: we add the encoded sub-string length. M.Buffer << (Repl.StringPos - Pos); assert(!isDigit(ident[Pos]) && "first char of sub-string may not be a digit"); do { // Update the start position of new added words, so that they refer to // the begin of the whole mangled Buffer. if (WordsInBuffer < M.Words.size() && M.Words[WordsInBuffer].start == Pos) { ``` Stack trace: ``` 0 0x0000000003512118 llvm::sys::PrintStackTrace(llvm::raw_ostream&) (/path/to/swift/bin/swift+0x3512118) 1 0x0000000003512856 SignalHandler(int) (/path/to/swift/bin/swift+0x3512856) 2 0x00007f97fd01b3e0 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x113e0) 3 0x00007f97fb749428 gsignal /build/glibc-Qz8a69/glibc-2.23/signal/../sysdeps/unix/sysv/linux/raise.c:54:0 4 0x00007f97fb74b02a abort /build/glibc-Qz8a69/glibc-2.23/stdlib/abort.c:91:0 5 0x00007f97fb741bd7 __assert_fail_base /build/glibc-Qz8a69/glibc-2.23/assert/assert.c:92:0 6 0x00007f97fb741c82 (/lib/x86_64-linux-gnu/libc.so.6+0x2dc82) 7 0x0000000000efb1ec void swift::NewMangling::mangleIdentifier<swift::NewMangling::Mangler>(swift::NewMangling::Mangler&, llvm::StringRef) (/path/to/swift/bin/swift+0xefb1ec) 8 0x0000000000efa72d swift::NewMangling::Mangler::appendIdentifier(llvm::StringRef) (/path/to/swift/bin/swift+0xefa72d) 9 0x0000000000dcef51 swift::NewMangling::ASTMangler::appendDeclName(swift::ValueDecl const*) (/path/to/swift/bin/swift+0xdcef51) 10 0x0000000000dcbbc6 swift::NewMangling::ASTMangler::appendEntity(swift::ValueDecl const*, llvm::StringRef, bool) (/path/to/swift/bin/swift+0xdcbbc6) 11 0x0000000000dccb0e swift::NewMangling::ASTMangler::mangleGlobalVariableFull[abi:cxx11](swift::VarDecl const*) (/path/to/swift/bin/swift+0xdccb0e) 12 0x00000000006694b5 swift::Lowering::SILGenModule::getSILGlobalVariable(swift::VarDecl*, swift::ForDefinition_t) (/path/to/swift/bin/swift+0x6694b5) 13 0x000000000063a3e5 swift::Lowering::SILGenFunction::emitInitializationForVarDecl(swift::VarDecl*) (/path/to/swift/bin/swift+0x63a3e5) 14 0x000000000063c0a1 swift::ASTVisitor<(anonymous namespace)::InitializationForPattern, void, void, void, std::unique_ptr<swift::Lowering::Initialization, std::default_delete<swift::Lowering::Initialization> >, void, void>::visit(swift::Pattern*) (/path/to/swift/bin/swift+0x63c0a1) 15 0x000000000063b164 swift::Lowering::SILGenFunction::emitPatternBinding(swift::PatternBindingDecl*, unsigned int) (/path/to/swift/bin/swift+0x63b164) 16 0x000000000063b2dd swift::Lowering::SILGenFunction::visitPatternBindingDecl(swift::PatternBindingDecl*) (/path/to/swift/bin/swift+0x63b2dd) 17 0x000000000061e0ac swift::Lowering::SILGenModule::visitTopLevelCodeDecl(swift::TopLevelCodeDecl*) (/path/to/swift/bin/swift+0x61e0ac) 18 0x000000000061e96b swift::Lowering::SILGenModule::emitSourceFile(swift::SourceFile*, unsigned int) (/path/to/swift/bin/swift+0x61e96b) 19 0x000000000061f95b swift::SILModule::constructSIL(swift::ModuleDecl*, swift::SILOptions&, swift::FileUnit*, llvm::Optional<unsigned int>, bool, bool) (/path/to/swift/bin/swift+0x61f95b) 20 0x000000000061ffb5 swift::performSILGeneration(swift::FileUnit&, swift::SILOptions&, llvm::Optional<unsigned int>, bool) (/path/to/swift/bin/swift+0x61ffb5) 21 0x000000000047e7a5 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (/path/to/swift/bin/swift+0x47e7a5) 22 0x000000000043ade7 main (/path/to/swift/bin/swift+0x43ade7) 23 0x00007f97fb734830 __libc_start_main /build/glibc-Qz8a69/glibc-2.23/csu/../csu/libc-start.c:325:0 24 0x0000000000438229 _start (/path/to/swift/bin/swift+0x438229) ```
…rst-char-of-sub-string-may-not-be-a-digit [swiftc (21 vs. 5389)] Add crasher in swift::NewMangling::Mangler::appendIdentifier(...)
…tisfy(...) Add test case for crash triggered in `swift::IterativeTypeChecker::satisfy(...)`. Current number of unresolved compiler crashers: 22 (5389 resolved) /cc @DougGregor - just wanted to let you know that this crasher caused an assertion failure for the assertion `isSatisfied(request)` added on 2015-10-09 by you in commit b49964e :-) Assertion failure in [`lib/Sema/IterativeTypeChecker.cpp (line 107)`](https://github.com/apple/swift/blob/master/lib/Sema/IterativeTypeChecker.cpp#L107): ``` Assertion `isSatisfied(request)' failed. When executing: void swift::IterativeTypeChecker::satisfy(swift::TypeCheckRequest) ``` Assertion context: ``` return true; }); // If there were no unsatisfied dependencies, we're done. if (unsatisfied.empty()) { assert(isSatisfied(request)); break; } // Recurse to satisfy any unsatisfied dependencies. // FIXME: Don't recurse in the iterative type checker, silly! ``` Stack trace: ``` 0 0x0000000003512118 llvm::sys::PrintStackTrace(llvm::raw_ostream&) (/path/to/swift/bin/swift+0x3512118) 1 0x0000000003512856 SignalHandler(int) (/path/to/swift/bin/swift+0x3512856) 2 0x00007fb14edc23e0 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x113e0) 3 0x00007fb14d4f0428 gsignal /build/glibc-Qz8a69/glibc-2.23/signal/../sysdeps/unix/sysv/linux/raise.c:54:0 4 0x00007fb14d4f202a abort /build/glibc-Qz8a69/glibc-2.23/stdlib/abort.c:91:0 5 0x00007fb14d4e8bd7 __assert_fail_base /build/glibc-Qz8a69/glibc-2.23/assert/assert.c:92:0 6 0x00007fb14d4e8c82 (/lib/x86_64-linux-gnu/libc.so.6+0x2dc82) 7 0x0000000000d76c99 (/path/to/swift/bin/swift+0xd76c99) 8 0x0000000000d76b3b swift::IterativeTypeChecker::satisfy(swift::TypeCheckRequest) (/path/to/swift/bin/swift+0xd76b3b) 9 0x0000000000d01ae9 swift::TypeChecker::resolveInheritanceClause(llvm::PointerUnion<swift::TypeDecl*, swift::ExtensionDecl*>) (/path/to/swift/bin/swift+0xd01ae9) 10 0x0000000000d7e387 swift::ArchetypeBuilder::addAbstractTypeParamRequirements(swift::AbstractTypeParamDecl*, swift::ArchetypeBuilder::PotentialArchetype*, swift::RequirementSource::Kind, llvm::SmallPtrSetImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0xd7e387) 11 0x0000000000d7e74f swift::ArchetypeBuilder::addConformanceRequirement(swift::ArchetypeBuilder::PotentialArchetype*, swift::ProtocolDecl*, swift::RequirementSource, llvm::SmallPtrSetImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0xd7e74f) 12 0x0000000000d842bd bool llvm::function_ref<bool (swift::Type, swift::SourceLoc)>::callback_fn<swift::ArchetypeBuilder::addAbstractTypeParamRequirements(swift::AbstractTypeParamDecl*, swift::ArchetypeBuilder::PotentialArchetype*, swift::RequirementSource::Kind, llvm::SmallPtrSetImpl<swift::ProtocolDecl*>&)::$_5>(long, swift::Type, swift::SourceLoc) (/path/to/swift/bin/swift+0xd842bd) 13 0x0000000000d8445f std::_Function_handler<void (swift::Type, swift::SourceLoc), swift::ArchetypeBuilder::visitInherited(llvm::ArrayRef<swift::TypeLoc>, llvm::function_ref<bool (swift::Type, swift::SourceLoc)>)::$_6>::_M_invoke(std::_Any_data const&, swift::Type&&, swift::SourceLoc&&) (/path/to/swift/bin/swift+0xd8445f) 14 0x0000000000d7f829 swift::ArchetypeBuilder::visitInherited(llvm::ArrayRef<swift::TypeLoc>, llvm::function_ref<bool (swift::Type, swift::SourceLoc)>) (/path/to/swift/bin/swift+0xd7f829) 15 0x0000000000d7e3cd swift::ArchetypeBuilder::addAbstractTypeParamRequirements(swift::AbstractTypeParamDecl*, swift::ArchetypeBuilder::PotentialArchetype*, swift::RequirementSource::Kind, llvm::SmallPtrSetImpl<swift::ProtocolDecl*>&) (/path/to/swift/bin/swift+0xd7e3cd) 16 0x0000000000d7e04f swift::ArchetypeBuilder::addGenericParameterRequirements(swift::GenericTypeParamDecl*) (/path/to/swift/bin/swift+0xd7e04f) 17 0x0000000000d2fcc6 swift::TypeChecker::checkGenericParamList(swift::ArchetypeBuilder*, swift::GenericParamList*, swift::GenericSignature*, swift::GenericTypeResolver*) (/path/to/swift/bin/swift+0xd2fcc6) 18 0x0000000000d31eea swift::TypeChecker::checkGenericEnvironment(swift::GenericParamList*, swift::DeclContext*, swift::GenericSignature*, bool, llvm::function_ref<void (swift::ArchetypeBuilder&)>) (/path/to/swift/bin/swift+0xd31eea) 19 0x0000000000d32286 swift::TypeChecker::validateGenericTypeSignature(swift::GenericTypeDecl*) (/path/to/swift/bin/swift+0xd32286) 20 0x0000000000d04a4f swift::TypeChecker::validateDecl(swift::ValueDecl*) (/path/to/swift/bin/swift+0xd04a4f) 21 0x0000000000d04570 swift::TypeChecker::validateDecl(swift::ValueDecl*) (/path/to/swift/bin/swift+0xd04570) 22 0x0000000000e6b025 swift::namelookup::ResolutionKind recordImportDecls<llvm::SmallSet<swift::CanType, 4u, (anonymous namespace)::SortCanType> >(swift::LazyResolver*, llvm::SmallVectorImpl<swift::ValueDecl*>&, llvm::ArrayRef<swift::ValueDecl*>, llvm::SmallSet<swift::CanType, 4u, (anonymous namespace)::SortCanType>&, swift::namelookup::ResolutionKind) (/path/to/swift/bin/swift+0xe6b025) 23 0x0000000000e691be void lookupInModule<llvm::SmallSet<swift::CanType, 4u, (anonymous namespace)::SortCanType>, swift::namelookup::lookupInModule(swift::ModuleDecl*, llvm::ArrayRef<std::pair<swift::Identifier, swift::SourceLoc> >, swift::DeclName, llvm::SmallVectorImpl<swift::ValueDecl*>&, swift::NLKind, swift::namelookup::ResolutionKind, swift::LazyResolver*, swift::DeclContext const*, llvm::ArrayRef<std::pair<llvm::ArrayRef<std::pair<swift::Identifier, swift::SourceLoc> >, swift::ModuleDecl*> >)::$_0>(swift::ModuleDecl*, llvm::ArrayRef<std::pair<swift::Identifier, swift::SourceLoc> >, llvm::SmallVectorImpl<swift::ValueDecl*>&, swift::namelookup::ResolutionKind, bool, swift::LazyResolver*, llvm::SmallDenseMap<std::pair<llvm::ArrayRef<std::pair<swift::Identifier, swift::SourceLoc> >, swift::ModuleDecl*>, llvm::TinyPtrVector<swift::ValueDecl*>, 32u, llvm::DenseMapInfo<std::pair<llvm::ArrayRef<std::pair<swift::Identifier, swift::SourceLoc> >, swift::ModuleDecl*> >, llvm::detail::DenseMapPair<std::pair<llvm::ArrayRef<std::pair<swift::Identifier, swift::SourceLoc> >, swift::ModuleDecl*>, llvm::TinyPtrVector<swift::ValueDecl*> > >&, swift::DeclContext const*, bool, llvm::ArrayRef<std::pair<llvm::ArrayRef<std::pair<swift::Identifier, swift::SourceLoc> >, swift::ModuleDecl*> >, swift::namelookup::lookupInModule(swift::ModuleDecl*, llvm::ArrayRef<std::pair<swift::Identifier, swift::SourceLoc> >, swift::DeclName, llvm::SmallVectorImpl<swift::ValueDecl*>&, swift::NLKind, swift::namelookup::ResolutionKind, swift::LazyResolver*, swift::DeclContext const*, llvm::ArrayRef<std::pair<llvm::ArrayRef<std::pair<swift::Identifier, swift::SourceLoc> >, swift::ModuleDecl*> >)::$_0) (/path/to/swift/bin/swift+0xe691be) 24 0x0000000000e68a77 swift::namelookup::lookupInModule(swift::ModuleDecl*, llvm::ArrayRef<std::pair<swift::Identifier, swift::SourceLoc> >, swift::DeclName, llvm::SmallVectorImpl<swift::ValueDecl*>&, swift::NLKind, swift::namelookup::ResolutionKind, swift::LazyResolver*, swift::DeclContext const*, llvm::ArrayRef<std::pair<llvm::ArrayRef<std::pair<swift::Identifier, swift::SourceLoc> >, swift::ModuleDecl*> >) (/path/to/swift/bin/swift+0xe68a77) 25 0x0000000000e70752 swift::UnqualifiedLookup::UnqualifiedLookup(swift::DeclName, swift::DeclContext*, swift::LazyResolver*, bool, swift::SourceLoc, bool, bool, bool) (/path/to/swift/bin/swift+0xe70752) 26 0x0000000000d33f1b swift::TypeChecker::lookupUnqualified(swift::DeclContext*, swift::DeclName, swift::SourceLoc, swift::OptionSet<swift::NameLookupFlags, unsigned int>) (/path/to/swift/bin/swift+0xd33f1b) 27 0x0000000000cf041f swift::TypeChecker::resolveDeclRefExpr(swift::UnresolvedDeclRefExpr*, swift::DeclContext*) (/path/to/swift/bin/swift+0xcf041f) 28 0x0000000000cfcdd2 (anonymous namespace)::PreCheckExpression::walkToExprPre(swift::Expr*) (/path/to/swift/bin/swift+0xcfcdd2) 29 0x0000000000e0df70 (anonymous namespace)::Traversal::visitApplyExpr(swift::ApplyExpr*) (/path/to/swift/bin/swift+0xe0df70) 30 0x0000000000e0ad1b swift::Expr::walk(swift::ASTWalker&) (/path/to/swift/bin/swift+0xe0ad1b) 31 0x0000000000cf1dd5 swift::TypeChecker::solveForExpression(swift::Expr*&, swift::DeclContext*, swift::Type, swift::FreeTypeVariableBinding, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem&, llvm::SmallVectorImpl<swift::constraints::Solution>&, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>) (/path/to/swift/bin/swift+0xcf1dd5) 32 0x0000000000cf539d swift::TypeChecker::typeCheckExpression(swift::Expr*&, swift::DeclContext*, swift::TypeLoc, swift::ContextualTypePurpose, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem*) (/path/to/swift/bin/swift+0xcf539d) 33 0x0000000000cf90e1 swift::TypeChecker::typeCheckBinding(swift::Pattern*&, swift::Expr*&, swift::DeclContext*, bool) (/path/to/swift/bin/swift+0xcf90e1) 34 0x0000000000cf92ad swift::TypeChecker::typeCheckPatternBinding(swift::PatternBindingDecl*, unsigned int, bool) (/path/to/swift/bin/swift+0xcf92ad) 35 0x0000000000d0e517 validatePatternBindingDecl(swift::TypeChecker&, swift::PatternBindingDecl*, unsigned int) (/path/to/swift/bin/swift+0xd0e517) 36 0x0000000000d0a65d (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0xd0a65d) 37 0x0000000000d178fb (anonymous namespace)::DeclChecker::visitClassDecl(swift::ClassDecl*) (/path/to/swift/bin/swift+0xd178fb) 38 0x0000000000d0a5b4 (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0xd0a5b4) 39 0x0000000000d0a4e3 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) (/path/to/swift/bin/swift+0xd0a4e3) 40 0x0000000000c21bf5 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int) (/path/to/swift/bin/swift+0xc21bf5) 41 0x0000000000996736 swift::CompilerInstance::performSema() (/path/to/swift/bin/swift+0x996736) 42 0x000000000047c5aa swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (/path/to/swift/bin/swift+0x47c5aa) 43 0x000000000043ade7 main (/path/to/swift/bin/swift+0x43ade7) 44 0x00007fb14d4db830 __libc_start_main /build/glibc-Qz8a69/glibc-2.23/csu/../csu/libc-start.c:325:0 45 0x0000000000438229 _start (/path/to/swift/bin/swift+0x438229) ```
…satisfied-request [swiftc (22 vs. 5389)] Add crasher in swift::IterativeTypeChecker::satisfy(...)
…InContext Add test case for crash triggered in `swift::TypeChecker::resolveTypeInContext`. Current number of unresolved compiler crashers: 23 (5389 resolved) /cc @slavapestov - just wanted to let you know that this crasher caused an assertion failure for the assertion `false && "Should have found context by now"` added on 2016-12-06 by you in commit fdaa886 :-) Assertion failure in [`lib/Sema/TypeCheckType.cpp (line 325)`](https://github.com/apple/swift/blob/master/lib/Sema/TypeCheckType.cpp#L325): ``` Assertion `false && "Should have found context by now"' failed. When executing: std::tuple<DeclContext *, NominalTypeDecl *, bool> findDeclContextForType(swift::TypeChecker &, swift::TypeDecl *, swift::DeclContext *, TypeResolutionOptions) ``` Assertion context: ``` // or associated type from a context outside a ProtocolDecl. if (isa<ProtocolDecl>(parentDC) && isa<AbstractTypeParamDecl>(typeDecl)) return std::make_tuple(nullptr, nullptr, false); } assert(false && "Should have found context by now"); return std::make_tuple(nullptr, nullptr, false); } Type TypeChecker::resolveTypeInContext( TypeDecl *typeDecl, ``` Stack trace: ``` 0 0x0000000003512118 llvm::sys::PrintStackTrace(llvm::raw_ostream&) (/path/to/swift/bin/swift+0x3512118) 1 0x0000000003512856 SignalHandler(int) (/path/to/swift/bin/swift+0x3512856) 2 0x00007fa33d95b3e0 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x113e0) 3 0x00007fa33c089428 gsignal /build/glibc-Qz8a69/glibc-2.23/signal/../sysdeps/unix/sysv/linux/raise.c:54:0 4 0x00007fa33c08b02a abort /build/glibc-Qz8a69/glibc-2.23/stdlib/abort.c:91:0 5 0x00007fa33c081bd7 __assert_fail_base /build/glibc-Qz8a69/glibc-2.23/assert/assert.c:92:0 6 0x00007fa33c081c82 (/lib/x86_64-linux-gnu/libc.so.6+0x2dc82) 7 0x0000000000c11d39 swift::TypeChecker::resolveTypeInContext(swift::TypeDecl*, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, bool, swift::GenericTypeResolver*) (/path/to/swift/bin/swift+0xc11d39) 8 0x0000000000c19498 resolveTypeDecl(swift::TypeChecker&, swift::TypeDecl*, swift::SourceLoc, swift::DeclContext*, swift::GenericIdentTypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0xc19498) 9 0x0000000000c1909d resolveTopLevelIdentTypeComponent(swift::TypeChecker&, swift::DeclContext*, swift::ComponentIdentTypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, bool, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0xc1909d) 10 0x0000000000c138f9 resolveIdentTypeComponent(swift::TypeChecker&, swift::DeclContext*, llvm::ArrayRef<swift::ComponentIdentTypeRepr*>, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, bool, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0xc138f9) 11 0x0000000000c13323 swift::TypeChecker::resolveIdentifierType(swift::DeclContext*, swift::IdentTypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, bool, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0xc13323) 12 0x0000000000c14357 (anonymous namespace)::TypeResolver::resolveType(swift::TypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>) (/path/to/swift/bin/swift+0xc14357) 13 0x0000000000c1425c swift::TypeChecker::resolveType(swift::TypeRepr*, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0xc1425c) 14 0x0000000000c129fa swift::TypeChecker::validateType(swift::TypeLoc&, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0xc129fa) 15 0x0000000000d37249 validateParameterType(swift::ParamDecl*, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver&, swift::TypeChecker&) (/path/to/swift/bin/swift+0xd37249) 16 0x0000000000d370f9 swift::TypeChecker::typeCheckParameterList(swift::ParameterList*, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver&) (/path/to/swift/bin/swift+0xd370f9) 17 0x0000000000d30eea checkGenericFuncSignature(swift::TypeChecker&, swift::ArchetypeBuilder*, swift::AbstractFunctionDecl*, swift::GenericTypeResolver&) (/path/to/swift/bin/swift+0xd30eea) 18 0x0000000000d3024e swift::TypeChecker::validateGenericFuncSignature(swift::AbstractFunctionDecl*) (/path/to/swift/bin/swift+0xd3024e) 19 0x0000000000d1aceb (anonymous namespace)::DeclChecker::visitFuncDecl(swift::FuncDecl*) (/path/to/swift/bin/swift+0xd1aceb) 20 0x0000000000d0a720 (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0xd0a720) 21 0x0000000000d178fb (anonymous namespace)::DeclChecker::visitClassDecl(swift::ClassDecl*) (/path/to/swift/bin/swift+0xd178fb) 22 0x0000000000d0a5b4 (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0xd0a5b4) 23 0x0000000000d1874b (anonymous namespace)::DeclChecker::visitProtocolDecl(swift::ProtocolDecl*) (/path/to/swift/bin/swift+0xd1874b) 24 0x0000000000d0a700 (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0xd0a700) 25 0x0000000000d0a4e3 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) (/path/to/swift/bin/swift+0xd0a4e3) 26 0x0000000000c21bf5 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int) (/path/to/swift/bin/swift+0xc21bf5) 27 0x0000000000996736 swift::CompilerInstance::performSema() (/path/to/swift/bin/swift+0x996736) 28 0x000000000047c5aa swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (/path/to/swift/bin/swift+0x47c5aa) 29 0x000000000043ade7 main (/path/to/swift/bin/swift+0x43ade7) 30 0x00007fa33c074830 __libc_start_main /build/glibc-Qz8a69/glibc-2.23/csu/../csu/libc-start.c:325:0 31 0x0000000000438229 _start (/path/to/swift/bin/swift+0x438229) ```
…lse-should-have-found-context-by-now [swiftc (23 vs. 5389)] Add crasher in swift::TypeChecker::resolveTypeInContext
Add test case for crash triggered in `swift::Parser::parseTopLevel(...)`. Current number of unresolved compiler crashers: 24 (5389 resolved) Assertion failure in [`lib/Parse/ParseDecl.cpp (line 222)`](https://github.com/apple/swift/blob/master/lib/Parse/ParseDecl.cpp#L222): ``` Assertion `isInSILMode() && "'sil' should only be a keyword in SIL mode"' failed. When executing: bool swift::Parser::parseTopLevel() ``` Assertion context: ``` parseSILDefaultWitnessTable(); } else if (Tok.is(tok::kw_sil_coverage_map)) { assert(isInSILMode() && "'sil' should only be a keyword in SIL mode"); parseSILCoverageMap(); } else if (Tok.is(tok::kw_sil_scope)) { assert(isInSILMode() && "'sil' should only be a keyword in SIL mode"); parseSILScope(); } else { parseBraceItems(Items, allowTopLevelCode() ? BraceItemListKind::TopLevelCode : BraceItemListKind::TopLevelLibrary); ``` Stack trace: ``` 0 0x0000000003512118 llvm::sys::PrintStackTrace(llvm::raw_ostream&) (/path/to/swift/bin/swift+0x3512118) 1 0x0000000003512856 SignalHandler(int) (/path/to/swift/bin/swift+0x3512856) 2 0x00007f8ea4f2d3e0 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x113e0) 3 0x00007f8ea365b428 gsignal /build/glibc-Qz8a69/glibc-2.23/signal/../sysdeps/unix/sysv/linux/raise.c:54:0 4 0x00007f8ea365d02a abort /build/glibc-Qz8a69/glibc-2.23/stdlib/abort.c:91:0 5 0x00007f8ea3653bd7 __assert_fail_base /build/glibc-Qz8a69/glibc-2.23/assert/assert.c:92:0 6 0x00007f8ea3653c82 (/lib/x86_64-linux-gnu/libc.so.6+0x2dc82) 7 0x0000000000b80db1 swift::Parser::parseTopLevel() (/path/to/swift/bin/swift+0xb80db1) 8 0x0000000000bb4f10 swift::parseIntoSourceFile(swift::SourceFile&, unsigned int, bool*, swift::SILParserState*, swift::PersistentParserState*, swift::DelayedParsingCallbacks*) (/path/to/swift/bin/swift+0xbb4f10) 9 0x0000000000996713 swift::CompilerInstance::performSema() (/path/to/swift/bin/swift+0x996713) 10 0x000000000047c5aa swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (/path/to/swift/bin/swift+0x47c5aa) 11 0x000000000043ade7 main (/path/to/swift/bin/swift+0x43ade7) 12 0x00007f8ea3646830 __libc_start_main /build/glibc-Qz8a69/glibc-2.23/csu/../csu/libc-start.c:325:0 13 0x0000000000438229 _start (/path/to/swift/bin/swift+0x438229) ```
…insilmode-sil-should-only-be-a-keyword-in-sil-mode [swiftc (24 vs. 5389)] Add crasher in swift::Parser::parseTopLevel(...)
Add test case for crash triggered in `swift::ASTVisitor`. Current number of unresolved compiler crashers: 25 (5389 resolved) /cc Eli Friedman - just wanted to let you know that this crasher caused an assertion failure for the assertion `(getKind() != ExprKind::Binary || isa<TupleExpr>(e)) && "BinaryExprs must have a TupleExpr as the argument"` added on 2012-05-25 by you in commit 95838dc :-) Assertion failure in [`include/swift/AST/Expr.h (line 3666)`](https://github.com/apple/swift/blob/master/include/swift/AST/Expr.h#L3666): ``` Assertion `(getKind() != ExprKind::Binary || isa<TupleExpr>(e)) && "BinaryExprs must have a TupleExpr as the argument"' failed. When executing: void swift::ApplyExpr::setArg(swift::Expr *) ``` Assertion context: ``` Expr *getSemanticFn() const { return Fn->getSemanticsProvidingExpr(); } Expr *getArg() const { return ArgAndIsSuper.getPointer(); } void setArg(Expr *e) { assert((getKind() != ExprKind::Binary || isa<TupleExpr>(e)) && "BinaryExprs must have a TupleExpr as the argument"); ArgAndIsSuper = {e, ArgAndIsSuper.getInt()}; } bool isSuper() const { return ArgAndIsSuper.getInt(); } void setIsSuper(bool super) { ``` Stack trace: ``` 0 0x0000000003512118 llvm::sys::PrintStackTrace(llvm::raw_ostream&) (/path/to/swift/bin/swift+0x3512118) 1 0x0000000003512856 SignalHandler(int) (/path/to/swift/bin/swift+0x3512856) 2 0x00007f553f90b3e0 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x113e0) 3 0x00007f553e039428 gsignal /build/glibc-Qz8a69/glibc-2.23/signal/../sysdeps/unix/sysv/linux/raise.c:54:0 4 0x00007f553e03b02a abort /build/glibc-Qz8a69/glibc-2.23/stdlib/abort.c:91:0 5 0x00007f553e031bd7 __assert_fail_base /build/glibc-Qz8a69/glibc-2.23/assert/assert.c:92:0 6 0x00007f553e031c82 (/lib/x86_64-linux-gnu/libc.so.6+0x2dc82) 7 0x0000000000c33846 (anonymous namespace)::ExprRewriter::finishApply(swift::ApplyExpr*, swift::Type, swift::constraints::ConstraintLocatorBuilder) (/path/to/swift/bin/swift+0xc33846) 8 0x0000000000c49083 (anonymous namespace)::ExprRewriter::visitApplyExpr(swift::ApplyExpr*) (/path/to/swift/bin/swift+0xc49083) 9 0x0000000000c2f774 (anonymous namespace)::ExprRewriter::walkToExprPost(swift::Expr*) (/path/to/swift/bin/swift+0xc2f774) 10 0x0000000000c35021 (anonymous namespace)::ExprWalker::walkToExprPost(swift::Expr*) (/path/to/swift/bin/swift+0xc35021) 11 0x0000000000e0c387 swift::ASTVisitor<(anonymous namespace)::Traversal, swift::Expr*, swift::Stmt*, bool, swift::Pattern*, bool, void>::visit(swift::Expr*) (/path/to/swift/bin/swift+0xe0c387) 12 0x0000000000e0e00e (anonymous namespace)::Traversal::visitApplyExpr(swift::ApplyExpr*) (/path/to/swift/bin/swift+0xe0e00e) 13 0x0000000000e0ad1b swift::Expr::walk(swift::ASTWalker&) (/path/to/swift/bin/swift+0xe0ad1b) 14 0x0000000000c34753 (anonymous namespace)::ExprWalker::walkToExprPre(swift::Expr*) (/path/to/swift/bin/swift+0xc34753) 15 0x0000000000e0aceb swift::Expr::walk(swift::ASTWalker&) (/path/to/swift/bin/swift+0xe0aceb) 16 0x0000000000c2c268 swift::constraints::ConstraintSystem::applySolution(swift::constraints::Solution&, swift::Expr*, swift::Type, bool, bool, bool) (/path/to/swift/bin/swift+0xc2c268) 17 0x0000000000cf5433 swift::TypeChecker::typeCheckExpression(swift::Expr*&, swift::DeclContext*, swift::TypeLoc, swift::ContextualTypePurpose, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem*) (/path/to/swift/bin/swift+0xcf5433) 18 0x0000000000c5a791 (anonymous namespace)::FailureDiagnosis::typeCheckChildIndependently(swift::Expr*, swift::Type, swift::ContextualTypePurpose, swift::OptionSet<TCCFlags, unsigned int>, swift::ExprTypeCheckListener*, bool) (/path/to/swift/bin/swift+0xc5a791) 19 0x0000000000c56dc0 swift::ASTVisitor<(anonymous namespace)::FailureDiagnosis, bool, void, void, void, void, void>::visit(swift::Expr*) (/path/to/swift/bin/swift+0xc56dc0) 20 0x0000000000c4ec2a swift::constraints::ConstraintSystem::diagnoseFailureForExpr(swift::Expr*) (/path/to/swift/bin/swift+0xc4ec2a) 21 0x0000000000c55ced swift::constraints::ConstraintSystem::salvage(llvm::SmallVectorImpl<swift::constraints::Solution>&, swift::Expr*) (/path/to/swift/bin/swift+0xc55ced) 22 0x0000000000cf1ed8 swift::TypeChecker::solveForExpression(swift::Expr*&, swift::DeclContext*, swift::Type, swift::FreeTypeVariableBinding, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem&, llvm::SmallVectorImpl<swift::constraints::Solution>&, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>) (/path/to/swift/bin/swift+0xcf1ed8) 23 0x0000000000cf539d swift::TypeChecker::typeCheckExpression(swift::Expr*&, swift::DeclContext*, swift::TypeLoc, swift::ContextualTypePurpose, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem*) (/path/to/swift/bin/swift+0xcf539d) 24 0x0000000000c0cf9e swift::ASTVisitor<(anonymous namespace)::StmtChecker, void, swift::Stmt*, void, void, void, void>::visit(swift::Stmt*) (/path/to/swift/bin/swift+0xc0cf9e) 25 0x0000000000c0c7c6 swift::TypeChecker::typeCheckTopLevelCodeDecl(swift::TopLevelCodeDecl*) (/path/to/swift/bin/swift+0xc0c7c6) 26 0x0000000000c21c70 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int) (/path/to/swift/bin/swift+0xc21c70) 27 0x0000000000996736 swift::CompilerInstance::performSema() (/path/to/swift/bin/swift+0x996736) 28 0x000000000047c5aa swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (/path/to/swift/bin/swift+0x47c5aa) 29 0x000000000043ade7 main (/path/to/swift/bin/swift+0x43ade7) 30 0x00007f553e024830 __libc_start_main /build/glibc-Qz8a69/glibc-2.23/csu/../csu/libc-start.c:325:0 31 0x0000000000438229 _start (/path/to/swift/bin/swift+0x438229) ```
…lang#6544) These have historically been defined as protocols in Objective-C (under a pile of macros), but when imported into Swift they're classes instead. Reverse this bit of magic by hard-coding the prefix "OS_" and the header <os/object.h>, and emitting the classic 'foo_bar_t'-style type names. rdar://problem/29790636
…tkind-exprkind-binary-isa-tupleexpr-e-binaryexprs-must-have-a-tupleexpr-as-the [swiftc (25 vs. 5389)] Add crasher in swift::ASTVisitor
…th checks for overrun.
…/swift into collapse-append-contentsof
[pull] swiftwasm from main
Resolves ABI FIXMEs #13, #16 and #17 and implements SE-147.
Changes
Sequence._copyContents
to take aUnsafeMutableBufferPointer
instead of just a pointer, adds checks to ensure it doesn't initialize memory outside that buffer in the default implementation, and optionally returns anIterator
with any unwritten elements.Currently there are two versions of
Array.append(contentsOf:)
, one that takes a sequence and one that takes a collection. We want to collapse them into one, and then move the definition of+=
up intoRangeReplaceableCollection
(which doesn't have a version ofappend
specialized for collections). At the same time, there is a potentially nasty bug that impacts the collection version. The solution for both problems is similar.In theory the collection version is optimized, because we can determine in advance how many elements are in the collection being appended. The current version allocates enough memory, then calls a method on its buffer's unsafe pointer to initialize from the collection. This is bad because collections can lie about their count – for example, a reference-semantic collection like
NSMutableArray
might change on another thread while copying, or this code which uses external state to make a lazy collection give different results:If a collection underreports its count, the current code will end up scribbling over the memory past the end of the buffer.
To do this safely, what we need to do is take the count, reserve enough memory, then use an
UnsafeBufferPointer
to append safely not beyond the count. Then any remaining elements that weren't accounted for by the collection's count can be appended too. These remaining elements are returned as a partially consumed iterator by the append operation.This solution will also allow us to combine with the version for
Sequence
, which basically needs the same thing, only with a call tounderestimatedCount
since this can also be an underestimate (non-zero underestimates might not be the total number of elements in the sequence).Collections that are certain they have value semantics and never lie about their counts can choose to override the method that the unsafe pointer calls on them to write themselves into memory, to skip certain safety checks the default implementation puts in.