implement retain release code motion.#2064
implement retain release code motion.#2064trentxintong merged 1 commit intoswiftlang:masterfrom trentxintong:CodeMotion
Conversation
|
@shahmishal I only see one RedundantLoadElimination.cpp.o compiled. Should not we compiled 2 versions of the compiler, i.e. one with the PR and one without and use those to compile the benchmarks. |
There was a problem hiding this comment.
Please expand out ASO here to make it more clear what you're talking about.
|
@swift-ci Please ASAN test |
There was a problem hiding this comment.
Can you please document this part? Also, do you need the two checks?
There was a problem hiding this comment.
Prior to looping through the instructions you should be able to get the exit block and see if I->getBlock() is the same block.For example you can refactor the code in ::recompute() to separate out the switch on ExitKind and selection of return/throw block, and then test against that.
There was a problem hiding this comment.
Or keep a SILBasicBlock *ThisBlock to represent the processed block by this ArgToEpilogueReleaseMatcher. And then we can remove the HasBlock variable.
|
@swift-ci Please benchmark |
1 similar comment
|
@swift-ci Please benchmark |
Build comment file:Optimized (O)
|
| TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
|---|---|---|---|---|
| StringWithCString | 81153 | 373680 | +360.5% | 0.22x |
| SetUnion | 3254 | 4766 | +46.5% | 0.68x |
| Calculator | 32 | 40 | +25.0% | 0.80x |
| 114 | 2262807 | 2511202 | +11.0% | 0.90x |
Improvement (18)
| TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
|---|---|---|---|---|
| SortLettersInPlace | 1009 | 955 | -5.3% | 1.06x |
| DictionarySwapOfObjects | 7158 | 6689 | -6.5% | 1.07x |
| ObjectiveCBridgeFromNSSetAnyObjectToString | 179435 | 168202 | -6.3% | 1.07x(?) |
| ClassArrayGetter | 13 | 12 | -7.7% | 1.08x |
| Hanoi | 3417 | 3150 | -7.8% | 1.08x |
| ObjectiveCBridgeFromNSDictionaryAnyObjectToString | 190185 | 172301 | -9.4% | 1.10x |
| SetIsSubsetOf_OfObjects | 541 | 493 | -8.9% | 1.10x |
| SetExclusiveOr_OfObjects | 8933 | 8022 | -10.2% | 1.11x |
| Dictionary2 | 2405 | 2069 | -14.0% | 1.16x |
| Dictionary2OfObjects | 3967 | 3414 | -13.9% | 1.16x |
| DictionaryOfObjects | 2714 | 2313 | -14.8% | 1.17x |
| Dictionary | 957 | 789 | -17.6% | 1.21x |
| SetIntersect_OfObjects | 2735 | 2210 | -19.2% | 1.24x |
| Dictionary3OfObjects | 1182 | 893 | -24.4% | 1.32x |
| Dictionary3 | 726 | 549 | -24.4% | 1.32x |
| Phonebook | 9289 | 7051 | -24.1% | 1.32x |
| LinkedList | 9006 | 6838 | -24.1% | 1.32x |
| Chars | 662 | 386 | -41.7% | 1.72x |
No Changes (93)
| TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
|---|---|---|---|---|
| ObjectiveCBridgeFromNSArrayAnyObjectToStringForced | 166527 | 159150 | -4.4% | 1.05x |
| ObjectiveCBridgeToNSSet | 16003 | 15371 | -4.0% | 1.04x(?) |
| DictionaryLiteral | 3311 | 3198 | -3.4% | 1.04x(?) |
| ObjectiveCBridgeToNSDictionary | 16957 | 16317 | -3.8% | 1.04x |
| SetUnion_OfObjects | 6995 | 6720 | -3.9% | 1.04x |
| NSStringConversion | 612 | 586 | -4.2% | 1.04x |
| SortStrings | 1751 | 1694 | -3.3% | 1.03x |
| RGBHistogramOfObjects | 22309 | 21605 | -3.2% | 1.03x |
| RGBHistogram | 3360 | 3255 | -3.1% | 1.03x |
| TwoSum | 1724 | 1673 | -3.0% | 1.03x |
| Histogram | 653 | 643 | -1.5% | 1.02x |
| DictionaryBridge | 3648 | 3572 | -2.1% | 1.02x(?) |
| Prims | 732 | 718 | -1.9% | 1.02x(?) |
| ObjectiveCBridgeFromNSDictionaryAnyObject | 187211 | 183475 | -2.0% | 1.02x(?) |
| ObjectiveCBridgeFromNSSetAnyObject | 94722 | 93057 | -1.8% | 1.02x |
| OpenClose | 50 | 49 | -2.0% | 1.02x |
| ObjectiveCBridgeFromNSSetAnyObjectToStringForced | 109868 | 107934 | -1.8% | 1.02x(?) |
| ArrayLiteral | 994 | 977 | -1.7% | 1.02x |
| ArraySubscript | 1334 | 1318 | -1.2% | 1.01x(?) |
| StackPromo | 18908 | 18755 | -0.8% | 1.01x |
| ObjectiveCBridgeStubToNSString | 1377 | 1364 | -0.9% | 1.01x(?) |
| SuperChars | 282558 | 280075 | -0.9% | 1.01x(?) |
| ProtocolDispatch2 | 153 | 152 | -0.7% | 1.01x |
| ObjectiveCBridgeToNSArray | 29808 | 29635 | -0.6% | 1.01x(?) |
| SetIsSubsetOf | 475 | 470 | -1.1% | 1.01x |
| ArrayInClass | 86 | 85 | -1.2% | 1.01x(?) |
| ArrayOfGenericRef | 3519 | 3478 | -1.2% | 1.01x(?) |
| Sim2DArray | 414 | 410 | -1.0% | 1.01x(?) |
| MonteCarloE | 10049 | 9983 | -0.7% | 1.01x(?) |
| ObjectiveCBridgeToNSString | 1025 | 1029 | +0.4% | 1.00x(?) |
| MonteCarloPi | 42553 | 42513 | -0.1% | 1.00x(?) |
| RecursiveOwnedParameter | 1831 | 1829 | -0.1% | 1.00x |
| ObjectiveCBridgeFromNSArrayAnyObjectToString | 164166 | 163548 | -0.4% | 1.00x(?) |
| ArrayOfGenericPOD | 208 | 208 | +0.0% | 1.00x |
| ObjectiveCBridgeFromNSArrayAnyObjectForced | 3646 | 3636 | -0.3% | 1.00x(?) |
| ObjectiveCBridgeFromNSStringForced | 2191 | 2181 | -0.5% | 1.00x(?) |
| ByteSwap | 1 | 1 | +0.0% | 1.00x |
| XorLoop | 359 | 359 | +0.0% | 1.00x |
| Integrate | 243 | 244 | +0.4% | 1.00x(?) |
| ObjectiveCBridgeStubFromNSStringRef | 327 | 327 | +0.0% | 1.00x |
| ObjectiveCBridgeStubFromNSString | 690 | 691 | +0.1% | 1.00x(?) |
| StaticArray | 2663 | 2671 | +0.3% | 1.00x(?) |
| TypeFlood | 0 | 0 | +0.0% | 1.00x |
| PopFrontUnsafePointer | 8523 | 8531 | +0.1% | 1.00x(?) |
| CaptureProp | 3758 | 3762 | +0.1% | 1.00x(?) |
| DictionaryRemoveOfObjects | 19470 | 19416 | -0.3% | 1.00x(?) |
| NopDeinit | 34612 | 34744 | +0.4% | 1.00x |
| NSDictionaryCastToSwift | 8349 | 8379 | +0.4% | 1.00x(?) |
| GlobalClass | 0 | 0 | +0.0% | 1.00x |
| ArrayAppend | 728 | 730 | +0.3% | 1.00x(?) |
| ObjectiveCBridgeFromNSSetAnyObjectForced | 4026 | 4025 | -0.0% | 1.00x(?) |
| ArrayAppendReserved | 510 | 508 | -0.4% | 1.00x |
| ArrayOfPOD | 172 | 172 | +0.0% | 1.00x |
| BitCount | 1 | 1 | +0.0% | 1.00x |
| SevenBoom | 1294 | 1288 | -0.5% | 1.00x(?) |
| StringWalk | 6499 | 6518 | +0.3% | 1.00x(?) |
| ArrayValueProp | 5 | 5 | +0.0% | 1.00x |
| ObjectiveCBridgeStubFromArrayOfNSString | 112203 | 112379 | +0.2% | 1.00x(?) |
| RC4 | 251 | 251 | +0.0% | 1.00x |
| Memset | 222 | 222 | +0.0% | 1.00x |
| ArrayValueProp4 | 5 | 5 | +0.0% | 1.00x |
| ArrayValueProp2 | 5 | 5 | +0.0% | 1.00x |
| ArrayValueProp3 | 5 | 5 | +0.0% | 1.00x |
| PopFrontArray | 1227 | 1239 | +1.0% | 0.99x |
| DictionarySwap | 753 | 762 | +1.2% | 0.99x(?) |
| ObjectAllocation | 140 | 141 | +0.7% | 0.99x |
| ArrayOfRef | 3431 | 3462 | +0.9% | 0.99x(?) |
| MapReduce | 328 | 330 | +0.6% | 0.99x(?) |
| UTF8Decode | 255 | 258 | +1.2% | 0.99x(?) |
| ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced | 122829 | 124252 | +1.2% | 0.99x(?) |
| ObjectiveCBridgeStubToArrayOfNSString | 29780 | 30069 | +1.0% | 0.99x(?) |
| ObjectiveCBridgeFromNSArrayAnyObject | 62591 | 63368 | +1.2% | 0.99x(?) |
| SetIntersect | 1128 | 1136 | +0.7% | 0.99x |
| ObjectiveCBridgeFromNSString | 1548 | 1559 | +0.7% | 0.99x(?) |
| DeadArray | 176 | 177 | +0.6% | 0.99x |
| ObjectiveCBridgeFromNSDictionaryAnyObjectForced | 4534 | 4622 | +1.9% | 0.98x |
| ProtocolDispatch | 2884 | 2931 | +1.6% | 0.98x(?) |
| Join | 432 | 442 | +2.3% | 0.98x(?) |
| NSError | 356 | 364 | +2.2% | 0.98x(?) |
| PopFrontArrayGeneric | 1102 | 1130 | +2.5% | 0.98x(?) |
| PolymorphicCalls | 61 | 62 | +1.6% | 0.98x |
| Walsh | 318 | 324 | +1.9% | 0.98x |
| StrComplexWalk | 2813 | 2907 | +3.3% | 0.97x |
| SetExclusiveOr | 3793 | 3916 | +3.2% | 0.97x |
| StringInterpolation | 10017 | 10428 | +4.1% | 0.96x |
| AngryPhonebook | 3421 | 3548 | +3.7% | 0.96x(?) |
| HashTest | 1803 | 1879 | +4.2% | 0.96x(?) |
| StringBuilder | 1368 | 1430 | +4.5% | 0.96x |
| DictionaryRemove | 4738 | 4930 | +4.0% | 0.96x(?) |
| StrToInt | 3634 | 3801 | +4.6% | 0.96x |
| Array2D | 1973 | 2085 | +5.7% | 0.95x(?) |
| RangeAssignment | 264 | 277 | +4.9% | 0.95x(?) |
| ErrorHandling | 2806 | 2946 | +5.0% | 0.95x |
Regression (2)
| TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
|---|---|---|---|---|
| NopDeinit | 54181 | 59336 | +9.5% | 0.91x |
| BitCount | 78 | 84 | +7.7% | 0.93x |
Improvement (21)
| TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
|---|---|---|---|---|
| ObjectiveCBridgeFromNSDictionaryAnyObjectToString | 198327 | 186392 | -6.0% | 1.06x(?) |
| Prims | 13732 | 12910 | -6.0% | 1.06x |
| ArrayOfRef | 9938 | 9389 | -5.5% | 1.06x |
| ArrayOfGenericRef | 10603 | 10027 | -5.4% | 1.06x |
| ArrayAppendReserved | 2751 | 2604 | -5.3% | 1.06x(?) |
| ClassArrayGetter | 1266 | 1184 | -6.5% | 1.07x |
| MonteCarloE | 93031 | 86603 | -6.9% | 1.07x |
| ObjectiveCBridgeFromNSSetAnyObjectToStringForced | 120731 | 112526 | -6.8% | 1.07x(?) |
| ObjectiveCBridgeFromNSSetAnyObjectToString | 185436 | 173367 | -6.5% | 1.07x |
| PopFrontArray | 12310 | 11357 | -7.7% | 1.08x |
| 114 | 5394183 | 4998807 | -7.3% | 1.08x |
| StrComplexWalk | 8043 | 7377 | -8.3% | 1.09x |
| Hanoi | 22588 | 20545 | -9.0% | 1.10x |
| Array2D | 697683 | 630412 | -9.6% | 1.11x |
| Memset | 20652 | 18644 | -9.7% | 1.11x |
| ArraySubscript | 4426 | 3952 | -10.7% | 1.12x |
| ProtocolDispatch | 5666 | 4766 | -15.9% | 1.19x |
| RangeAssignment | 15562 | 12843 | -17.5% | 1.21x |
| SuperChars | 692087 | 550333 | -20.5% | 1.26x |
| RecursiveOwnedParameter | 10339 | 7624 | -26.3% | 1.36x |
| StringWithCString | 534270 | 370437 | -30.7% | 1.44x |
No Changes (92)
| TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
|---|---|---|---|---|
| DictionaryBridge | 3784 | 3615 | -4.5% | 1.05x(?) |
| PopFrontArrayGeneric | 12407 | 11864 | -4.4% | 1.05x |
| Calculator | 933 | 892 | -4.4% | 1.05x |
| ObjectiveCBridgeToNSDictionary | 17163 | 16371 | -4.6% | 1.05x(?) |
| ArrayOfPOD | 2332 | 2232 | -4.3% | 1.04x |
| ObjectiveCBridgeFromNSArrayAnyObjectToStringForced | 165990 | 160038 | -3.6% | 1.04x(?) |
| RC4 | 8736 | 8429 | -3.5% | 1.04x |
| Histogram | 13879 | 13475 | -2.9% | 1.03x |
| OpenClose | 464 | 451 | -2.8% | 1.03x(?) |
| MapReduce | 42908 | 41527 | -3.2% | 1.03x |
| UTF8Decode | 39239 | 38019 | -3.1% | 1.03x |
| Dictionary | 4342 | 4216 | -2.9% | 1.03x |
| Walsh | 12224 | 11847 | -3.1% | 1.03x |
| ArrayAppend | 2891 | 2813 | -2.7% | 1.03x |
| Chars | 54411 | 52806 | -3.0% | 1.03x |
| ArrayValueProp | 2245 | 2185 | -2.7% | 1.03x |
| StackPromo | 80585 | 79173 | -1.8% | 1.02x(?) |
| XorLoop | 18445 | 18048 | -2.1% | 1.02x |
| ErrorHandling | 7196 | 7050 | -2.0% | 1.02x |
| ObjectiveCBridgeStubFromNSString | 1130 | 1113 | -1.5% | 1.02x |
| ObjectiveCBridgeFromNSSetAnyObject | 101128 | 99117 | -2.0% | 1.02x(?) |
| Dictionary3 | 2114 | 2078 | -1.7% | 1.02x |
| CaptureProp | 53287 | 52414 | -1.6% | 1.02x(?) |
| DictionaryLiteral | 20529 | 20110 | -2.0% | 1.02x |
| StringBuilder | 8226 | 8031 | -2.4% | 1.02x |
| ArrayInClass | 3647 | 3562 | -2.3% | 1.02x |
| Phonebook | 61113 | 59851 | -2.1% | 1.02x(?) |
| ArrayValueProp4 | 2549 | 2494 | -2.2% | 1.02x |
| ObjectiveCBridgeFromNSDictionaryAnyObject | 193232 | 191932 | -0.7% | 1.01x(?) |
| Integrate | 350 | 348 | -0.6% | 1.01x(?) |
| Dictionary3OfObjects | 2752 | 2723 | -1.1% | 1.01x(?) |
| ObjectiveCBridgeStubToNSString | 1675 | 1658 | -1.0% | 1.01x |
| ObjectAllocation | 1288 | 1279 | -0.7% | 1.01x(?) |
| Dictionary2 | 5156 | 5114 | -0.8% | 1.01x(?) |
| Join | 1324 | 1313 | -0.8% | 1.01x(?) |
| ObjectiveCBridgeToNSSet | 15865 | 15687 | -1.1% | 1.01x(?) |
| NSDictionaryCastToSwift | 9579 | 9479 | -1.0% | 1.01x(?) |
| LinkedList | 26300 | 26065 | -0.9% | 1.01x(?) |
| RGBHistogram | 49857 | 49123 | -1.5% | 1.01x |
| ArrayValueProp2 | 18176 | 17953 | -1.2% | 1.01x(?) |
| ArrayValueProp3 | 2598 | 2562 | -1.4% | 1.01x |
| ObjectiveCBridgeToNSString | 1051 | 1053 | +0.2% | 1.00x(?) |
| ObjectiveCBridgeFromNSArrayAnyObjectToString | 157155 | 156555 | -0.4% | 1.00x(?) |
| ObjectiveCBridgeFromNSDictionaryAnyObjectForced | 7052 | 7076 | +0.3% | 1.00x(?) |
| ObjectiveCBridgeFromNSArrayAnyObjectForced | 6979 | 6953 | -0.4% | 1.00x(?) |
| SortLettersInPlace | 2316 | 2313 | -0.1% | 1.00x(?) |
| DictionarySwap | 11034 | 11058 | +0.2% | 1.00x(?) |
| ByteSwap | 9 | 9 | +0.0% | 1.00x |
| ObjectiveCBridgeStubFromNSStringRef | 651 | 651 | +0.0% | 1.00x |
| StaticArray | 17105 | 17173 | +0.4% | 1.00x(?) |
| SetIntersect_OfObjects | 18994 | 18927 | -0.3% | 1.00x(?) |
| ObjectiveCBridgeToNSArray | 29720 | 29624 | -0.3% | 1.00x(?) |
| NSError | 643 | 645 | +0.3% | 1.00x(?) |
| DictionaryOfObjects | 7101 | 7081 | -0.3% | 1.00x(?) |
| PopFrontUnsafePointer | 95860 | 96301 | +0.5% | 1.00x(?) |
| PolymorphicCalls | 1140 | 1142 | +0.2% | 1.00x(?) |
| DictionaryRemoveOfObjects | 60370 | 60131 | -0.4% | 1.00x(?) |
| ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced | 130737 | 130714 | -0.0% | 1.00x(?) |
| SetIsSubsetOf | 2938 | 2939 | +0.0% | 1.00x(?) |
| SetIntersect | 18898 | 18913 | +0.1% | 1.00x(?) |
| SetExclusiveOr | 48528 | 48538 | +0.0% | 1.00x(?) |
| RGBHistogramOfObjects | 97629 | 97505 | -0.1% | 1.00x(?) |
| Sim2DArray | 13143 | 13152 | +0.1% | 1.00x(?) |
| SetExclusiveOr_OfObjects | 67200 | 67078 | -0.2% | 1.00x(?) |
| MonteCarloPi | 50417 | 50542 | +0.2% | 1.00x |
| SetUnion_OfObjects | 51316 | 51352 | +0.1% | 1.00x(?) |
| GlobalClass | 0 | 0 | +0.0% | 1.00x |
| SetIsSubsetOf_OfObjects | 2831 | 2831 | +0.0% | 1.00x |
| DictionaryRemove | 30127 | 29989 | -0.5% | 1.00x |
| NSStringConversion | 2600 | 2609 | +0.3% | 1.00x(?) |
| ObjectiveCBridgeFromNSSetAnyObjectForced | 7395 | 7377 | -0.2% | 1.00x(?) |
| SetUnion | 34953 | 34938 | -0.0% | 1.00x(?) |
| StrToInt | 18505 | 18424 | -0.4% | 1.00x(?) |
| ArrayLiteral | 1036 | 1035 | -0.1% | 1.00x(?) |
| SevenBoom | 1416 | 1423 | +0.5% | 1.00x |
| StringWalk | 48115 | 47965 | -0.3% | 1.00x(?) |
| Dictionary2OfObjects | 6922 | 6912 | -0.1% | 1.00x(?) |
| TwoSum | 9274 | 9253 | -0.2% | 1.00x(?) |
| DictionarySwapOfObjects | 25030 | 25164 | +0.5% | 0.99x(?) |
| SortStrings | 5676 | 5710 | +0.6% | 0.99x |
| ProtocolDispatch2 | 423 | 429 | +1.4% | 0.99x |
| HashTest | 6025 | 6085 | +1.0% | 0.99x(?) |
| ObjectiveCBridgeStubToArrayOfNSString | 29820 | 30258 | +1.5% | 0.99x(?) |
| ObjectiveCBridgeFromNSArrayAnyObject | 66956 | 67625 | +1.0% | 0.99x(?) |
| ObjectiveCBridgeStubFromArrayOfNSString | 109724 | 110758 | +0.9% | 0.99x(?) |
| ObjectiveCBridgeFromNSStringForced | 2576 | 2617 | +1.6% | 0.98x(?) |
| AngryPhonebook | 5951 | 6097 | +2.5% | 0.98x |
| ArrayOfGenericPOD | 3395 | 3476 | +2.4% | 0.98x |
| ObjectiveCBridgeFromNSString | 4957 | 5111 | +3.1% | 0.97x(?) |
| StringInterpolation | 13409 | 13953 | +4.1% | 0.96x |
| DeadArray | 126570 | 132505 | +4.7% | 0.96x |
| TypeFlood | 151 | 159 | +5.3% | 0.95x(?) |
|
@shahmishal Thanks for fixing "please benchmark" this looks similar to what i saw on my local machine |
|
@swift-ci Please benchmark |
Build comment file:Optimized (O)
|
| TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
|---|---|---|---|---|
| SetIsSubsetOf | 477 | 552 | +15.7% | 0.86x |
| SetIsSubsetOf_OfObjects | 542 | 623 | +14.9% | 0.87x |
| SetIntersect | 1132 | 1293 | +14.2% | 0.88x |
| ClassArrayGetter | 12 | 13 | +8.3% | 0.92x |
Improvement (21)
| TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
|---|---|---|---|---|
| DictionarySwapOfObjects | 7058 | 6641 | -5.9% | 1.06x |
| OpenClose | 52 | 49 | -5.8% | 1.06x(?) |
| TwoSum | 1745 | 1654 | -5.2% | 1.06x |
| SetUnion_OfObjects | 7071 | 6578 | -7.0% | 1.07x |
| ObjectiveCBridgeToNSSet | 17900 | 16599 | -7.3% | 1.08x |
| Chars | 617 | 568 | -7.9% | 1.09x |
| SetExclusiveOr_OfObjects | 8882 | 7983 | -10.1% | 1.11x |
| PopFrontArrayGeneric | 1221 | 1092 | -10.6% | 1.12x(?) |
| 114 | 2529870 | 2236839 | -11.6% | 1.13x |
| SetIntersect_OfObjects | 2723 | 2366 | -13.1% | 1.15x |
| Dictionary2OfObjects | 3964 | 3426 | -13.6% | 1.16x |
| DictionaryOfObjects | 2711 | 2310 | -14.8% | 1.17x |
| Dictionary2 | 2412 | 2042 | -15.3% | 1.18x |
| Dictionary | 966 | 796 | -17.6% | 1.21x |
| LinkedList | 8991 | 6842 | -23.9% | 1.31x |
| Dictionary3OfObjects | 1217 | 917 | -24.6% | 1.33x |
| Phonebook | 9085 | 6707 | -26.2% | 1.35x |
| Dictionary3 | 797 | 580 | -27.2% | 1.37x |
| StrToInt | 6407 | 4480 | -30.1% | 1.43x |
| SuperChars | 550754 | 277789 | -49.6% | 1.98x |
| Calculator | 35 | 12 | -65.7% | 2.92x |
No Changes (90)
| TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
|---|---|---|---|---|
| ObjectiveCBridgeFromNSDictionaryAnyObjectToString | 194530 | 185038 | -4.9% | 1.05x |
| SortLettersInPlace | 1001 | 951 | -5.0% | 1.05x |
| Array2D | 2102 | 2012 | -4.3% | 1.04x |
| ObjectiveCBridgeToNSDictionary | 17423 | 16775 | -3.7% | 1.04x(?) |
| RGBHistogram | 3350 | 3227 | -3.7% | 1.04x |
| StaticArray | 2649 | 2582 | -2.5% | 1.03x(?) |
| DictionaryRemoveOfObjects | 19914 | 19416 | -2.5% | 1.03x |
| ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced | 123218 | 119628 | -2.9% | 1.03x(?) |
| RGBHistogramOfObjects | 22358 | 21685 | -3.0% | 1.03x |
| ObjectiveCBridgeFromNSSetAnyObjectToString | 174253 | 169534 | -2.7% | 1.03x(?) |
| DictionaryBridge | 3648 | 3571 | -2.1% | 1.02x |
| Prims | 728 | 716 | -1.6% | 1.02x |
| ArrayOfRef | 3480 | 3419 | -1.8% | 1.02x |
| ArrayInClass | 85 | 83 | -2.4% | 1.02x |
| StackPromo | 18833 | 18695 | -0.7% | 1.01x |
| Integrate | 236 | 234 | -0.8% | 1.01x(?) |
| Histogram | 652 | 643 | -1.4% | 1.01x |
| StringWithCString | 75615 | 75113 | -0.7% | 1.01x |
| DictionarySwap | 758 | 752 | -0.8% | 1.01x(?) |
| StringInterpolation | 10328 | 10263 | -0.6% | 1.01x(?) |
| ObjectAllocation | 141 | 140 | -0.7% | 1.01x(?) |
| ProtocolDispatch2 | 152 | 151 | -0.7% | 1.01x |
| RC4 | 251 | 249 | -0.8% | 1.01x |
| ObjectiveCBridgeFromNSSetAnyObjectToStringForced | 110581 | 109870 | -0.6% | 1.01x(?) |
| ObjectiveCBridgeFromNSSetAnyObjectForced | 4049 | 4008 | -1.0% | 1.01x(?) |
| ObjectiveCBridgeToNSString | 1027 | 1030 | +0.3% | 1.00x(?) |
| MonteCarloPi | 42508 | 42662 | +0.4% | 1.00x |
| RecursiveOwnedParameter | 1827 | 1828 | +0.1% | 1.00x(?) |
| ObjectiveCBridgeFromNSDictionaryAnyObjectForced | 4591 | 4575 | -0.3% | 1.00x(?) |
| ObjectiveCBridgeFromNSStringForced | 2165 | 2170 | +0.2% | 1.00x(?) |
| PopFrontArray | 1225 | 1226 | +0.1% | 1.00x(?) |
| ByteSwap | 1 | 1 | +0.0% | 1.00x |
| XorLoop | 359 | 359 | +0.0% | 1.00x |
| ObjectiveCBridgeStubToNSString | 1374 | 1374 | +0.0% | 1.00x |
| ErrorHandling | 2867 | 2881 | +0.5% | 1.00x(?) |
| ObjectiveCBridgeStubFromNSStringRef | 327 | 327 | +0.0% | 1.00x |
| ProtocolDispatch | 2882 | 2889 | +0.2% | 1.00x(?) |
| TypeFlood | 0 | 0 | +0.0% | 1.00x |
| ObjectiveCBridgeFromNSSetAnyObject | 94970 | 94710 | -0.3% | 1.00x(?) |
| ArrayLiteral | 989 | 985 | -0.4% | 1.00x(?) |
| HashTest | 1835 | 1836 | +0.1% | 1.00x(?) |
| StrComplexWalk | 3023 | 3015 | -0.3% | 1.00x(?) |
| PopFrontUnsafePointer | 8490 | 8523 | +0.4% | 1.00x(?) |
| CaptureProp | 3772 | 3775 | +0.1% | 1.00x(?) |
| PolymorphicCalls | 61 | 61 | +0.0% | 1.00x |
| MapReduce | 330 | 331 | +0.3% | 1.00x(?) |
| DictionaryLiteral | 3198 | 3212 | +0.4% | 1.00x(?) |
| Hanoi | 3131 | 3128 | -0.1% | 1.00x(?) |
| ArrayOfGenericPOD | 208 | 207 | -0.5% | 1.00x |
| NopDeinit | 34640 | 34617 | -0.1% | 1.00x |
| ObjectiveCBridgeFromNSString | 1548 | 1555 | +0.5% | 1.00x(?) |
| Sim2DArray | 403 | 404 | +0.2% | 1.00x(?) |
| MonteCarloE | 10019 | 9987 | -0.3% | 1.00x(?) |
| Walsh | 319 | 320 | +0.3% | 1.00x(?) |
| ArrayAppend | 727 | 727 | +0.0% | 1.00x |
| ArrayAppendReserved | 506 | 507 | +0.2% | 1.00x(?) |
| BitCount | 1 | 1 | +0.0% | 1.00x |
| AngryPhonebook | 3341 | 3337 | -0.1% | 1.00x(?) |
| ArrayValueProp3 | 5 | 5 | +0.0% | 1.00x |
| ArrayValueProp | 5 | 5 | +0.0% | 1.00x |
| GlobalClass | 0 | 0 | +0.0% | 1.00x |
| Memset | 222 | 222 | +0.0% | 1.00x |
| ArrayValueProp4 | 5 | 5 | +0.0% | 1.00x |
| ArrayValueProp2 | 5 | 5 | +0.0% | 1.00x |
| SevenBoom | 1276 | 1280 | +0.3% | 1.00x(?) |
| ArraySubscript | 1315 | 1325 | +0.8% | 0.99x(?) |
| ObjectiveCBridgeFromNSDictionaryAnyObject | 187872 | 189595 | +0.9% | 0.99x(?) |
| ObjectiveCBridgeFromNSArrayAnyObjectForced | 3606 | 3627 | +0.6% | 0.99x(?) |
| Join | 438 | 443 | +1.1% | 0.99x |
| ObjectiveCBridgeToNSArray | 29249 | 29558 | +1.1% | 0.99x(?) |
| ObjectiveCBridgeStubToArrayOfNSString | 29545 | 29711 | +0.6% | 0.99x(?) |
| ObjectiveCBridgeFromNSArrayAnyObject | 62534 | 63168 | +1.0% | 0.99x(?) |
| NSDictionaryCastToSwift | 8611 | 8658 | +0.6% | 0.99x(?) |
| StringBuilder | 1383 | 1393 | +0.7% | 0.99x |
| ArrayOfPOD | 171 | 172 | +0.6% | 0.99x |
| DeadArray | 174 | 175 | +0.6% | 0.99x(?) |
| ObjectiveCBridgeStubFromArrayOfNSString | 108209 | 109243 | +1.0% | 0.99x(?) |
| SortStrings | 1674 | 1707 | +2.0% | 0.98x |
| ObjectiveCBridgeStubFromNSString | 693 | 705 | +1.7% | 0.98x(?) |
| NSError | 354 | 361 | +2.0% | 0.98x |
| SetExclusiveOr | 3803 | 3863 | +1.6% | 0.98x(?) |
| ArrayOfGenericRef | 3438 | 3494 | +1.6% | 0.98x(?) |
| StringWalk | 5915 | 6011 | +1.6% | 0.98x |
| ObjectiveCBridgeFromNSArrayAnyObjectToString | 155555 | 159596 | +2.6% | 0.97x(?) |
| RangeAssignment | 262 | 271 | +3.4% | 0.97x |
| UTF8Decode | 260 | 268 | +3.1% | 0.97x |
| DictionaryRemove | 4782 | 4914 | +2.8% | 0.97x |
| ObjectiveCBridgeFromNSArrayAnyObjectToStringForced | 157359 | 161490 | +2.6% | 0.97x(?) |
| NSStringConversion | 573 | 601 | +4.9% | 0.95x |
| SetUnion | 3343 | 3527 | +5.5% | 0.95x |
Regression (2)
| TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
|---|---|---|---|---|
| ProtocolDispatch | 4682 | 5013 | +7.1% | 0.93x |
| SetIntersect_OfObjects | 18945 | 20089 | +6.0% | 0.94x |
Improvement (13)
| TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
|---|---|---|---|---|
| ClassArrayGetter | 1267 | 1191 | -6.0% | 1.06x |
| Dictionary2 | 5510 | 5215 | -5.3% | 1.06x |
| ObjectiveCBridgeToNSDictionary | 17787 | 16765 | -5.8% | 1.06x |
| ArrayOfGenericPOD | 3515 | 3287 | -6.5% | 1.07x(?) |
| 114 | 5464408 | 5111982 | -6.5% | 1.07x |
| ArrayAppendReserved | 2671 | 2491 | -6.7% | 1.07x |
| ObjectiveCBridgeToNSSet | 18163 | 16838 | -7.3% | 1.08x(?) |
| NopDeinit | 60454 | 55963 | -7.4% | 1.08x |
| StrToInt | 20295 | 18522 | -8.7% | 1.10x |
| Memset | 20643 | 18637 | -9.7% | 1.11x |
| RangeAssignment | 15601 | 12856 | -17.6% | 1.21x |
| StringWalk | 40431 | 24329 | -39.8% | 1.66x |
| StringWithCString | 325927 | 73856 | -77.3% | 4.41x |
No Changes (100)
| TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
|---|---|---|---|---|
| OpenClose | 478 | 455 | -4.8% | 1.05x |
| ObjectiveCBridgeFromNSSetAnyObjectToStringForced | 122483 | 117096 | -4.4% | 1.05x |
| Array2D | 789700 | 756271 | -4.2% | 1.04x |
| SortStrings | 14444 | 13947 | -3.4% | 1.04x |
| Dictionary3OfObjects | 2892 | 2793 | -3.4% | 1.04x |
| Dictionary3 | 2262 | 2171 | -4.0% | 1.04x |
| MapReduce | 42915 | 41346 | -3.7% | 1.04x |
| ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced | 130992 | 125915 | -3.9% | 1.04x |
| RC4 | 8743 | 8427 | -3.6% | 1.04x |
| ArrayAppend | 2859 | 2751 | -3.8% | 1.04x(?) |
| ArraySubscript | 5324 | 5179 | -2.7% | 1.03x |
| DictionaryBridge | 3767 | 3662 | -2.8% | 1.03x(?) |
| Prims | 14624 | 14152 | -3.2% | 1.03x |
| SortLettersInPlace | 4288 | 4169 | -2.8% | 1.03x |
| StrComplexWalk | 8410 | 8153 | -3.1% | 1.03x(?) |
| Join | 1338 | 1302 | -2.7% | 1.03x |
| UTF8Decode | 39197 | 37897 | -3.3% | 1.03x |
| Dictionary | 4360 | 4226 | -3.1% | 1.03x |
| ObjectiveCBridgeFromNSSetAnyObjectToString | 193985 | 187661 | -3.3% | 1.03x(?) |
| Phonebook | 87826 | 85616 | -2.5% | 1.03x(?) |
| MonteCarloE | 101756 | 98789 | -2.9% | 1.03x |
| Walsh | 12189 | 11812 | -3.1% | 1.03x |
| Chars | 54402 | 52729 | -3.1% | 1.03x |
| AngryPhonebook | 6259 | 6063 | -3.1% | 1.03x |
| ArrayValueProp3 | 2595 | 2513 | -3.2% | 1.03x |
| Dictionary2OfObjects | 7191 | 6984 | -2.9% | 1.03x |
| ArrayValueProp4 | 2542 | 2477 | -2.6% | 1.03x |
| ArrayValueProp2 | 18206 | 17758 | -2.5% | 1.03x |
| PopFrontArray | 12216 | 11924 | -2.4% | 1.02x |
| RecursiveOwnedParameter | 10364 | 10182 | -1.8% | 1.02x |
| ObjectiveCBridgeFromNSDictionaryAnyObjectForced | 7130 | 6960 | -2.4% | 1.02x(?) |
| XorLoop | 18454 | 18018 | -2.4% | 1.02x |
| ErrorHandling | 7337 | 7190 | -2.0% | 1.02x(?) |
| TypeFlood | 158 | 155 | -1.9% | 1.02x(?) |
| PolymorphicCalls | 1162 | 1134 | -2.4% | 1.02x |
| DictionaryLiteral | 20261 | 19826 | -2.1% | 1.02x |
| StringBuilder | 8264 | 8114 | -1.8% | 1.02x(?) |
| ArrayInClass | 3647 | 3563 | -2.3% | 1.02x |
| ArrayValueProp | 2232 | 2184 | -2.1% | 1.02x |
| ObjectiveCBridgeFromNSDictionaryAnyObjectToString | 200089 | 197624 | -1.2% | 1.01x(?) |
| ObjectiveCBridgeFromNSDictionaryAnyObject | 197840 | 195075 | -1.4% | 1.01x |
| StaticArray | 17202 | 17084 | -0.7% | 1.01x(?) |
| ObjectAllocation | 1291 | 1276 | -1.2% | 1.01x |
| HashTest | 6198 | 6142 | -0.9% | 1.01x(?) |
| DictionaryOfObjects | 7098 | 7004 | -1.3% | 1.01x(?) |
| PopFrontUnsafePointer | 96708 | 96046 | -0.7% | 1.01x(?) |
| CaptureProp | 52973 | 52349 | -1.2% | 1.01x(?) |
| Calculator | 921 | 908 | -1.4% | 1.01x |
| RGBHistogramOfObjects | 115559 | 114975 | -0.5% | 1.01x(?) |
| RGBHistogram | 67298 | 66494 | -1.2% | 1.01x |
| ObjectiveCBridgeToNSString | 1055 | 1052 | -0.3% | 1.00x(?) |
| MonteCarloPi | 50459 | 50659 | +0.4% | 1.00x |
| ObjectiveCBridgeFromNSStringForced | 2592 | 2604 | +0.5% | 1.00x |
| DictionarySwap | 11026 | 11046 | +0.2% | 1.00x |
| ByteSwap | 9 | 9 | +0.0% | 1.00x |
| SuperChars | 727643 | 727817 | +0.0% | 1.00x(?) |
| StringInterpolation | 14196 | 14259 | +0.4% | 1.00x(?) |
| ObjectiveCBridgeStubToNSString | 1676 | 1684 | +0.5% | 1.00x |
| ObjectiveCBridgeStubFromNSStringRef | 651 | 651 | +0.0% | 1.00x |
| ObjectiveCBridgeFromNSSetAnyObject | 100546 | 100939 | +0.4% | 1.00x(?) |
| ArrayLiteral | 1046 | 1043 | -0.3% | 1.00x(?) |
| ArrayOfRef | 9786 | 9766 | -0.2% | 1.00x(?) |
| ObjectiveCBridgeToNSArray | 29489 | 29506 | +0.1% | 1.00x(?) |
| NSError | 640 | 638 | -0.3% | 1.00x(?) |
| PopFrontArrayGeneric | 12384 | 12418 | +0.3% | 1.00x(?) |
| Hanoi | 22036 | 22079 | +0.2% | 1.00x |
| DictionaryRemoveOfObjects | 60647 | 60600 | -0.1% | 1.00x(?) |
| ObjectiveCBridgeStubToArrayOfNSString | 30008 | 29929 | -0.3% | 1.00x(?) |
| ObjectiveCBridgeFromNSArrayAnyObject | 66284 | 66545 | +0.4% | 1.00x(?) |
| NSDictionaryCastToSwift | 9703 | 9750 | +0.5% | 1.00x(?) |
| ArrayOfGenericRef | 10404 | 10412 | +0.1% | 1.00x(?) |
| Sim2DArray | 13136 | 13161 | +0.2% | 1.00x |
| DictionaryRemove | 30147 | 30181 | +0.1% | 1.00x(?) |
| LinkedList | 26224 | 26302 | +0.3% | 1.00x |
| ArrayOfPOD | 2152 | 2154 | +0.1% | 1.00x(?) |
| GlobalClass | 0 | 0 | +0.0% | 1.00x |
| TwoSum | 9295 | 9311 | +0.2% | 1.00x |
| SevenBoom | 1447 | 1440 | -0.5% | 1.00x(?) |
| DictionarySwapOfObjects | 25096 | 25234 | +0.6% | 0.99x(?) |
| ObjectiveCBridgeFromNSArrayAnyObjectToString | 156192 | 157925 | +1.1% | 0.99x |
| Histogram | 13736 | 13864 | +0.9% | 0.99x(?) |
| ObjectiveCBridgeFromNSArrayAnyObjectForced | 6928 | 6978 | +0.7% | 0.99x(?) |
| ObjectiveCBridgeStubFromNSString | 1130 | 1147 | +1.5% | 0.99x |
| ProtocolDispatch2 | 420 | 426 | +1.4% | 0.99x(?) |
| ObjectiveCBridgeFromNSString | 4904 | 4933 | +0.6% | 0.99x(?) |
| SetUnion_OfObjects | 51660 | 52272 | +1.2% | 0.99x(?) |
| ObjectiveCBridgeFromNSSetAnyObjectForced | 7360 | 7435 | +1.0% | 0.99x(?) |
| DeadArray | 133380 | 134829 | +1.1% | 0.99x(?) |
| ObjectiveCBridgeStubFromArrayOfNSString | 109690 | 110673 | +0.9% | 0.99x(?) |
| SetExclusiveOr | 48564 | 49763 | +2.5% | 0.98x |
| SetExclusiveOr_OfObjects | 67199 | 68473 | +1.9% | 0.98x |
| NSStringConversion | 2533 | 2575 | +1.7% | 0.98x(?) |
| BitCount | 81 | 83 | +2.5% | 0.98x |
| ObjectiveCBridgeFromNSArrayAnyObjectToStringForced | 158731 | 162660 | +2.5% | 0.98x(?) |
| Integrate | 343 | 353 | +2.9% | 0.97x |
| SetUnion | 34849 | 35878 | +3.0% | 0.97x |
| StackPromo | 161967 | 167976 | +3.7% | 0.96x |
| SetIsSubsetOf | 2945 | 3071 | +4.3% | 0.96x |
| SetIsSubsetOf_OfObjects | 2824 | 2953 | +4.6% | 0.96x |
| SetIntersect | 18893 | 19930 | +5.5% | 0.95x |
|
@swift-ci Please test linux |
|
@swift-ci Please benchmark |
|
@swift-ci Please test |
Build comment file:Optimized (O)
|
| TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
|---|---|---|---|---|
| SetIsSubsetOf | 476 | 554 | +16.4% | 0.86x |
| SetIntersect | 1132 | 1310 | +15.7% | 0.86x |
| SetIsSubsetOf_OfObjects | 542 | 614 | +13.3% | 0.88x |
Improvement (22)
| TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
|---|---|---|---|---|
| OpenClose | 52 | 49 | -5.8% | 1.06x |
| ObjectiveCBridgeFromNSSetAnyObjectToString | 181126 | 171044 | -5.6% | 1.06x |
| ObjectiveCBridgeFromNSDictionaryAnyObjectToString | 192990 | 180780 | -6.3% | 1.07x |
| Chars | 610 | 571 | -6.4% | 1.07x |
| DictionarySwapOfObjects | 7127 | 6577 | -7.7% | 1.08x |
| SetUnion_OfObjects | 7077 | 6582 | -7.0% | 1.08x |
| ObjectiveCBridgeToNSSet | 18023 | 16705 | -7.3% | 1.08x |
| Sim2DArray | 405 | 365 | -9.9% | 1.11x |
| SetExclusiveOr_OfObjects | 8835 | 7839 | -11.3% | 1.13x |
| SetIntersect_OfObjects | 2726 | 2381 | -12.7% | 1.14x |
| 114 | 2529932 | 2197232 | -13.2% | 1.15x |
| Dictionary2OfObjects | 3951 | 3438 | -13.0% | 1.15x |
| DictionaryOfObjects | 2710 | 2317 | -14.5% | 1.17x |
| Dictionary2 | 2405 | 2045 | -15.0% | 1.18x |
| Dictionary | 964 | 797 | -17.3% | 1.21x |
| LinkedList | 8890 | 6813 | -23.4% | 1.30x |
| Dictionary3OfObjects | 1218 | 912 | -25.1% | 1.34x |
| Dictionary3 | 798 | 590 | -26.1% | 1.35x |
| Phonebook | 9079 | 6736 | -25.8% | 1.35x |
| StrToInt | 6411 | 4573 | -28.7% | 1.40x |
| SuperChars | 551119 | 277585 | -49.6% | 1.99x |
| Calculator | 36 | 12 | -66.7% | 3.00x |
No Changes (90)
| TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
|---|---|---|---|---|
| SortLettersInPlace | 1006 | 958 | -4.8% | 1.05x |
| TwoSum | 1746 | 1663 | -4.8% | 1.05x(?) |
| ObjectiveCBridgeToNSDictionary | 17650 | 16963 | -3.9% | 1.04x(?) |
| DictionaryLiteral | 3227 | 3140 | -2.7% | 1.03x |
| DictionaryRemoveOfObjects | 19922 | 19421 | -2.5% | 1.03x |
| ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced | 123094 | 119953 | -2.5% | 1.03x(?) |
| RGBHistogramOfObjects | 22393 | 21761 | -2.8% | 1.03x |
| RGBHistogram | 3351 | 3238 | -3.4% | 1.03x |
| StringInterpolation | 10437 | 10262 | -1.7% | 1.02x |
| ObjectiveCBridgeFromNSSetAnyObjectToStringForced | 110145 | 107761 | -2.2% | 1.02x |
| Array2D | 2037 | 2011 | -1.3% | 1.01x |
| Histogram | 652 | 643 | -1.4% | 1.01x |
| SortStrings | 1679 | 1668 | -0.7% | 1.01x |
| DictionaryBridge | 3756 | 3717 | -1.0% | 1.01x(?) |
| ObjectiveCBridgeFromNSDictionaryAnyObjectForced | 4568 | 4526 | -0.9% | 1.01x |
| StringWithCString | 75659 | 75173 | -0.6% | 1.01x |
| Prims | 728 | 718 | -1.4% | 1.01x(?) |
| ArrayOfRef | 3457 | 3426 | -0.9% | 1.01x |
| MapReduce | 332 | 328 | -1.2% | 1.01x(?) |
| ObjectiveCBridgeFromNSSetAnyObjectForced | 4046 | 3996 | -1.2% | 1.01x(?) |
| AngryPhonebook | 3314 | 3287 | -0.8% | 1.01x(?) |
| ObjectiveCBridgeStubFromArrayOfNSString | 109450 | 108224 | -1.1% | 1.01x(?) |
| ObjectiveCBridgeToNSString | 1027 | 1025 | -0.2% | 1.00x(?) |
| MonteCarloPi | 42500 | 42660 | +0.4% | 1.00x |
| StackPromo | 18799 | 18721 | -0.4% | 1.00x |
| RecursiveOwnedParameter | 1827 | 1826 | -0.1% | 1.00x(?) |
| ObjectiveCBridgeStubToNSString | 1375 | 1374 | -0.1% | 1.00x(?) |
| ObjectiveCBridgeFromNSArrayAnyObjectToString | 161779 | 161965 | +0.1% | 1.00x(?) |
| ClassArrayGetter | 12 | 12 | +0.0% | 1.00x |
| ObjectiveCBridgeFromNSArrayAnyObjectForced | 3607 | 3604 | -0.1% | 1.00x(?) |
| PopFrontArray | 1230 | 1231 | +0.1% | 1.00x(?) |
| RangeAssignment | 262 | 262 | +0.0% | 1.00x |
| ByteSwap | 1 | 1 | +0.0% | 1.00x |
| XorLoop | 359 | 359 | +0.0% | 1.00x |
| ErrorHandling | 2886 | 2891 | +0.2% | 1.00x(?) |
| ObjectiveCBridgeStubFromNSStringRef | 327 | 327 | +0.0% | 1.00x |
| ProtocolDispatch | 2885 | 2886 | +0.0% | 1.00x(?) |
| ObjectAllocation | 142 | 142 | +0.0% | 1.00x |
| TypeFlood | 0 | 0 | +0.0% | 1.00x |
| HashTest | 1829 | 1834 | +0.3% | 1.00x(?) |
| PopFrontUnsafePointer | 8487 | 8515 | +0.3% | 1.00x |
| CaptureProp | 3746 | 3753 | +0.2% | 1.00x(?) |
| PolymorphicCalls | 61 | 61 | +0.0% | 1.00x |
| Hanoi | 3125 | 3127 | +0.1% | 1.00x(?) |
| ArrayOfGenericPOD | 208 | 208 | +0.0% | 1.00x |
| NopDeinit | 34592 | 34587 | -0.0% | 1.00x(?) |
| StringBuilder | 1385 | 1387 | +0.1% | 1.00x |
| ObjectiveCBridgeFromNSString | 1543 | 1540 | -0.2% | 1.00x(?) |
| MonteCarloE | 10016 | 10043 | +0.3% | 1.00x |
| GlobalClass | 0 | 0 | +0.0% | 1.00x |
| Walsh | 316 | 315 | -0.3% | 1.00x(?) |
| ArrayAppend | 727 | 728 | +0.1% | 1.00x |
| ArrayAppendReserved | 507 | 507 | +0.0% | 1.00x |
| BitCount | 1 | 1 | +0.0% | 1.00x |
| ArrayValueProp | 5 | 5 | +0.0% | 1.00x |
| RC4 | 251 | 251 | +0.0% | 1.00x |
| Memset | 222 | 222 | +0.0% | 1.00x |
| ArrayValueProp4 | 5 | 5 | +0.0% | 1.00x |
| ArrayValueProp2 | 5 | 5 | +0.0% | 1.00x |
| ArrayValueProp3 | 5 | 5 | +0.0% | 1.00x |
| ArraySubscript | 1319 | 1327 | +0.6% | 0.99x(?) |
| ObjectiveCBridgeFromNSStringForced | 2156 | 2178 | +1.0% | 0.99x(?) |
| DictionarySwap | 753 | 758 | +0.7% | 0.99x |
| Integrate | 235 | 238 | +1.3% | 0.99x(?) |
| ObjectiveCBridgeStubFromNSString | 694 | 699 | +0.7% | 0.99x(?) |
| StaticArray | 2632 | 2659 | +1.0% | 0.99x(?) |
| ArrayLiteral | 982 | 991 | +0.9% | 0.99x(?) |
| ProtocolDispatch2 | 153 | 154 | +0.7% | 0.99x(?) |
| StrComplexWalk | 3021 | 3047 | +0.9% | 0.99x |
| Join | 437 | 441 | +0.9% | 0.99x |
| ObjectiveCBridgeToNSArray | 29048 | 29329 | +1.0% | 0.99x(?) |
| PopFrontArrayGeneric | 1219 | 1227 | +0.7% | 0.99x |
| ObjectiveCBridgeStubToArrayOfNSString | 29313 | 29516 | +0.7% | 0.99x(?) |
| ObjectiveCBridgeFromNSArrayAnyObject | 62521 | 63293 | +1.2% | 0.99x |
| NSDictionaryCastToSwift | 8573 | 8703 | +1.5% | 0.99x(?) |
| ArrayOfGenericRef | 3478 | 3501 | +0.7% | 0.99x(?) |
| ArrayOfPOD | 171 | 172 | +0.6% | 0.99x |
| DeadArray | 174 | 175 | +0.6% | 0.99x |
| SevenBoom | 1275 | 1282 | +0.6% | 0.99x(?) |
| StringWalk | 5918 | 5982 | +1.1% | 0.99x |
| ObjectiveCBridgeFromNSDictionaryAnyObject | 185556 | 189781 | +2.3% | 0.98x(?) |
| UTF8Decode | 260 | 265 | +1.9% | 0.98x |
| ArrayInClass | 83 | 85 | +2.4% | 0.98x(?) |
| NSStringConversion | 573 | 586 | +2.3% | 0.98x |
| ObjectiveCBridgeFromNSSetAnyObject | 94026 | 97152 | +3.3% | 0.97x |
| NSError | 353 | 363 | +2.8% | 0.97x |
| DictionaryRemove | 4726 | 4863 | +2.9% | 0.97x |
| ObjectiveCBridgeFromNSArrayAnyObjectToStringForced | 158227 | 163398 | +3.3% | 0.97x(?) |
| SetExclusiveOr | 3756 | 3902 | +3.9% | 0.96x |
| SetUnion | 3333 | 3515 | +5.5% | 0.95x |
Regression (4)
| TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
|---|---|---|---|---|
| StringWalk | 39739 | 49835 | +25.4% | 0.80x |
| ProtocolDispatch | 4790 | 5086 | +6.2% | 0.94x |
| SetIntersect_OfObjects | 18925 | 20047 | +5.9% | 0.94x |
| SetIntersect | 18907 | 20067 | +6.1% | 0.94x |
Improvement (14)
| TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
|---|---|---|---|---|
| ArrayValueProp2 | 18936 | 17927 | -5.3% | 1.06x |
| ObjectiveCBridgeFromNSDictionaryAnyObjectToString | 208412 | 195351 | -6.3% | 1.07x |
| ClassArrayGetter | 1267 | 1188 | -6.2% | 1.07x |
| ArrayOfGenericPOD | 3536 | 3295 | -6.8% | 1.07x |
| StrComplexWalk | 8397 | 7852 | -6.5% | 1.07x(?) |
| NopDeinit | 60378 | 56652 | -6.2% | 1.07x |
| 114 | 5502215 | 5151019 | -6.4% | 1.07x |
| ArrayAppendReserved | 2646 | 2463 | -6.9% | 1.07x |
| StaticArray | 18662 | 17239 | -7.6% | 1.08x |
| OpenClose | 478 | 437 | -8.6% | 1.09x |
| StrToInt | 20282 | 18247 | -10.0% | 1.11x |
| Memset | 20641 | 18639 | -9.7% | 1.11x |
| RangeAssignment | 15630 | 12882 | -17.6% | 1.21x |
| StringWithCString | 325838 | 73837 | -77.3% | 4.41x |
No Changes (97)
| TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
|---|---|---|---|---|
| Dictionary2 | 5455 | 5192 | -4.8% | 1.05x |
| ObjectiveCBridgeFromNSSetAnyObjectToString | 192908 | 184059 | -4.6% | 1.05x |
| RecursiveOwnedParameter | 10451 | 10083 | -3.5% | 1.04x |
| Array2D | 790774 | 757227 | -4.2% | 1.04x |
| SortStrings | 14528 | 13905 | -4.3% | 1.04x |
| Prims | 14673 | 14169 | -3.4% | 1.04x(?) |
| Walsh | 12211 | 11780 | -3.5% | 1.04x |
| Dictionary3 | 2257 | 2167 | -4.0% | 1.04x |
| ArrayAppend | 2858 | 2747 | -3.9% | 1.04x |
| UTF8Decode | 39209 | 37727 | -3.8% | 1.04x |
| ObjectiveCBridgeToNSDictionary | 17570 | 16865 | -4.0% | 1.04x |
| RC4 | 8739 | 8424 | -3.6% | 1.04x |
| ObjectiveCBridgeToNSSet | 17810 | 17197 | -3.4% | 1.04x |
| ArraySubscript | 5347 | 5182 | -3.1% | 1.03x |
| Dictionary3OfObjects | 2902 | 2804 | -3.4% | 1.03x |
| MapReduce | 42904 | 41527 | -3.2% | 1.03x |
| Dictionary | 4344 | 4238 | -2.4% | 1.03x |
| StringBuilder | 8436 | 8158 | -3.3% | 1.03x |
| MonteCarloE | 101676 | 98710 | -2.9% | 1.03x |
| Chars | 54355 | 52674 | -3.1% | 1.03x |
| AngryPhonebook | 6253 | 6096 | -2.5% | 1.03x |
| Dictionary2OfObjects | 7236 | 7001 | -3.2% | 1.03x |
| PopFrontArray | 12273 | 12041 | -1.9% | 1.02x |
| DictionaryBridge | 3933 | 3855 | -2.0% | 1.02x |
| SortLettersInPlace | 4314 | 4229 | -2.0% | 1.02x(?) |
| XorLoop | 18453 | 18019 | -2.4% | 1.02x |
| Join | 1342 | 1312 | -2.2% | 1.02x |
| DictionaryOfObjects | 7125 | 7001 | -1.7% | 1.02x |
| CaptureProp | 53270 | 52071 | -2.2% | 1.02x |
| ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced | 129932 | 126944 | -2.3% | 1.02x(?) |
| ArrayInClass | 3648 | 3563 | -2.3% | 1.02x |
| Phonebook | 86444 | 84472 | -2.3% | 1.02x |
| HashTest | 6219 | 6125 | -1.5% | 1.02x |
| ObjectiveCBridgeFromNSSetAnyObjectToStringForced | 120750 | 118509 | -1.9% | 1.02x(?) |
| ArrayValueProp | 2241 | 2188 | -2.4% | 1.02x(?) |
| ArrayValueProp4 | 2555 | 2496 | -2.3% | 1.02x(?) |
| ArrayValueProp3 | 2592 | 2538 | -2.1% | 1.02x(?) |
| ObjectiveCBridgeToNSString | 1066 | 1056 | -0.9% | 1.01x(?) |
| StackPromo | 165343 | 163010 | -1.4% | 1.01x(?) |
| ObjectiveCBridgeFromNSStringForced | 2593 | 2577 | -0.6% | 1.01x(?) |
| SuperChars | 735006 | 725851 | -1.2% | 1.01x(?) |
| ErrorHandling | 7241 | 7192 | -0.7% | 1.01x(?) |
| ObjectAllocation | 1291 | 1282 | -0.7% | 1.01x(?) |
| ArrayLiteral | 1050 | 1036 | -1.3% | 1.01x(?) |
| PolymorphicCalls | 1158 | 1142 | -1.4% | 1.01x(?) |
| ObjectiveCBridgeFromNSString | 5015 | 4977 | -0.8% | 1.01x |
| ObjectiveCBridgeFromNSSetAnyObjectForced | 7478 | 7428 | -0.7% | 1.01x(?) |
| ArrayOfPOD | 2160 | 2149 | -0.5% | 1.01x(?) |
| ObjectiveCBridgeStubFromArrayOfNSString | 112041 | 110686 | -1.2% | 1.01x(?) |
| MonteCarloPi | 50431 | 50643 | +0.4% | 1.00x |
| DictionarySwap | 11036 | 11067 | +0.3% | 1.00x(?) |
| ByteSwap | 9 | 9 | +0.0% | 1.00x |
| Integrate | 345 | 345 | +0.0% | 1.00x |
| ObjectiveCBridgeStubFromNSStringRef | 651 | 651 | +0.0% | 1.00x |
| ObjectiveCBridgeFromNSSetAnyObject | 100966 | 101340 | +0.4% | 1.00x(?) |
| ProtocolDispatch2 | 423 | 425 | +0.5% | 1.00x(?) |
| ArrayOfRef | 9809 | 9772 | -0.4% | 1.00x(?) |
| ObjectiveCBridgeToNSArray | 29403 | 29529 | +0.4% | 1.00x(?) |
| NSError | 643 | 640 | -0.5% | 1.00x(?) |
| PopFrontArrayGeneric | 12360 | 12363 | +0.0% | 1.00x(?) |
| PopFrontUnsafePointer | 95690 | 95957 | +0.3% | 1.00x(?) |
| Calculator | 922 | 921 | -0.1% | 1.00x(?) |
| Hanoi | 22045 | 21976 | -0.3% | 1.00x |
| DictionaryRemoveOfObjects | 60773 | 60627 | -0.2% | 1.00x(?) |
| ObjectiveCBridgeStubToArrayOfNSString | 30091 | 30125 | +0.1% | 1.00x(?) |
| ObjectiveCBridgeFromNSArrayAnyObject | 66266 | 66131 | -0.2% | 1.00x(?) |
| RGBHistogramOfObjects | 115488 | 115780 | +0.2% | 1.00x(?) |
| ArrayOfGenericRef | 10414 | 10419 | +0.1% | 1.00x(?) |
| Sim2DArray | 13141 | 13159 | +0.1% | 1.00x |
| DictionaryRemove | 30233 | 30171 | -0.2% | 1.00x(?) |
| LinkedList | 26297 | 26310 | +0.1% | 1.00x(?) |
| RGBHistogram | 67119 | 66838 | -0.4% | 1.00x(?) |
| DeadArray | 132758 | 133230 | +0.4% | 1.00x(?) |
| SevenBoom | 1437 | 1438 | +0.1% | 1.00x(?) |
| GlobalClass | 0 | 0 | +0.0% | 1.00x |
| TwoSum | 9296 | 9317 | +0.2% | 1.00x(?) |
| DictionarySwapOfObjects | 25074 | 25204 | +0.5% | 0.99x(?) |
| ObjectiveCBridgeStubToNSString | 1678 | 1687 | +0.5% | 0.99x |
| Histogram | 13702 | 13847 | +1.1% | 0.99x(?) |
| ObjectiveCBridgeFromNSArrayAnyObjectForced | 6915 | 6983 | +1.0% | 0.99x(?) |
| StringInterpolation | 14251 | 14360 | +0.8% | 0.99x(?) |
| DictionaryLiteral | 20111 | 20362 | +1.2% | 0.99x |
| NSDictionaryCastToSwift | 9595 | 9696 | +1.1% | 0.99x(?) |
| SetExclusiveOr_OfObjects | 67265 | 67802 | +0.8% | 0.99x |
| SetUnion_OfObjects | 51572 | 52206 | +1.2% | 0.99x |
| NSStringConversion | 2574 | 2606 | +1.2% | 0.99x(?) |
| ObjectiveCBridgeFromNSArrayAnyObjectToStringForced | 157729 | 159164 | +0.9% | 0.99x(?) |
| ObjectiveCBridgeFromNSArrayAnyObjectToString | 157121 | 160109 | +1.9% | 0.98x(?) |
| ObjectiveCBridgeFromNSDictionaryAnyObjectForced | 6968 | 7124 | +2.2% | 0.98x |
| BitCount | 81 | 83 | +2.5% | 0.98x |
| ObjectiveCBridgeFromNSDictionaryAnyObject | 192561 | 197600 | +2.6% | 0.97x(?) |
| ObjectiveCBridgeStubFromNSString | 1121 | 1150 | +2.6% | 0.97x(?) |
| SetExclusiveOr | 48572 | 49893 | +2.7% | 0.97x |
| SetUnion | 34930 | 35916 | +2.8% | 0.97x |
| SetIsSubsetOf_OfObjects | 2823 | 2947 | +4.4% | 0.96x |
| TypeFlood | 147 | 154 | +4.8% | 0.95x(?) |
| SetIsSubsetOf | 2945 | 3108 | +5.5% | 0.95x |
|
@swift-ci Please test |
|
@swift-ci Please test Linux |
There was a problem hiding this comment.
Why not just check size() != 1?
|
@rudkx can you please review this pass ? |
|
@swift-ci Please test Linux |
Build comment file:Optimized (O)
|
| TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
|---|---|---|---|---|
| SetIsSubsetOf_OfObjects | 578 | 834 | +44.3% | 0.69x |
| PopFrontArray | 1131 | 1297 | +14.7% | 0.87x |
| SetIsSubsetOf | 510 | 586 | +14.9% | 0.87x |
| SetIntersect | 1200 | 1386 | +15.5% | 0.87x |
Improvement (25)
| TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
|---|---|---|---|---|
| SortLettersInPlace | 1070 | 1013 | -5.3% | 1.06x |
| ObjectiveCBridgeFromNSSetAnyObjectToString | 189507 | 179495 | -5.3% | 1.06x |
| ObjectiveCBridgeToNSDictionary | 19361 | 18133 | -6.3% | 1.07x(?) |
| ObjectiveCBridgeFromNSSetAnyObjectToStringForced | 117811 | 109978 | -6.7% | 1.07x |
| ClassArrayGetter | 14 | 13 | -7.1% | 1.08x |
| ObjectiveCBridgeToNSSet | 17845 | 16548 | -7.3% | 1.08x |
| OpenClose | 55 | 51 | -7.3% | 1.08x |
| Chars | 651 | 604 | -7.2% | 1.08x |
| ObjectiveCBridgeFromNSDictionaryAnyObjectToString | 206392 | 188587 | -8.6% | 1.09x |
| DictionarySwapOfObjects | 7587 | 6916 | -8.8% | 1.10x |
| Walsh | 343 | 313 | -8.8% | 1.10x |
| SetExclusiveOr_OfObjects | 9331 | 8455 | -9.4% | 1.10x |
| SetIntersect_OfObjects | 2891 | 2517 | -12.9% | 1.15x |
| 114 | 2665933 | 2328119 | -12.7% | 1.15x |
| Dictionary2OfObjects | 4166 | 3629 | -12.9% | 1.15x |
| Dictionary2 | 2547 | 2172 | -14.7% | 1.17x |
| DictionaryOfObjects | 2888 | 2424 | -16.1% | 1.19x |
| Dictionary | 1023 | 842 | -17.7% | 1.21x |
| Phonebook | 9692 | 7383 | -23.8% | 1.31x |
| LinkedList | 9532 | 7253 | -23.9% | 1.31x |
| Dictionary3OfObjects | 1289 | 959 | -25.6% | 1.34x |
| StrToInt | 6573 | 4917 | -25.2% | 1.34x |
| Dictionary3 | 847 | 594 | -29.9% | 1.43x |
| SuperChars | 584636 | 293971 | -49.7% | 1.99x |
| Calculator | 36 | 13 | -63.9% | 2.77x |
No Changes (86)
| TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
|---|---|---|---|---|
| RangeAssignment | 276 | 264 | -4.3% | 1.05x(?) |
| SetUnion_OfObjects | 7454 | 7078 | -5.0% | 1.05x |
| ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced | 128446 | 123013 | -4.2% | 1.04x(?) |
| NSStringConversion | 635 | 610 | -3.9% | 1.04x |
| RGBHistogram | 3548 | 3403 | -4.1% | 1.04x |
| TwoSum | 1836 | 1769 | -3.6% | 1.04x |
| StaticArray | 2827 | 2733 | -3.3% | 1.03x(?) |
| ErrorHandling | 3085 | 3009 | -2.5% | 1.03x(?) |
| RGBHistogramOfObjects | 23727 | 22991 | -3.1% | 1.03x |
| ObjectiveCBridgeFromNSArrayAnyObjectToStringForced | 172582 | 167513 | -2.9% | 1.03x(?) |
| StackPromo | 20312 | 19843 | -2.3% | 1.02x |
| Integrate | 244 | 240 | -1.6% | 1.02x |
| Prims | 774 | 759 | -1.9% | 1.02x |
| ObjectiveCBridgeStubToArrayOfNSString | 31441 | 30799 | -2.0% | 1.02x(?) |
| DeadArray | 185 | 182 | -1.6% | 1.02x |
| Array2D | 2098 | 2071 | -1.3% | 1.01x |
| Histogram | 690 | 681 | -1.3% | 1.01x |
| DictionaryBridge | 3830 | 3796 | -0.9% | 1.01x(?) |
| StringInterpolation | 10799 | 10707 | -0.8% | 1.01x |
| ObjectAllocation | 150 | 149 | -0.7% | 1.01x(?) |
| ObjectiveCBridgeToNSArray | 31071 | 30663 | -1.3% | 1.01x(?) |
| UTF8Decode | 273 | 269 | -1.5% | 1.01x |
| NSDictionaryCastToSwift | 9007 | 8921 | -0.9% | 1.01x(?) |
| ObjectiveCBridgeFromNSString | 1614 | 1594 | -1.2% | 1.01x |
| RC4 | 266 | 264 | -0.8% | 1.01x |
| HashTest | 1932 | 1918 | -0.7% | 1.01x |
| ObjectiveCBridgeFromNSSetAnyObjectForced | 4255 | 4194 | -1.4% | 1.01x |
| ArraySubscript | 1407 | 1408 | +0.1% | 1.00x(?) |
| MonteCarloPi | 45172 | 45201 | +0.1% | 1.00x(?) |
| RecursiveOwnedParameter | 1939 | 1933 | -0.3% | 1.00x |
| StringWithCString | 80105 | 80142 | +0.1% | 1.00x(?) |
| ObjectiveCBridgeFromNSArrayAnyObjectForced | 3854 | 3836 | -0.5% | 1.00x(?) |
| DictionarySwap | 794 | 795 | +0.1% | 1.00x |
| ByteSwap | 1 | 1 | +0.0% | 1.00x |
| XorLoop | 380 | 380 | +0.0% | 1.00x |
| ObjectiveCBridgeStubToNSString | 1448 | 1448 | +0.0% | 1.00x |
| ObjectiveCBridgeStubFromNSStringRef | 346 | 346 | +0.0% | 1.00x |
| ObjectiveCBridgeStubFromNSString | 729 | 726 | -0.4% | 1.00x(?) |
| ProtocolDispatch | 3043 | 3041 | -0.1% | 1.00x(?) |
| TypeFlood | 0 | 0 | +0.0% | 1.00x |
| ArrayLiteral | 1027 | 1030 | +0.3% | 1.00x |
| StrComplexWalk | 3218 | 3210 | -0.2% | 1.00x(?) |
| ArrayOfRef | 3585 | 3597 | +0.3% | 1.00x(?) |
| PopFrontUnsafePointer | 8979 | 9019 | +0.5% | 1.00x |
| CaptureProp | 3955 | 3954 | -0.0% | 1.00x(?) |
| PolymorphicCalls | 65 | 65 | +0.0% | 1.00x |
| DictionaryLiteral | 3077 | 3087 | +0.3% | 1.00x(?) |
| Hanoi | 3317 | 3329 | +0.4% | 1.00x |
| ArrayOfGenericPOD | 220 | 220 | +0.0% | 1.00x |
| DictionaryRemoveOfObjects | 20509 | 20517 | +0.0% | 1.00x(?) |
| NopDeinit | 36649 | 36663 | +0.0% | 1.00x(?) |
| ObjectiveCBridgeFromNSArrayAnyObject | 65743 | 65483 | -0.4% | 1.00x(?) |
| StringBuilder | 1465 | 1470 | +0.3% | 1.00x |
| MonteCarloE | 10561 | 10511 | -0.5% | 1.00x(?) |
| ArrayAppend | 771 | 771 | +0.0% | 1.00x |
| ArrayAppendReserved | 535 | 537 | +0.4% | 1.00x |
| ArrayOfPOD | 182 | 182 | +0.0% | 1.00x |
| BitCount | 1 | 1 | +0.0% | 1.00x |
| AngryPhonebook | 3441 | 3424 | -0.5% | 1.00x |
| ArrayValueProp | 6 | 6 | +0.0% | 1.00x |
| ObjectiveCBridgeStubFromArrayOfNSString | 114964 | 114669 | -0.3% | 1.00x(?) |
| GlobalClass | 0 | 0 | +0.0% | 1.00x |
| Memset | 236 | 235 | -0.4% | 1.00x |
| ArrayValueProp4 | 6 | 6 | +0.0% | 1.00x |
| ArrayValueProp2 | 6 | 6 | +0.0% | 1.00x |
| ArrayValueProp3 | 6 | 6 | +0.0% | 1.00x |
| ObjectiveCBridgeToNSString | 1073 | 1082 | +0.8% | 0.99x |
| ObjectiveCBridgeFromNSDictionaryAnyObjectForced | 4802 | 4871 | +1.4% | 0.99x |
| ObjectiveCBridgeFromNSSetAnyObject | 98602 | 99331 | +0.7% | 0.99x(?) |
| ProtocolDispatch2 | 158 | 159 | +0.6% | 0.99x |
| PopFrontArrayGeneric | 1288 | 1295 | +0.5% | 0.99x |
| MapReduce | 341 | 343 | +0.6% | 0.99x |
| SetExclusiveOr | 4041 | 4102 | +1.5% | 0.99x |
| ArrayInClass | 86 | 87 | +1.2% | 0.99x(?) |
| ArrayOfGenericRef | 3623 | 3662 | +1.1% | 0.99x(?) |
| Sim2DArray | 423 | 429 | +1.4% | 0.99x |
| SetUnion | 3685 | 3708 | +0.6% | 0.99x(?) |
| SevenBoom | 1354 | 1361 | +0.5% | 0.99x |
| StringWalk | 6252 | 6301 | +0.8% | 0.99x |
| ObjectiveCBridgeFromNSArrayAnyObjectToString | 164554 | 168128 | +2.2% | 0.98x(?) |
| SortStrings | 1773 | 1808 | +2.0% | 0.98x |
| ObjectiveCBridgeFromNSStringForced | 2223 | 2273 | +2.2% | 0.98x |
| Join | 464 | 472 | +1.7% | 0.98x |
| NSError | 376 | 385 | +2.4% | 0.98x |
| DictionaryRemove | 4937 | 5061 | +2.5% | 0.98x(?) |
| ObjectiveCBridgeFromNSDictionaryAnyObject | 192803 | 201626 | +4.6% | 0.96x |
Regression (2)
| TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
|---|---|---|---|---|
| ProtocolDispatch | 4864 | 5311 | +9.2% | 0.92x |
| BitCount | 84 | 90 | +7.1% | 0.93x |
Improvement (16)
| TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
|---|---|---|---|---|
| PopFrontArray | 12741 | 11995 | -5.9% | 1.06x |
| Dictionary3 | 2390 | 2259 | -5.5% | 1.06x |
| CaptureProp | 57824 | 54357 | -6.0% | 1.06x(?) |
| ArrayOfPOD | 2394 | 2266 | -5.3% | 1.06x |
| ClassArrayGetter | 1341 | 1253 | -6.6% | 1.07x |
| Dictionary2 | 5798 | 5424 | -6.5% | 1.07x |
| 114 | 5771275 | 5389925 | -6.6% | 1.07x |
| ObjectiveCBridgeToNSSet | 18738 | 17332 | -7.5% | 1.08x(?) |
| ArrayOfRef | 10383 | 9357 | -9.9% | 1.11x |
| StrToInt | 21730 | 19620 | -9.7% | 1.11x |
| ArrayOfGenericRef | 11073 | 9981 | -9.9% | 1.11x |
| Memset | 21862 | 19743 | -9.7% | 1.11x |
| Hanoi | 23216 | 19827 | -14.6% | 1.17x |
| RangeAssignment | 16587 | 13512 | -18.5% | 1.23x |
| RecursiveOwnedParameter | 11004 | 8024 | -27.1% | 1.37x |
| StringWithCString | 344783 | 78179 | -77.3% | 4.41x |
No Changes (97)
| TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
|---|---|---|---|---|
| Dictionary2OfObjects | 7664 | 7313 | -4.6% | 1.05x |
| ArrayValueProp2 | 19961 | 18933 | -5.2% | 1.05x |
| Array2D | 838304 | 806153 | -3.8% | 1.04x |
| SortStrings | 14834 | 14291 | -3.7% | 1.04x |
| Dictionary3OfObjects | 3062 | 2933 | -4.2% | 1.04x |
| ErrorHandling | 7839 | 7555 | -3.6% | 1.04x |
| TypeFlood | 171 | 165 | -3.5% | 1.04x(?) |
| UTF8Decode | 41543 | 40129 | -3.4% | 1.04x |
| Dictionary | 4628 | 4435 | -4.2% | 1.04x |
| RC4 | 9260 | 8937 | -3.5% | 1.04x |
| ObjectiveCBridgeFromNSDictionaryAnyObjectToString | 210561 | 204743 | -2.8% | 1.03x(?) |
| Histogram | 14655 | 14248 | -2.8% | 1.03x |
| DictionaryBridge | 3940 | 3824 | -2.9% | 1.03x(?) |
| Prims | 15552 | 15028 | -3.4% | 1.03x |
| XorLoop | 19589 | 19111 | -2.4% | 1.03x |
| PopFrontArrayGeneric | 12790 | 12415 | -2.9% | 1.03x |
| MapReduce | 45427 | 44027 | -3.1% | 1.03x |
| OpenClose | 467 | 453 | -3.0% | 1.03x |
| Walsh | 12929 | 12508 | -3.3% | 1.03x |
| ArrayValueProp4 | 2651 | 2568 | -3.1% | 1.03x |
| Chars | 58271 | 56540 | -3.0% | 1.03x |
| AngryPhonebook | 6650 | 6460 | -2.9% | 1.03x |
| ArraySubscript | 5649 | 5531 | -2.1% | 1.02x |
| SortLettersInPlace | 4423 | 4342 | -1.8% | 1.02x |
| Join | 1404 | 1379 | -1.8% | 1.02x |
| NSError | 693 | 681 | -1.7% | 1.02x(?) |
| NopDeinit | 61089 | 59808 | -2.1% | 1.02x |
| ObjectiveCBridgeStubToArrayOfNSString | 31575 | 30910 | -2.1% | 1.02x |
| NSDictionaryCastToSwift | 10305 | 10152 | -1.5% | 1.02x |
| StringBuilder | 8723 | 8578 | -1.7% | 1.02x |
| ArrayInClass | 3865 | 3779 | -2.2% | 1.02x |
| Phonebook | 90149 | 88260 | -2.1% | 1.02x |
| ObjectiveCBridgeToNSDictionary | 18109 | 17780 | -1.8% | 1.02x(?) |
| MonteCarloE | 107887 | 105270 | -2.4% | 1.02x |
| ObjectiveCBridgeFromNSArrayAnyObjectToStringForced | 168665 | 165025 | -2.2% | 1.02x(?) |
| ArrayValueProp | 2349 | 2294 | -2.3% | 1.02x |
| ArrayAppendReserved | 2734 | 2684 | -1.8% | 1.02x |
| SuperChars | 777915 | 770888 | -0.9% | 1.01x |
| ObjectAllocation | 1379 | 1359 | -1.4% | 1.01x |
| ArrayLiteral | 1100 | 1092 | -0.7% | 1.01x |
| HashTest | 6581 | 6510 | -1.1% | 1.01x |
| ObjectiveCBridgeToNSArray | 31161 | 30803 | -1.1% | 1.01x |
| PolymorphicCalls | 1170 | 1160 | -0.8% | 1.01x |
| DictionaryLiteral | 21262 | 21002 | -1.2% | 1.01x |
| ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced | 133209 | 132524 | -0.5% | 1.01x(?) |
| ObjectiveCBridgeFromNSSetAnyObjectToStringForced | 127317 | 126466 | -0.7% | 1.01x(?) |
| ArrayValueProp3 | 2702 | 2670 | -1.2% | 1.01x |
| StackPromo | 169407 | 169411 | +0.0% | 1.00x(?) |
| ObjectiveCBridgeStubToNSString | 1772 | 1770 | -0.1% | 1.00x(?) |
| ObjectiveCBridgeFromNSDictionaryAnyObjectForced | 7324 | 7346 | +0.3% | 1.00x(?) |
| MonteCarloPi | 53477 | 53709 | +0.4% | 1.00x |
| ObjectiveCBridgeFromNSStringForced | 2667 | 2676 | +0.3% | 1.00x |
| DictionarySwap | 11694 | 11726 | +0.3% | 1.00x |
| ArrayOfGenericPOD | 3604 | 3605 | +0.0% | 1.00x(?) |
| ByteSwap | 10 | 10 | +0.0% | 1.00x |
| StringInterpolation | 14764 | 14816 | +0.3% | 1.00x(?) |
| Integrate | 358 | 358 | +0.0% | 1.00x |
| ObjectiveCBridgeStubFromNSStringRef | 690 | 690 | +0.0% | 1.00x |
| StrComplexWalk | 8872 | 8901 | +0.3% | 1.00x(?) |
| DictionaryOfObjects | 7537 | 7550 | +0.2% | 1.00x(?) |
| PopFrontUnsafePointer | 98786 | 98715 | -0.1% | 1.00x |
| DictionaryRemoveOfObjects | 64126 | 63847 | -0.4% | 1.00x |
| RGBHistogramOfObjects | 121248 | 121211 | -0.0% | 1.00x(?) |
| Sim2DArray | 13915 | 13943 | +0.2% | 1.00x |
| DictionaryRemove | 31945 | 31870 | -0.2% | 1.00x |
| LinkedList | 27861 | 27987 | +0.5% | 1.00x |
| NSStringConversion | 2718 | 2724 | +0.2% | 1.00x(?) |
| RGBHistogram | 69524 | 69726 | +0.3% | 1.00x(?) |
| SevenBoom | 1511 | 1518 | +0.5% | 1.00x(?) |
| ObjectiveCBridgeStubFromArrayOfNSString | 112689 | 113072 | +0.3% | 1.00x(?) |
| GlobalClass | 0 | 0 | +0.0% | 1.00x |
| TwoSum | 9863 | 9816 | -0.5% | 1.00x |
| ObjectiveCBridgeToNSString | 1103 | 1111 | +0.7% | 0.99x(?) |
| DictionarySwapOfObjects | 26655 | 26854 | +0.8% | 0.99x |
| ObjectiveCBridgeFromNSArrayAnyObjectForced | 7315 | 7417 | +1.4% | 0.99x(?) |
| ObjectiveCBridgeStubFromNSString | 1176 | 1186 | +0.8% | 0.99x |
| ProtocolDispatch2 | 439 | 442 | +0.7% | 0.99x |
| ObjectiveCBridgeFromNSArrayAnyObject | 69710 | 70061 | +0.5% | 0.99x(?) |
| ObjectiveCBridgeFromNSString | 5059 | 5111 | +1.0% | 0.99x |
| SetExclusiveOr_OfObjects | 71466 | 72393 | +1.3% | 0.99x |
| SetUnion_OfObjects | 54488 | 54964 | +0.9% | 0.99x(?) |
| ObjectiveCBridgeFromNSSetAnyObjectToString | 192698 | 193710 | +0.5% | 0.99x(?) |
| ObjectiveCBridgeFromNSSetAnyObjectForced | 7697 | 7791 | +1.2% | 0.99x(?) |
| DeadArray | 140166 | 142008 | +1.3% | 0.99x |
| StaticArray | 17468 | 17752 | +1.6% | 0.98x(?) |
| ObjectiveCBridgeFromNSSetAnyObject | 102813 | 105238 | +2.4% | 0.98x(?) |
| Calculator | 944 | 959 | +1.6% | 0.98x |
| SetExclusiveOr | 51471 | 52527 | +2.0% | 0.98x |
| SetUnion | 36952 | 37639 | +1.9% | 0.98x |
| ObjectiveCBridgeFromNSDictionaryAnyObject | 199977 | 206396 | +3.2% | 0.97x(?) |
| SetIntersect_OfObjects | 20058 | 20728 | +3.3% | 0.97x |
| SetIsSubsetOf | 3110 | 3217 | +3.4% | 0.97x |
| SetIsSubsetOf_OfObjects | 2994 | 3095 | +3.4% | 0.97x |
| ArrayAppend | 2982 | 3085 | +3.5% | 0.97x |
| ObjectiveCBridgeFromNSArrayAnyObjectToString | 163970 | 172564 | +5.2% | 0.95x(?) |
| SetIntersect | 19927 | 21023 | +5.5% | 0.95x |
| StringWalk | 34761 | 36577 | +5.2% | 0.95x |
|
@swift-ci Please test |
1 similar comment
|
@swift-ci Please test |
|
@swift-ci Please benchmark |
Build comment file:Optimized (O)
|
| TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
|---|---|---|---|---|
| SetIsSubsetOf_OfObjects | 544 | 793 | +45.8% | 0.69x |
| SetIntersect | 1133 | 1312 | +15.8% | 0.86x(?) |
| SetIsSubsetOf | 480 | 554 | +15.4% | 0.87x |
| Array2D | 1945 | 2064 | +6.1% | 0.94x(?) |
Improvement (23)
| TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
|---|---|---|---|---|
| ObjectiveCBridgeFromNSDictionaryAnyObjectToString | 190305 | 179434 | -5.7% | 1.06x |
| SortLettersInPlace | 1009 | 951 | -5.8% | 1.06x |
| ObjectiveCBridgeToNSDictionary | 17765 | 16741 | -5.8% | 1.06x(?) |
| Chars | 627 | 591 | -5.7% | 1.06x |
| ObjectiveCBridgeToNSSet | 17162 | 16053 | -6.5% | 1.07x |
| ObjectiveCBridgeFromNSSetAnyObjectToStringForced | 110173 | 102559 | -6.9% | 1.07x(?) |
| ObjectiveCBridgeFromNSSetAnyObjectToString | 177528 | 165943 | -6.5% | 1.07x |
| DictionarySwapOfObjects | 7134 | 6576 | -7.8% | 1.08x(?) |
| SetExclusiveOr_OfObjects | 8673 | 8000 | -7.8% | 1.08x |
| ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced | 128243 | 115800 | -9.7% | 1.11x |
| 114 | 2508493 | 2235232 | -10.9% | 1.12x |
| SetIntersect_OfObjects | 2728 | 2375 | -12.9% | 1.15x |
| Dictionary2OfObjects | 3983 | 3425 | -14.0% | 1.16x |
| DictionaryOfObjects | 2707 | 2315 | -14.5% | 1.17x |
| Dictionary2 | 2413 | 2048 | -15.1% | 1.18x |
| Dictionary | 959 | 796 | -17.0% | 1.20x |
| Phonebook | 9151 | 6969 | -23.8% | 1.31x |
| LinkedList | 8960 | 6843 | -23.6% | 1.31x |
| Dictionary3OfObjects | 1219 | 910 | -25.4% | 1.34x |
| StrToInt | 6203 | 4612 | -25.6% | 1.34x |
| Dictionary3 | 796 | 580 | -27.1% | 1.37x |
| SuperChars | 550538 | 277744 | -49.5% | 1.98x |
| Calculator | 34 | 13 | -61.8% | 2.62x |
No Changes (88)
| TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
|---|---|---|---|---|
| Walsh | 317 | 302 | -4.7% | 1.05x |
| DictionaryLiteral | 3101 | 2944 | -5.1% | 1.05x(?) |
| ObjectAllocation | 146 | 141 | -3.4% | 1.04x(?) |
| SetUnion_OfObjects | 6925 | 6664 | -3.8% | 1.04x |
| RGBHistogram | 3354 | 3218 | -4.0% | 1.04x |
| TwoSum | 1732 | 1662 | -4.0% | 1.04x |
| DictionaryBridge | 3618 | 3511 | -3.0% | 1.03x(?) |
| StringInterpolation | 10310 | 10004 | -3.0% | 1.03x |
| DictionaryRemoveOfObjects | 20092 | 19492 | -3.0% | 1.03x |
| RGBHistogramOfObjects | 22368 | 21620 | -3.3% | 1.03x |
| StackPromo | 19100 | 18706 | -2.1% | 1.02x |
| ObjectiveCBridgeFromNSDictionaryAnyObjectForced | 4573 | 4477 | -2.1% | 1.02x(?) |
| ObjectiveCBridgeStubFromNSString | 700 | 687 | -1.9% | 1.02x |
| ObjectiveCBridgeStubToNSString | 1372 | 1365 | -0.5% | 1.01x(?) |
| ObjectiveCBridgeFromNSArrayAnyObjectToString | 162291 | 160517 | -1.1% | 1.01x(?) |
| Histogram | 652 | 643 | -1.4% | 1.01x |
| ObjectiveCBridgeFromNSArrayAnyObjectForced | 3629 | 3605 | -0.7% | 1.01x(?) |
| Prims | 722 | 714 | -1.1% | 1.01x |
| RangeAssignment | 264 | 261 | -1.1% | 1.01x(?) |
| Hanoi | 3160 | 3142 | -0.6% | 1.01x |
| UTF8Decode | 258 | 255 | -1.2% | 1.01x |
| ObjectiveCBridgeFromNSString | 1585 | 1563 | -1.4% | 1.01x |
| RC4 | 251 | 249 | -0.8% | 1.01x |
| HashTest | 1847 | 1826 | -1.1% | 1.01x |
| NSStringConversion | 596 | 593 | -0.5% | 1.01x |
| ObjectiveCBridgeFromNSSetAnyObjectForced | 4018 | 3988 | -0.8% | 1.01x |
| ArraySubscript | 1310 | 1308 | -0.1% | 1.00x(?) |
| ObjectiveCBridgeToNSString | 1030 | 1032 | +0.2% | 1.00x(?) |
| MonteCarloPi | 42646 | 42576 | -0.2% | 1.00x |
| PopFrontArray | 1224 | 1224 | +0.0% | 1.00x |
| RecursiveOwnedParameter | 1828 | 1826 | -0.1% | 1.00x |
| ClassArrayGetter | 12 | 12 | +0.0% | 1.00x |
| SortStrings | 1705 | 1708 | +0.2% | 1.00x(?) |
| ArrayOfGenericPOD | 208 | 208 | +0.0% | 1.00x |
| StringWithCString | 75695 | 75617 | -0.1% | 1.00x(?) |
| ObjectiveCBridgeFromNSStringForced | 2147 | 2157 | +0.5% | 1.00x(?) |
| ObjectiveCBridgeFromNSDictionaryAnyObject | 187112 | 186663 | -0.2% | 1.00x(?) |
| ByteSwap | 1 | 1 | +0.0% | 1.00x |
| XorLoop | 359 | 359 | +0.0% | 1.00x |
| ErrorHandling | 2946 | 2938 | -0.3% | 1.00x(?) |
| ObjectiveCBridgeStubFromNSStringRef | 327 | 327 | +0.0% | 1.00x |
| StaticArray | 2662 | 2670 | +0.3% | 1.00x(?) |
| ProtocolDispatch | 2873 | 2873 | +0.0% | 1.00x |
| TypeFlood | 0 | 0 | +0.0% | 1.00x |
| ArrayOfRef | 3443 | 3460 | +0.5% | 1.00x(?) |
| ObjectiveCBridgeToNSArray | 29440 | 29425 | -0.1% | 1.00x(?) |
| PopFrontArrayGeneric | 1218 | 1221 | +0.2% | 1.00x |
| PopFrontUnsafePointer | 8486 | 8496 | +0.1% | 1.00x(?) |
| CaptureProp | 3746 | 3737 | -0.2% | 1.00x(?) |
| PolymorphicCalls | 61 | 61 | +0.0% | 1.00x |
| MapReduce | 327 | 326 | -0.3% | 1.00x(?) |
| OpenClose | 49 | 49 | +0.0% | 1.00x |
| NopDeinit | 34620 | 34579 | -0.1% | 1.00x(?) |
| ObjectiveCBridgeStubToArrayOfNSString | 29599 | 29713 | +0.4% | 1.00x(?) |
| MonteCarloE | 10000 | 10029 | +0.3% | 1.00x |
| ArrayAppend | 727 | 728 | +0.1% | 1.00x(?) |
| ArrayAppendReserved | 507 | 506 | -0.2% | 1.00x(?) |
| BitCount | 1 | 1 | +0.0% | 1.00x |
| ArrayValueProp3 | 5 | 5 | +0.0% | 1.00x |
| StringWalk | 5924 | 5944 | +0.3% | 1.00x(?) |
| ArrayValueProp | 5 | 5 | +0.0% | 1.00x |
| GlobalClass | 0 | 0 | +0.0% | 1.00x |
| Memset | 222 | 223 | +0.5% | 1.00x |
| ArrayValueProp4 | 5 | 5 | +0.0% | 1.00x |
| ArrayValueProp2 | 5 | 5 | +0.0% | 1.00x |
| SevenBoom | 1274 | 1272 | -0.2% | 1.00x(?) |
| DictionarySwap | 752 | 758 | +0.8% | 0.99x |
| ArrayLiteral | 970 | 984 | +1.4% | 0.99x(?) |
| ProtocolDispatch2 | 151 | 152 | +0.7% | 0.99x |
| ObjectiveCBridgeFromNSArrayAnyObject | 62378 | 63019 | +1.0% | 0.99x(?) |
| SetExclusiveOr | 3761 | 3816 | +1.5% | 0.99x(?) |
| NSDictionaryCastToSwift | 8432 | 8547 | +1.4% | 0.99x(?) |
| StringBuilder | 1385 | 1393 | +0.6% | 0.99x |
| ArrayInClass | 83 | 84 | +1.2% | 0.99x(?) |
| Sim2DArray | 402 | 406 | +1.0% | 0.99x(?) |
| ArrayOfPOD | 171 | 172 | +0.6% | 0.99x(?) |
| DeadArray | 174 | 175 | +0.6% | 0.99x |
| AngryPhonebook | 3313 | 3357 | +1.3% | 0.99x(?) |
| Integrate | 234 | 238 | +1.7% | 0.98x |
| StrComplexWalk | 3000 | 3052 | +1.7% | 0.98x |
| Join | 434 | 441 | +1.6% | 0.98x |
| NSError | 353 | 360 | +2.0% | 0.98x(?) |
| ArrayOfGenericRef | 3438 | 3524 | +2.5% | 0.98x(?) |
| ObjectiveCBridgeStubFromArrayOfNSString | 110054 | 112843 | +2.5% | 0.98x(?) |
| ObjectiveCBridgeFromNSSetAnyObject | 93289 | 96365 | +3.3% | 0.97x(?) |
| DictionaryRemove | 4721 | 4911 | +4.0% | 0.96x(?) |
| ObjectiveCBridgeFromNSArrayAnyObjectToStringForced | 159427 | 165260 | +3.7% | 0.96x(?) |
| SetUnion | 3271 | 3440 | +5.2% | 0.95x(?) |
Regression (1)
| TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
|---|---|---|---|---|
| StringWalk | 22395 | 49656 | +121.7% | 0.45x |
Improvement (18)
| TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
|---|---|---|---|---|
| PopFrontArray | 12140 | 11452 | -5.7% | 1.06x |
| Dictionary3 | 2258 | 2139 | -5.3% | 1.06x |
| ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced | 129872 | 122791 | -5.5% | 1.06x |
| Dictionary2OfObjects | 7253 | 6874 | -5.2% | 1.06x |
| ObjectiveCBridgeFromNSDictionaryAnyObjectToString | 202891 | 189680 | -6.5% | 1.07x |
| ClassArrayGetter | 1264 | 1183 | -6.4% | 1.07x |
| Dictionary2 | 5481 | 5113 | -6.7% | 1.07x |
| Dictionary | 4498 | 4204 | -6.5% | 1.07x |
| 114 | 5458223 | 5124837 | -6.1% | 1.07x |
| ObjectiveCBridgeFromNSSetAnyObjectToStringForced | 124116 | 115100 | -7.3% | 1.08x |
| StrToInt | 20431 | 18536 | -9.3% | 1.10x |
| ArrayOfGenericRef | 10405 | 9473 | -9.0% | 1.10x |
| ArrayOfRef | 9801 | 8796 | -10.2% | 1.11x |
| Memset | 20642 | 18638 | -9.7% | 1.11x |
| Hanoi | 21901 | 18862 | -13.9% | 1.16x |
| RangeAssignment | 15632 | 12742 | -18.5% | 1.23x |
| RecursiveOwnedParameter | 10339 | 7648 | -26.0% | 1.35x |
| StringWithCString | 325588 | 73739 | -77.3% | 4.42x |
No Changes (96)
| TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
|---|---|---|---|---|
| DictionaryBridge | 3749 | 3556 | -5.2% | 1.05x(?) |
| TypeFlood | 154 | 146 | -5.2% | 1.05x(?) |
| Phonebook | 86090 | 82230 | -4.5% | 1.05x |
| StackPromo | 166702 | 160804 | -3.5% | 1.04x |
| Array2D | 790759 | 759471 | -4.0% | 1.04x |
| SortStrings | 14291 | 13769 | -3.6% | 1.04x |
| Prims | 14664 | 14160 | -3.4% | 1.04x |
| Dictionary3OfObjects | 2891 | 2769 | -4.2% | 1.04x |
| ObjectAllocation | 1322 | 1275 | -3.6% | 1.04x |
| PopFrontArrayGeneric | 12254 | 11816 | -3.6% | 1.04x |
| StringBuilder | 8457 | 8137 | -3.8% | 1.04x |
| ObjectiveCBridgeToNSDictionary | 17558 | 16835 | -4.1% | 1.04x |
| RC4 | 8743 | 8431 | -3.6% | 1.04x |
| ObjectiveCBridgeToNSSet | 17675 | 16983 | -3.9% | 1.04x(?) |
| ArrayValueProp4 | 2528 | 2440 | -3.5% | 1.04x(?) |
| ArrayValueProp3 | 2596 | 2507 | -3.4% | 1.04x |
| ArrayValueProp2 | 18521 | 17893 | -3.4% | 1.04x |
| ArraySubscript | 5335 | 5186 | -2.8% | 1.03x |
| ObjectiveCBridgeFromNSArrayAnyObjectToString | 161279 | 156693 | -2.8% | 1.03x(?) |
| Histogram | 13840 | 13457 | -2.8% | 1.03x |
| ArrayOfGenericPOD | 3345 | 3233 | -3.4% | 1.03x |
| CaptureProp | 53737 | 52068 | -3.1% | 1.03x |
| MapReduce | 42930 | 41799 | -2.6% | 1.03x |
| UTF8Decode | 39196 | 38013 | -3.0% | 1.03x |
| ObjectiveCBridgeFromNSSetAnyObjectToString | 187991 | 181958 | -3.2% | 1.03x(?) |
| MonteCarloE | 101903 | 98976 | -2.9% | 1.03x |
| Walsh | 12216 | 11832 | -3.1% | 1.03x |
| RGBHistogramOfObjects | 118283 | 114606 | -3.1% | 1.03x |
| RGBHistogram | 67179 | 65485 | -2.5% | 1.03x |
| Chars | 54512 | 52789 | -3.2% | 1.03x |
| AngryPhonebook | 6254 | 6095 | -2.5% | 1.03x |
| SortLettersInPlace | 4242 | 4145 | -2.3% | 1.02x |
| XorLoop | 18459 | 18034 | -2.3% | 1.02x |
| ErrorHandling | 7262 | 7110 | -2.1% | 1.02x |
| Join | 1338 | 1309 | -2.2% | 1.02x |
| NSError | 662 | 646 | -2.4% | 1.02x(?) |
| DictionaryOfObjects | 7288 | 7128 | -2.2% | 1.02x |
| ArrayInClass | 3648 | 3561 | -2.4% | 1.02x |
| NSStringConversion | 2617 | 2558 | -2.2% | 1.02x |
| ArrayValueProp | 2225 | 2192 | -1.5% | 1.02x(?) |
| ObjectiveCBridgeToNSString | 1058 | 1050 | -0.8% | 1.01x(?) |
| HashTest | 6221 | 6132 | -1.4% | 1.01x(?) |
| ObjectiveCBridgeToNSArray | 29502 | 29139 | -1.2% | 1.01x(?) |
| DictionaryLiteral | 20051 | 19812 | -1.2% | 1.01x(?) |
| ObjectiveCBridgeFromNSArrayAnyObject | 66091 | 65599 | -0.7% | 1.01x(?) |
| DeadArray | 133036 | 132271 | -0.6% | 1.01x(?) |
| ArrayAppendReserved | 2614 | 2587 | -1.0% | 1.01x |
| SevenBoom | 1444 | 1423 | -1.4% | 1.01x |
| DictionarySwapOfObjects | 25177 | 25191 | +0.1% | 1.00x(?) |
| ObjectiveCBridgeStubToNSString | 1673 | 1668 | -0.3% | 1.00x |
| ObjectiveCBridgeFromNSDictionaryAnyObjectForced | 6975 | 6984 | +0.1% | 1.00x(?) |
| MonteCarloPi | 50494 | 50466 | -0.1% | 1.00x(?) |
| ObjectiveCBridgeFromNSStringForced | 2561 | 2565 | +0.2% | 1.00x(?) |
| ByteSwap | 9 | 9 | +0.0% | 1.00x |
| StringInterpolation | 14220 | 14234 | +0.1% | 1.00x(?) |
| ObjectiveCBridgeStubFromNSStringRef | 651 | 651 | +0.0% | 1.00x |
| StaticArray | 16929 | 16987 | +0.3% | 1.00x(?) |
| ArrayLiteral | 1032 | 1033 | +0.1% | 1.00x(?) |
| PopFrontUnsafePointer | 94893 | 94618 | -0.3% | 1.00x |
| OpenClose | 468 | 470 | +0.4% | 1.00x(?) |
| NopDeinit | 59172 | 59336 | +0.3% | 1.00x(?) |
| ObjectiveCBridgeStubToArrayOfNSString | 30018 | 30115 | +0.3% | 1.00x(?) |
| Sim2DArray | 13136 | 13153 | +0.1% | 1.00x |
| SetUnion_OfObjects | 51363 | 51272 | -0.2% | 1.00x(?) |
| DictionaryRemove | 30101 | 30109 | +0.0% | 1.00x(?) |
| LinkedList | 26371 | 26432 | +0.2% | 1.00x |
| ArrayOfPOD | 2143 | 2141 | -0.1% | 1.00x(?) |
| GlobalClass | 0 | 0 | +0.0% | 1.00x |
| TwoSum | 9255 | 9296 | +0.4% | 1.00x(?) |
| ObjectiveCBridgeFromNSDictionaryAnyObject | 193599 | 195036 | +0.7% | 0.99x(?) |
| ObjectiveCBridgeFromNSArrayAnyObjectForced | 6922 | 7004 | +1.2% | 0.99x(?) |
| DictionarySwap | 11045 | 11126 | +0.7% | 0.99x |
| SuperChars | 727102 | 732088 | +0.7% | 0.99x(?) |
| Integrate | 345 | 347 | +0.6% | 0.99x |
| ObjectiveCBridgeStubFromNSString | 1125 | 1141 | +1.4% | 0.99x(?) |
| ProtocolDispatch | 4956 | 5029 | +1.5% | 0.99x(?) |
| ObjectiveCBridgeFromNSSetAnyObject | 99309 | 100182 | +0.9% | 0.99x(?) |
| ProtocolDispatch2 | 417 | 422 | +1.2% | 0.99x(?) |
| StrComplexWalk | 7957 | 8033 | +1.0% | 0.99x(?) |
| SetIntersect_OfObjects | 18799 | 18964 | +0.9% | 0.99x |
| Calculator | 885 | 892 | +0.8% | 0.99x |
| DictionaryRemoveOfObjects | 60318 | 60636 | +0.5% | 0.99x |
| SetIsSubsetOf | 2940 | 2957 | +0.6% | 0.99x(?) |
| SetIntersect | 18833 | 19041 | +1.1% | 0.99x |
| SetExclusiveOr | 48583 | 49014 | +0.9% | 0.99x |
| NSDictionaryCastToSwift | 9626 | 9714 | +0.9% | 0.99x(?) |
| ObjectiveCBridgeFromNSString | 4898 | 4961 | +1.3% | 0.99x(?) |
| SetExclusiveOr_OfObjects | 67082 | 67493 | +0.6% | 0.99x |
| SetIsSubsetOf_OfObjects | 2814 | 2854 | +1.4% | 0.99x(?) |
| ObjectiveCBridgeFromNSSetAnyObjectForced | 7334 | 7427 | +1.3% | 0.99x(?) |
| SetUnion | 34899 | 35178 | +0.8% | 0.99x(?) |
| PolymorphicCalls | 1118 | 1137 | +1.7% | 0.98x(?) |
| ObjectiveCBridgeFromNSArrayAnyObjectToStringForced | 155986 | 159201 | +2.1% | 0.98x(?) |
| ObjectiveCBridgeStubFromArrayOfNSString | 108376 | 111092 | +2.5% | 0.98x(?) |
| BitCount | 84 | 87 | +3.6% | 0.97x |
| ArrayAppend | 2831 | 2936 | +3.7% | 0.96x |
There was a problem hiding this comment.
Rather than copy these from the ARCSequenceOpts, could you make a single shared versions of these?
It may even make sense to put these directly in SILBuilder if there were an unambiguous name that could be used (e.g. emitStrongRelease wouldn't be great because it sounds like it only creates strong_releases).
Perhaps emitReleaseValue() could work though, with the knowledge that it peepholes it into a simpler strong_release when appropriate?
There was a problem hiding this comment.
This can be done. In fact we have more places i think that makes uses of these functions in our code base. I will share them. I will do that in a separate commit though as this involves moving code irrelevant to this commit
There was a problem hiding this comment.
Creating the temporary seems like the way to go here, otherwise you're creating and keeping N extra bit vectors around for an N-block function.
There was a problem hiding this comment.
Have you measured the cardinality of any of these sets? For example getting a histogram of how large these tend to be at some point(s) in solving the equations, compared to the allocation size, could be interesting. I suspect these are relatively small so it might not matter, but in some cases sparse bit vectors can be a large win over dense ones both in terms of memory consumed and work involved in intersections and unions.
There was a problem hiding this comment.
Allocation size : we rarely exceed 16 unique rc roots. usually, 1 - 3 rc roots in a function. So we are allocating a lot of unused spaces here in most cases. but it does not take too much memory anyhow. and its allocated and deallocated through a BumpPtrAllocator which means allocations and deallocations are cheap most of the time .
Used size: I did not measure how large these tend to be at some point(s) in solving the equations, compared to the allocation size.
|
@swift-ci Please benchmark |
There was a problem hiding this comment.
This should be asserting on the kinds of instructions that are valid here. It's clear from the uses of the function that it's only called on certain instructions, but it should be made evident in the function body as well.
Build comment file:Optimized (O)
|
| TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
|---|---|---|---|---|
| SetIsSubsetOf | 481 | 552 | +14.8% | 0.87x |
| SetIsSubsetOf_OfObjects | 540 | 623 | +15.4% | 0.87x |
| SetIntersect | 1134 | 1291 | +13.8% | 0.88x |
| Sim2DArray | 363 | 411 | +13.2% | 0.88x |
| ObjectiveCBridgeFromNSArrayAnyObjectToString | 155001 | 167017 | +7.8% | 0.93x |
Improvement (20)
| TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
|---|---|---|---|---|
| ObjectiveCBridgeFromNSSetAnyObjectToString | 177665 | 167067 | -6.0% | 1.06x |
| ObjectiveCBridgeToNSSet | 17671 | 16502 | -6.6% | 1.07x |
| DictionarySwapOfObjects | 7169 | 6650 | -7.2% | 1.08x |
| SortLettersInPlace | 1016 | 944 | -7.1% | 1.08x |
| OpenClose | 53 | 49 | -7.5% | 1.08x |
| SetExclusiveOr_OfObjects | 8605 | 7887 | -8.3% | 1.09x |
| SetIntersect_OfObjects | 2656 | 2379 | -10.4% | 1.12x |
| ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced | 134471 | 119388 | -11.2% | 1.13x |
| 114 | 2550058 | 2239812 | -12.2% | 1.14x |
| DictionaryOfObjects | 2699 | 2329 | -13.7% | 1.16x |
| Dictionary2 | 2403 | 2058 | -14.4% | 1.17x |
| Dictionary2OfObjects | 3988 | 3406 | -14.6% | 1.17x |
| Dictionary | 965 | 811 | -16.0% | 1.19x |
| LinkedList | 8917 | 6851 | -23.2% | 1.30x |
| Dictionary3OfObjects | 1225 | 915 | -25.3% | 1.34x |
| Phonebook | 9109 | 6817 | -25.2% | 1.34x |
| StrToInt | 6094 | 4431 | -27.3% | 1.38x |
| Dictionary3 | 796 | 563 | -29.3% | 1.41x |
| SuperChars | 550554 | 278269 | -49.5% | 1.98x |
| Calculator | 34 | 12 | -64.7% | 2.83x |
No Changes (90)
| TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
|---|---|---|---|---|
| ObjectiveCBridgeFromNSDictionaryAnyObjectToString | 188553 | 179773 | -4.7% | 1.05x(?) |
| RangeAssignment | 273 | 259 | -5.1% | 1.05x |
| Hanoi | 3323 | 3160 | -4.9% | 1.05x |
| ObjectiveCBridgeToNSDictionary | 17917 | 17022 | -5.0% | 1.05x |
| Chars | 618 | 591 | -4.4% | 1.05x |
| DictionaryBridge | 3673 | 3529 | -3.9% | 1.04x |
| RGBHistogramOfObjects | 22424 | 21634 | -3.5% | 1.04x |
| SetUnion_OfObjects | 6913 | 6637 | -4.0% | 1.04x |
| RGBHistogram | 3375 | 3230 | -4.3% | 1.04x |
| ObjectiveCBridgeFromNSArrayAnyObjectToStringForced | 164204 | 158620 | -3.4% | 1.04x(?) |
| TwoSum | 1730 | 1660 | -4.0% | 1.04x |
| Array2D | 2060 | 2003 | -2.8% | 1.03x(?) |
| SortStrings | 1731 | 1687 | -2.5% | 1.03x |
| ErrorHandling | 2977 | 2880 | -3.3% | 1.03x |
| DictionaryRemoveOfObjects | 20087 | 19530 | -2.8% | 1.03x |
| SetUnion | 3608 | 3487 | -3.4% | 1.03x |
| StackPromo | 19079 | 18721 | -1.9% | 1.02x |
| StringInterpolation | 10394 | 10196 | -1.9% | 1.02x |
| ObjectiveCBridgeToNSArray | 30134 | 29633 | -1.7% | 1.02x(?) |
| StringWalk | 6117 | 5978 | -2.3% | 1.02x |
| ObjectiveCBridgeStubFromArrayOfNSString | 111221 | 108581 | -2.4% | 1.02x |
| ArraySubscript | 1326 | 1317 | -0.7% | 1.01x(?) |
| Histogram | 652 | 643 | -1.4% | 1.01x |
| ObjectiveCBridgeFromNSArrayAnyObjectForced | 3640 | 3612 | -0.8% | 1.01x(?) |
| Prims | 726 | 719 | -1.0% | 1.01x(?) |
| MapReduce | 330 | 327 | -0.9% | 1.01x(?) |
| ObjectiveCBridgeFromNSSetAnyObjectToStringForced | 110427 | 108971 | -1.3% | 1.01x(?) |
| ObjectiveCBridgeFromNSSetAnyObjectForced | 4093 | 4040 | -1.3% | 1.01x |
| SevenBoom | 1278 | 1270 | -0.6% | 1.01x(?) |
| MonteCarloPi | 42549 | 42644 | +0.2% | 1.00x |
| PopFrontArray | 1229 | 1229 | +0.0% | 1.00x |
| RecursiveOwnedParameter | 1832 | 1828 | -0.2% | 1.00x |
| Integrate | 235 | 236 | +0.4% | 1.00x |
| ClassArrayGetter | 13 | 13 | +0.0% | 1.00x |
| StringWithCString | 75647 | 75650 | +0.0% | 1.00x(?) |
| DictionarySwap | 758 | 756 | -0.3% | 1.00x(?) |
| ObjectiveCBridgeFromNSDictionaryAnyObject | 188668 | 189340 | +0.4% | 1.00x(?) |
| ByteSwap | 1 | 1 | +0.0% | 1.00x |
| XorLoop | 359 | 358 | -0.3% | 1.00x |
| ObjectiveCBridgeStubToNSString | 1377 | 1378 | +0.1% | 1.00x(?) |
| ObjectiveCBridgeStubFromNSStringRef | 326 | 327 | +0.3% | 1.00x(?) |
| ProtocolDispatch | 2912 | 2900 | -0.4% | 1.00x(?) |
| TypeFlood | 0 | 0 | +0.0% | 1.00x |
| ObjectiveCBridgeFromNSSetAnyObject | 95270 | 95529 | +0.3% | 1.00x(?) |
| StrComplexWalk | 3021 | 3011 | -0.3% | 1.00x(?) |
| PopFrontUnsafePointer | 8512 | 8528 | +0.2% | 1.00x |
| CaptureProp | 3747 | 3737 | -0.3% | 1.00x(?) |
| ArrayOfGenericPOD | 207 | 207 | +0.0% | 1.00x |
| NopDeinit | 34578 | 34613 | +0.1% | 1.00x(?) |
| ObjectiveCBridgeStubToArrayOfNSString | 30115 | 30033 | -0.3% | 1.00x(?) |
| ObjectiveCBridgeFromNSArrayAnyObject | 63022 | 62791 | -0.4% | 1.00x(?) |
| ArrayOfGenericRef | 3492 | 3490 | -0.1% | 1.00x(?) |
| ObjectiveCBridgeFromNSString | 1550 | 1551 | +0.1% | 1.00x(?) |
| MonteCarloE | 10065 | 10023 | -0.4% | 1.00x |
| GlobalClass | 0 | 0 | +0.0% | 1.00x |
| HashTest | 1827 | 1833 | +0.3% | 1.00x(?) |
| ArrayAppend | 726 | 728 | +0.3% | 1.00x |
| ArrayOfPOD | 172 | 172 | +0.0% | 1.00x |
| BitCount | 1 | 1 | +0.0% | 1.00x |
| AngryPhonebook | 3345 | 3359 | +0.4% | 1.00x(?) |
| ArrayValueProp3 | 5 | 5 | +0.0% | 1.00x |
| ArrayValueProp | 5 | 5 | +0.0% | 1.00x |
| RC4 | 249 | 249 | +0.0% | 1.00x |
| Memset | 223 | 222 | -0.5% | 1.00x |
| ArrayValueProp4 | 5 | 5 | +0.0% | 1.00x |
| ArrayValueProp2 | 5 | 5 | +0.0% | 1.00x |
| ObjectiveCBridgeToNSString | 1021 | 1028 | +0.7% | 0.99x(?) |
| ObjectiveCBridgeFromNSDictionaryAnyObjectForced | 4528 | 4573 | +1.0% | 0.99x(?) |
| Join | 440 | 446 | +1.4% | 0.99x |
| ObjectiveCBridgeStubFromNSString | 692 | 700 | +1.2% | 0.99x(?) |
| ObjectAllocation | 141 | 142 | +0.7% | 0.99x(?) |
| ArrayLiteral | 983 | 993 | +1.0% | 0.99x(?) |
| PopFrontArrayGeneric | 1227 | 1239 | +1.0% | 0.99x |
| UTF8Decode | 255 | 258 | +1.2% | 0.99x |
| SetExclusiveOr | 3839 | 3867 | +0.7% | 0.99x(?) |
| StringBuilder | 1385 | 1395 | +0.7% | 0.99x(?) |
| ArrayInClass | 82 | 83 | +1.2% | 0.99x(?) |
| ArrayAppendReserved | 506 | 510 | +0.8% | 0.99x |
| ObjectiveCBridgeFromNSStringForced | 2161 | 2209 | +2.2% | 0.98x |
| ArrayOfRef | 3443 | 3505 | +1.8% | 0.98x |
| PolymorphicCalls | 61 | 62 | +1.6% | 0.98x |
| DictionaryLiteral | 3050 | 3117 | +2.2% | 0.98x |
| DeadArray | 172 | 175 | +1.7% | 0.98x |
| StaticArray | 2641 | 2715 | +2.8% | 0.97x |
| ProtocolDispatch2 | 149 | 154 | +3.4% | 0.97x |
| NSError | 351 | 361 | +2.9% | 0.97x |
| NSDictionaryCastToSwift | 8227 | 8488 | +3.2% | 0.97x(?) |
| DictionaryRemove | 4783 | 4915 | +2.8% | 0.97x |
| Walsh | 317 | 330 | +4.1% | 0.96x |
| NSStringConversion | 565 | 593 | +5.0% | 0.95x |
Regression (2)
| TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
|---|---|---|---|---|
| NopDeinit | 52988 | 60323 | +13.8% | 0.88x |
| BitCount | 77 | 83 | +7.8% | 0.93x |
Improvement (26)
| TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
|---|---|---|---|---|
| ObjectiveCBridgeFromNSDictionaryAnyObjectToString | 197216 | 186765 | -5.3% | 1.06x(?) |
| Dictionary3OfObjects | 2893 | 2718 | -6.0% | 1.06x |
| DictionaryOfObjects | 7340 | 6955 | -5.2% | 1.06x |
| ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced | 130755 | 123709 | -5.4% | 1.06x |
| ObjectiveCBridgeFromNSSetAnyObjectToString | 191088 | 179591 | -6.0% | 1.06x(?) |
| PopFrontArray | 12194 | 11403 | -6.5% | 1.07x |
| ClassArrayGetter | 1264 | 1182 | -6.5% | 1.07x |
| ArrayOfGenericPOD | 3453 | 3222 | -6.7% | 1.07x |
| CaptureProp | 54774 | 51388 | -6.2% | 1.07x |
| ArrayOfPOD | 2232 | 2085 | -6.6% | 1.07x |
| XorLoop | 19449 | 18034 | -7.3% | 1.08x |
| Dictionary3 | 2257 | 2088 | -7.5% | 1.08x |
| Dictionary2 | 5529 | 5122 | -7.4% | 1.08x |
| ArrayInClass | 3853 | 3562 | -7.5% | 1.08x |
| 114 | 5488413 | 5085575 | -7.3% | 1.08x |
| Sim2DArray | 14305 | 13153 | -8.1% | 1.09x |
| ObjectiveCBridgeFromNSArrayAnyObjectForced | 7583 | 6925 | -8.7% | 1.10x |
| ArrayOfRef | 9769 | 8799 | -9.9% | 1.11x |
| ArrayOfGenericRef | 10431 | 9406 | -9.8% | 1.11x |
| Memset | 20657 | 18638 | -9.8% | 1.11x |
| StrToInt | 20864 | 18545 | -11.1% | 1.13x |
| Hanoi | 22041 | 18950 | -14.0% | 1.16x |
| RangeAssignment | 15604 | 12839 | -17.7% | 1.22x |
| RecursiveOwnedParameter | 10343 | 7567 | -26.8% | 1.37x |
| StringWalk | 47311 | 22140 | -53.2% | 2.14x |
| StringWithCString | 325731 | 73789 | -77.3% | 4.41x |
No Changes (87)
| TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
|---|---|---|---|---|
| Array2D | 795016 | 758412 | -4.6% | 1.05x |
| Prims | 14737 | 14060 | -4.6% | 1.05x |
| ObjectAllocation | 1330 | 1272 | -4.4% | 1.05x |
| ObjectiveCBridgeToNSDictionary | 17982 | 17114 | -4.8% | 1.05x(?) |
| Walsh | 12376 | 11788 | -4.8% | 1.05x |
| ObjectiveCBridgeToNSSet | 17492 | 16680 | -4.6% | 1.05x(?) |
| ObjectiveCBridgeStubFromArrayOfNSString | 114026 | 108499 | -4.8% | 1.05x(?) |
| Dictionary2OfObjects | 7238 | 6899 | -4.7% | 1.05x |
| DictionaryBridge | 3724 | 3569 | -4.2% | 1.04x |
| SortLettersInPlace | 4327 | 4167 | -3.7% | 1.04x |
| PopFrontArrayGeneric | 12269 | 11786 | -3.9% | 1.04x |
| Dictionary | 4376 | 4209 | -3.8% | 1.04x |
| RC4 | 8774 | 8433 | -3.9% | 1.04x |
| ArraySubscript | 5337 | 5187 | -2.8% | 1.03x |
| StackPromo | 163533 | 159211 | -2.6% | 1.03x(?) |
| Join | 1338 | 1300 | -2.8% | 1.03x |
| ArrayAppend | 2735 | 2663 | -2.6% | 1.03x(?) |
| NSError | 660 | 641 | -2.9% | 1.03x |
| MapReduce | 42798 | 41465 | -3.1% | 1.03x |
| UTF8Decode | 39266 | 38036 | -3.1% | 1.03x |
| Phonebook | 86791 | 84536 | -2.6% | 1.03x(?) |
| MonteCarloE | 101873 | 98771 | -3.0% | 1.03x |
| ObjectiveCBridgeFromNSSetAnyObjectToStringForced | 120483 | 116449 | -3.4% | 1.03x(?) |
| Chars | 54347 | 52864 | -2.7% | 1.03x |
| AngryPhonebook | 6320 | 6115 | -3.2% | 1.03x |
| ArrayValueProp4 | 2550 | 2473 | -3.0% | 1.03x |
| Histogram | 13858 | 13630 | -1.6% | 1.02x(?) |
| SortStrings | 14217 | 13903 | -2.2% | 1.02x |
| ObjectiveCBridgeFromNSDictionaryAnyObjectForced | 7035 | 6907 | -1.8% | 1.02x(?) |
| ErrorHandling | 7261 | 7115 | -2.0% | 1.02x |
| HashTest | 6231 | 6125 | -1.7% | 1.02x |
| ObjectiveCBridgeToNSArray | 29596 | 29110 | -1.6% | 1.02x(?) |
| DictionaryLiteral | 20386 | 19978 | -2.0% | 1.02x |
| StringBuilder | 8403 | 8200 | -2.4% | 1.02x |
| ObjectiveCBridgeFromNSString | 5001 | 4893 | -2.2% | 1.02x(?) |
| RGBHistogram | 67235 | 66018 | -1.8% | 1.02x |
| ArrayValueProp | 2245 | 2191 | -2.4% | 1.02x |
| ArrayValueProp2 | 18265 | 17835 | -2.4% | 1.02x |
| ArrayValueProp3 | 2583 | 2543 | -1.6% | 1.02x(?) |
| ObjectiveCBridgeFromNSArrayAnyObjectToString | 155890 | 154611 | -0.8% | 1.01x(?) |
| ObjectiveCBridgeFromNSStringForced | 2583 | 2563 | -0.8% | 1.01x(?) |
| StringInterpolation | 14249 | 14140 | -0.8% | 1.01x(?) |
| ProtocolDispatch | 5522 | 5474 | -0.9% | 1.01x(?) |
| PopFrontUnsafePointer | 95275 | 94676 | -0.6% | 1.01x(?) |
| ObjectiveCBridgeFromNSArrayAnyObject | 66700 | 66256 | -0.7% | 1.01x(?) |
| RGBHistogramOfObjects | 115828 | 114708 | -1.0% | 1.01x |
| NSStringConversion | 2603 | 2581 | -0.8% | 1.01x(?) |
| ObjectiveCBridgeFromNSSetAnyObjectForced | 7532 | 7435 | -1.3% | 1.01x(?) |
| SevenBoom | 1426 | 1416 | -0.7% | 1.01x(?) |
| ObjectiveCBridgeToNSString | 1047 | 1048 | +0.1% | 1.00x(?) |
| DictionarySwapOfObjects | 25220 | 25164 | -0.2% | 1.00x(?) |
| Integrate | 342 | 343 | +0.3% | 1.00x(?) |
| MonteCarloPi | 50424 | 50537 | +0.2% | 1.00x |
| DictionarySwap | 11046 | 11043 | -0.0% | 1.00x(?) |
| ByteSwap | 9 | 9 | +0.0% | 1.00x |
| SuperChars | 726854 | 728368 | +0.2% | 1.00x(?) |
| ObjectiveCBridgeStubToNSString | 1669 | 1674 | +0.3% | 1.00x |
| ObjectiveCBridgeStubFromNSStringRef | 651 | 651 | +0.0% | 1.00x |
| StaticArray | 17011 | 16961 | -0.3% | 1.00x(?) |
| ArrayLiteral | 1038 | 1040 | +0.2% | 1.00x(?) |
| ProtocolDispatch2 | 419 | 421 | +0.5% | 1.00x(?) |
| SetIntersect_OfObjects | 18851 | 18935 | +0.5% | 1.00x(?) |
| Calculator | 931 | 930 | -0.1% | 1.00x |
| DictionaryRemoveOfObjects | 60500 | 60432 | -0.1% | 1.00x(?) |
| ObjectiveCBridgeStubToArrayOfNSString | 29849 | 29792 | -0.2% | 1.00x(?) |
| NSDictionaryCastToSwift | 9655 | 9658 | +0.0% | 1.00x(?) |
| SetUnion_OfObjects | 51207 | 51389 | +0.4% | 1.00x(?) |
| GlobalClass | 0 | 0 | +0.0% | 1.00x |
| SetIsSubsetOf_OfObjects | 2831 | 2844 | +0.5% | 1.00x(?) |
| DictionaryRemove | 30174 | 30182 | +0.0% | 1.00x(?) |
| LinkedList | 26315 | 26222 | -0.3% | 1.00x(?) |
| ArrayAppendReserved | 2531 | 2533 | +0.1% | 1.00x(?) |
| SetUnion | 34895 | 35019 | +0.4% | 1.00x |
| TwoSum | 9295 | 9338 | +0.5% | 1.00x |
| ObjectiveCBridgeFromNSDictionaryAnyObject | 192190 | 194567 | +1.2% | 0.99x(?) |
| ObjectiveCBridgeFromNSSetAnyObject | 100247 | 101533 | +1.3% | 0.99x(?) |
| SetIsSubsetOf | 2947 | 2989 | +1.4% | 0.99x |
| SetExclusiveOr | 48584 | 49025 | +0.9% | 0.99x |
| SetExclusiveOr_OfObjects | 67039 | 67751 | +1.1% | 0.99x |
| DeadArray | 132649 | 133909 | +0.9% | 0.99x(?) |
| ObjectiveCBridgeStubFromNSString | 1116 | 1140 | +2.1% | 0.98x |
| TypeFlood | 155 | 158 | +1.9% | 0.98x(?) |
| StrComplexWalk | 7809 | 7948 | +1.8% | 0.98x |
| SetIntersect | 18871 | 19351 | +2.5% | 0.98x |
| PolymorphicCalls | 1111 | 1140 | +2.6% | 0.97x |
| ObjectiveCBridgeFromNSArrayAnyObjectToStringForced | 157579 | 162693 | +3.2% | 0.97x(?) |
| OpenClose | 448 | 469 | +4.7% | 0.96x(?) |
There was a problem hiding this comment.
You seem to already be using this. Is the comment out of date? It's preferred to not commit dead code (even commented), but instead introduce something when it's actually used. Is it possible to remove either ThisBlock or HasBlock and remove the other?
Also, a name more informative than ThisBlock would be helpful here.
There was a problem hiding this comment.
This comment is out of date. I will remove the HasBlock and rename ThisBlock
|
@swift-ci Please test |
|
@swift-ci Please benchmark |
Build comment file:Optimized (O)
|
| TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
|---|---|---|---|---|
| Sim2DArray | 365 | 408 | +11.8% | 0.89x |
| SetUnion | 3618 | 3833 | +5.9% | 0.94x |
Improvement (22)
| TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
|---|---|---|---|---|
| SortLettersInPlace | 1016 | 957 | -5.8% | 1.06x |
| Hanoi | 3339 | 3145 | -5.8% | 1.06x |
| ObjectiveCBridgeToNSDictionary | 18378 | 17341 | -5.6% | 1.06x |
| Chars | 616 | 579 | -6.0% | 1.06x |
| TwoSum | 1760 | 1662 | -5.6% | 1.06x |
| DictionarySwapOfObjects | 7132 | 6684 | -6.3% | 1.07x |
| ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced | 128197 | 118159 | -7.8% | 1.08x(?) |
| SetExclusiveOr_OfObjects | 8567 | 7874 | -8.1% | 1.09x |
| SetIsSubsetOf_OfObjects | 539 | 494 | -8.3% | 1.09x |
| ObjectiveCBridgeFromNSSetAnyObjectToStringForced | 112027 | 102333 | -8.7% | 1.09x(?) |
| SetIntersect_OfObjects | 2647 | 2292 | -13.4% | 1.15x |
| 114 | 2546817 | 2221701 | -12.8% | 1.15x |
| DictionaryOfObjects | 2690 | 2316 | -13.9% | 1.16x |
| Dictionary2OfObjects | 3980 | 3426 | -13.9% | 1.16x |
| Dictionary2 | 2407 | 2054 | -14.7% | 1.17x |
| Dictionary | 964 | 789 | -18.1% | 1.22x |
| LinkedList | 9005 | 6844 | -24.0% | 1.32x |
| StrToInt | 6088 | 4548 | -25.3% | 1.34x |
| Phonebook | 9108 | 6812 | -25.2% | 1.34x |
| Dictionary3OfObjects | 1225 | 904 | -26.2% | 1.36x |
| Dictionary3 | 797 | 564 | -29.2% | 1.41x |
| SuperChars | 549833 | 277616 | -49.5% | 1.98x |
No Changes (91)
| TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
|---|---|---|---|---|
| RGBHistogram | 3373 | 3221 | -4.5% | 1.05x |
| ObjectiveCBridgeFromNSDictionaryAnyObjectToString | 192774 | 184617 | -4.2% | 1.04x |
| ObjectiveCBridgeToNSSet | 18222 | 17592 | -3.5% | 1.04x(?) |
| RGBHistogramOfObjects | 22415 | 21627 | -3.5% | 1.04x |
| SetUnion_OfObjects | 6842 | 6610 | -3.4% | 1.04x |
| ObjectiveCBridgeFromNSSetAnyObjectToString | 174917 | 168190 | -3.9% | 1.04x(?) |
| DictionaryRemoveOfObjects | 20107 | 19449 | -3.3% | 1.03x |
| ObjectiveCBridgeFromNSArrayAnyObjectToStringForced | 161727 | 157618 | -2.5% | 1.03x |
| Array2D | 2023 | 1992 | -1.5% | 1.02x(?) |
| SortStrings | 1729 | 1688 | -2.4% | 1.02x |
| DictionaryBridge | 3771 | 3695 | -2.0% | 1.02x(?) |
| SetIsSubsetOf | 480 | 470 | -2.1% | 1.02x |
| StringWalk | 6126 | 6014 | -1.8% | 1.02x |
| ArraySubscript | 1322 | 1315 | -0.5% | 1.01x(?) |
| StackPromo | 19047 | 18902 | -0.8% | 1.01x |
| Histogram | 652 | 643 | -1.4% | 1.01x |
| ObjectiveCBridgeFromNSDictionaryAnyObjectForced | 4588 | 4526 | -1.4% | 1.01x(?) |
| Prims | 724 | 718 | -0.8% | 1.01x |
| ObjectiveCBridgeFromNSDictionaryAnyObject | 190076 | 189018 | -0.6% | 1.01x(?) |
| RangeAssignment | 273 | 271 | -0.7% | 1.01x(?) |
| StringInterpolation | 10384 | 10315 | -0.7% | 1.01x(?) |
| ProtocolDispatch2 | 151 | 150 | -0.7% | 1.01x |
| ObjectiveCBridgeStubToArrayOfNSString | 29822 | 29615 | -0.7% | 1.01x(?) |
| ObjectiveCBridgeFromNSString | 1565 | 1549 | -1.0% | 1.01x |
| ObjectiveCBridgeFromNSSetAnyObjectForced | 4069 | 4044 | -0.6% | 1.01x |
| DeadArray | 173 | 172 | -0.6% | 1.01x |
| MonteCarloPi | 42574 | 42572 | -0.0% | 1.00x(?) |
| PopFrontArray | 1229 | 1232 | +0.2% | 1.00x(?) |
| RecursiveOwnedParameter | 1832 | 1839 | +0.4% | 1.00x |
| Integrate | 236 | 237 | +0.4% | 1.00x(?) |
| ClassArrayGetter | 12 | 12 | +0.0% | 1.00x |
| ArrayOfGenericPOD | 208 | 208 | +0.0% | 1.00x |
| StringWithCString | 75607 | 75615 | +0.0% | 1.00x(?) |
| ByteSwap | 1 | 1 | +0.0% | 1.00x |
| XorLoop | 359 | 359 | +0.0% | 1.00x |
| ErrorHandling | 2899 | 2909 | +0.3% | 1.00x(?) |
| ObjectiveCBridgeStubFromNSStringRef | 327 | 327 | +0.0% | 1.00x |
| StaticArray | 2650 | 2656 | +0.2% | 1.00x(?) |
| ProtocolDispatch | 2889 | 2903 | +0.5% | 1.00x |
| ObjectAllocation | 141 | 141 | +0.0% | 1.00x |
| TypeFlood | 0 | 0 | +0.0% | 1.00x |
| Join | 438 | 437 | -0.2% | 1.00x(?) |
| PopFrontUnsafePointer | 8501 | 8509 | +0.1% | 1.00x(?) |
| CaptureProp | 3747 | 3736 | -0.3% | 1.00x |
| PolymorphicCalls | 61 | 61 | +0.0% | 1.00x |
| Calculator | 34 | 34 | +0.0% | 1.00x |
| MapReduce | 327 | 327 | +0.0% | 1.00x |
| DictionaryLiteral | 2949 | 2962 | +0.4% | 1.00x(?) |
| OpenClose | 53 | 53 | +0.0% | 1.00x |
| NopDeinit | 34574 | 34595 | +0.1% | 1.00x(?) |
| ObjectiveCBridgeFromNSArrayAnyObject | 62447 | 62422 | -0.0% | 1.00x(?) |
| StringBuilder | 1386 | 1391 | +0.4% | 1.00x |
| ArrayOfGenericRef | 3493 | 3507 | +0.4% | 1.00x(?) |
| MonteCarloE | 10044 | 10060 | +0.2% | 1.00x(?) |
| GlobalClass | 0 | 0 | +0.0% | 1.00x |
| HashTest | 1824 | 1820 | -0.2% | 1.00x(?) |
| ArrayAppend | 728 | 728 | +0.0% | 1.00x |
| ArrayAppendReserved | 507 | 507 | +0.0% | 1.00x |
| ArrayOfPOD | 172 | 172 | +0.0% | 1.00x |
| BitCount | 1 | 1 | +0.0% | 1.00x |
| AngryPhonebook | 3362 | 3359 | -0.1% | 1.00x(?) |
| SevenBoom | 1274 | 1277 | +0.2% | 1.00x(?) |
| ArrayValueProp | 5 | 5 | +0.0% | 1.00x |
| ObjectiveCBridgeStubFromArrayOfNSString | 111914 | 112109 | +0.2% | 1.00x(?) |
| Memset | 222 | 222 | +0.0% | 1.00x |
| ArrayValueProp4 | 5 | 5 | +0.0% | 1.00x |
| ArrayValueProp2 | 5 | 5 | +0.0% | 1.00x |
| ArrayValueProp3 | 5 | 5 | +0.0% | 1.00x |
| ObjectiveCBridgeToNSString | 1030 | 1038 | +0.8% | 0.99x |
| ObjectiveCBridgeFromNSArrayAnyObjectToString | 157042 | 158838 | +1.1% | 0.99x(?) |
| ObjectiveCBridgeFromNSArrayAnyObjectForced | 3620 | 3640 | +0.6% | 0.99x(?) |
| DictionarySwap | 752 | 761 | +1.2% | 0.99x |
| ObjectiveCBridgeStubToNSString | 1365 | 1373 | +0.6% | 0.99x(?) |
| ObjectiveCBridgeFromNSSetAnyObject | 94389 | 95742 | +1.4% | 0.99x(?) |
| ArrayLiteral | 974 | 981 | +0.7% | 0.99x |
| StrComplexWalk | 3014 | 3035 | +0.7% | 0.99x |
| ArrayOfRef | 3430 | 3462 | +0.9% | 0.99x |
| ObjectiveCBridgeToNSArray | 29397 | 29573 | +0.6% | 0.99x(?) |
| PopFrontArrayGeneric | 1222 | 1229 | +0.6% | 0.99x(?) |
| SetIntersect | 1134 | 1145 | +1.0% | 0.99x |
| NSDictionaryCastToSwift | 8367 | 8485 | +1.4% | 0.99x(?) |
| ArrayInClass | 83 | 84 | +1.2% | 0.99x(?) |
| RC4 | 249 | 251 | +0.8% | 0.99x(?) |
| ObjectiveCBridgeFromNSStringForced | 2154 | 2196 | +1.9% | 0.98x(?) |
| ObjectiveCBridgeStubFromNSString | 701 | 715 | +2.0% | 0.98x |
| NSError | 352 | 359 | +2.0% | 0.98x |
| UTF8Decode | 254 | 260 | +2.4% | 0.98x |
| SetExclusiveOr | 3820 | 3897 | +2.0% | 0.98x |
| DictionaryRemove | 4741 | 4907 | +3.5% | 0.97x |
| NSStringConversion | 577 | 592 | +2.6% | 0.97x |
| Walsh | 319 | 333 | +4.4% | 0.96x |
Regression (1)
| TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
|---|---|---|---|---|
| NopDeinit | 53476 | 60082 | +12.3% | 0.89x |
Improvement (21)
| TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
|---|---|---|---|---|
| ObjectiveCBridgeFromNSDictionaryAnyObjectToString | 205452 | 194397 | -5.4% | 1.06x |
| ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced | 132284 | 125082 | -5.4% | 1.06x(?) |
| ArrayInClass | 3852 | 3647 | -5.3% | 1.06x |
| ObjectiveCBridgeFromNSSetAnyObjectToStringForced | 122049 | 114832 | -5.9% | 1.06x(?) |
| PopFrontArray | 12329 | 11485 | -6.8% | 1.07x |
| ClassArrayGetter | 1266 | 1183 | -6.6% | 1.07x |
| Dictionary3OfObjects | 2902 | 2719 | -6.3% | 1.07x |
| Dictionary3 | 2245 | 2089 | -7.0% | 1.07x |
| Dictionary2 | 5540 | 5166 | -6.8% | 1.07x |
| ObjectiveCBridgeToNSSet | 18996 | 17572 | -7.5% | 1.08x |
| Sim2DArray | 14308 | 13143 | -8.1% | 1.09x |
| 114 | 5540897 | 5106289 | -7.8% | 1.09x |
| ArrayOfGenericRef | 10386 | 9448 | -9.0% | 1.10x |
| ArrayOfRef | 9764 | 8822 | -9.7% | 1.11x |
| StrToInt | 20827 | 18527 | -11.0% | 1.12x |
| ObjectiveCBridgeToNSDictionary | 19373 | 17320 | -10.6% | 1.12x |
| Hanoi | 22035 | 18677 | -15.2% | 1.18x |
| RangeAssignment | 15533 | 12748 | -17.9% | 1.22x |
| RecursiveOwnedParameter | 10343 | 7849 | -24.1% | 1.32x |
| StringWalk | 39172 | 22774 | -41.9% | 1.72x |
| StringWithCString | 325541 | 73756 | -77.3% | 4.41x |
No Changes (93)
| TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
|---|---|---|---|---|
| SortStrings | 14419 | 13768 | -4.5% | 1.05x |
| Prims | 14783 | 14098 | -4.6% | 1.05x |
| XorLoop | 19452 | 18450 | -5.2% | 1.05x |
| ErrorHandling | 7485 | 7155 | -4.4% | 1.05x |
| DictionaryOfObjects | 7309 | 6950 | -4.9% | 1.05x |
| PopFrontArrayGeneric | 12160 | 11630 | -4.4% | 1.05x |
| Dictionary2OfObjects | 7338 | 6960 | -5.2% | 1.05x |
| ArrayValueProp2 | 18762 | 17929 | -4.4% | 1.05x |
| Array2D | 790827 | 761882 | -3.7% | 1.04x |
| SortLettersInPlace | 4250 | 4104 | -3.4% | 1.04x |
| OpenClose | 460 | 441 | -4.1% | 1.04x |
| ObjectiveCBridgeFromNSSetAnyObjectToString | 190579 | 183052 | -4.0% | 1.04x(?) |
| Chars | 54312 | 52408 | -3.5% | 1.04x |
| ArraySubscript | 5327 | 5197 | -2.4% | 1.03x |
| StackPromo | 162682 | 158455 | -2.6% | 1.03x(?) |
| DictionaryBridge | 3875 | 3746 | -3.3% | 1.03x |
| ObjectiveCBridgeFromNSStringForced | 2656 | 2587 | -2.6% | 1.03x |
| MapReduce | 42915 | 41521 | -3.2% | 1.03x |
| UTF8Decode | 39305 | 38028 | -3.2% | 1.03x |
| Dictionary | 4354 | 4246 | -2.5% | 1.03x |
| MonteCarloE | 101809 | 98974 | -2.8% | 1.03x |
| NSStringConversion | 2782 | 2693 | -3.2% | 1.03x(?) |
| ObjectiveCBridgeStubFromArrayOfNSString | 115233 | 111685 | -3.1% | 1.03x |
| Histogram | 13881 | 13568 | -2.2% | 1.02x(?) |
| StrComplexWalk | 8313 | 8113 | -2.4% | 1.02x |
| NSError | 648 | 634 | -2.2% | 1.02x(?) |
| CaptureProp | 54762 | 53560 | -2.2% | 1.02x |
| PolymorphicCalls | 1154 | 1133 | -1.8% | 1.02x |
| StringBuilder | 8270 | 8103 | -2.0% | 1.02x |
| Phonebook | 87876 | 86022 | -2.1% | 1.02x(?) |
| ObjectiveCBridgeFromNSDictionaryAnyObjectForced | 7203 | 7120 | -1.1% | 1.01x(?) |
| ObjectAllocation | 1294 | 1281 | -1.0% | 1.01x |
| Walsh | 12398 | 12219 | -1.4% | 1.01x |
| Join | 1327 | 1313 | -1.1% | 1.01x |
| PopFrontUnsafePointer | 97290 | 95856 | -1.5% | 1.01x |
| ObjectiveCBridgeFromNSArrayAnyObject | 66863 | 66104 | -1.1% | 1.01x(?) |
| HashTest | 6208 | 6168 | -0.6% | 1.01x(?) |
| ArrayAppend | 2761 | 2738 | -0.8% | 1.01x |
| RGBHistogramOfObjects | 116205 | 114633 | -1.4% | 1.01x |
| RGBHistogram | 66669 | 66029 | -1.0% | 1.01x |
| AngryPhonebook | 6209 | 6144 | -1.1% | 1.01x |
| RC4 | 8865 | 8753 | -1.3% | 1.01x |
| ObjectiveCBridgeToNSString | 1069 | 1068 | -0.1% | 1.00x(?) |
| DictionarySwapOfObjects | 25158 | 25279 | +0.5% | 1.00x(?) |
| ObjectiveCBridgeStubToNSString | 1677 | 1675 | -0.1% | 1.00x(?) |
| ObjectiveCBridgeFromNSArrayAnyObjectToString | 158639 | 158468 | -0.1% | 1.00x(?) |
| MonteCarloPi | 50473 | 50432 | -0.1% | 1.00x |
| ObjectiveCBridgeFromNSArrayAnyObjectForced | 6965 | 6972 | +0.1% | 1.00x(?) |
| ArrayOfGenericPOD | 3455 | 3453 | -0.1% | 1.00x(?) |
| ByteSwap | 9 | 9 | +0.0% | 1.00x |
| SuperChars | 728460 | 728583 | +0.0% | 1.00x(?) |
| StringInterpolation | 14218 | 14204 | -0.1% | 1.00x(?) |
| Integrate | 349 | 349 | +0.0% | 1.00x |
| ObjectiveCBridgeStubFromNSStringRef | 651 | 652 | +0.1% | 1.00x(?) |
| ObjectiveCBridgeStubFromNSString | 1132 | 1134 | +0.2% | 1.00x(?) |
| ObjectiveCBridgeFromNSSetAnyObject | 101817 | 101687 | -0.1% | 1.00x(?) |
| ArrayLiteral | 1035 | 1036 | +0.1% | 1.00x(?) |
| SetIntersect_OfObjects | 18917 | 18945 | +0.1% | 1.00x(?) |
| ObjectiveCBridgeToNSArray | 29761 | 29717 | -0.1% | 1.00x(?) |
| DictionaryLiteral | 20083 | 20182 | +0.5% | 1.00x(?) |
| DictionaryRemoveOfObjects | 60267 | 60528 | +0.4% | 1.00x |
| SetIsSubsetOf | 2934 | 2948 | +0.5% | 1.00x(?) |
| SetExclusiveOr | 48529 | 48647 | +0.2% | 1.00x(?) |
| SetExclusiveOr_OfObjects | 67469 | 67422 | -0.1% | 1.00x(?) |
| SetUnion_OfObjects | 51391 | 51195 | -0.4% | 1.00x(?) |
| GlobalClass | 0 | 0 | +0.0% | 1.00x |
| LinkedList | 26373 | 26282 | -0.3% | 1.00x |
| ArrayAppendReserved | 2573 | 2580 | +0.3% | 1.00x(?) |
| ArrayOfPOD | 2220 | 2217 | -0.1% | 1.00x(?) |
| SetUnion | 34915 | 35027 | +0.3% | 1.00x(?) |
| ArrayValueProp | 2230 | 2234 | +0.2% | 1.00x(?) |
| Memset | 20646 | 20659 | +0.1% | 1.00x(?) |
| ArrayValueProp4 | 2572 | 2577 | +0.2% | 1.00x(?) |
| TwoSum | 9322 | 9302 | -0.2% | 1.00x(?) |
| ArrayValueProp3 | 2595 | 2597 | +0.1% | 1.00x(?) |
| ObjectiveCBridgeFromNSDictionaryAnyObject | 193776 | 195555 | +0.9% | 0.99x(?) |
| DictionarySwap | 11023 | 11133 | +1.0% | 0.99x |
| ProtocolDispatch2 | 419 | 422 | +0.7% | 0.99x |
| ObjectiveCBridgeStubToArrayOfNSString | 30006 | 30298 | +1.0% | 0.99x |
| SetIntersect | 18831 | 18957 | +0.7% | 0.99x |
| SetIsSubsetOf_OfObjects | 2838 | 2857 | +0.7% | 0.99x(?) |
| DictionaryRemove | 30100 | 30267 | +0.6% | 0.99x |
| ObjectiveCBridgeFromNSSetAnyObjectForced | 7491 | 7536 | +0.6% | 0.99x(?) |
| DeadArray | 132002 | 133249 | +0.9% | 0.99x(?) |
| SevenBoom | 1431 | 1439 | +0.6% | 0.99x(?) |
| ObjectiveCBridgeFromNSArrayAnyObjectToStringForced | 159942 | 162209 | +1.4% | 0.99x(?) |
| ProtocolDispatch | 5529 | 5620 | +1.6% | 0.98x(?) |
| NSDictionaryCastToSwift | 9645 | 9803 | +1.6% | 0.98x |
| ObjectiveCBridgeFromNSString | 5027 | 5149 | +2.4% | 0.98x(?) |
| StaticArray | 16641 | 17072 | +2.6% | 0.97x(?) |
| TypeFlood | 156 | 161 | +3.2% | 0.97x(?) |
| Calculator | 927 | 952 | +2.7% | 0.97x |
| BitCount | 79 | 83 | +5.1% | 0.95x |
There was a problem hiding this comment.
Nit: Comments should be complete sentences, appropriately capitalized. It's not clear if this was supposed to read "current block, so place it at the predecessors.", or if "place it at the predecessors" was meant to be a separate sentence. If the latter, please capitalize. Also, "in the predecessors" or "at the end of the predecessors" are both better options here.
|
@rudkx I addressed your suggestions. Please tell me if there is anything else you think we should discuss. I am running 1 more test and benchmark before merging. |
|
@swift-ci Please benchmark |
|
@swift-ci Please test |
Iterative data flow retain sinking and release hoisting. This allows us to sink retains and hoist releases across harmless loops. which is an improvement on the SILCodeMotion retain sinking and release hoisting. It also separates the duty of moving retain and release with the duty of eliminating them in ASO. This should eventually replace RR code motion in SILcodemotion and insertion point in ARCsequence opts (ASO). This is the performance difference i get with retain sinking and release hoisting. After disabling retain release code motion in ASO and SILCodeMotion. we can start to take those code out once this lands. I see that we go from 24.5% of time spent in SILOptimizations w.r.t. the whole stdlib compilation to 25.1%. Improvement is better (i.e. retain sinking and hoisting releases result in performance gain). <details open> <summary>Regression (7)</summary> TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP --- | --- | --- | --- | --- SetIsSubsetOf | 441 | 510 | +15.7% | **0.86x** SetIntersect | 1041 | 1197 | +15.0% | **0.87x** BenchLangCallingCFunction | 184 | 211 | +14.7% | **0.87x** Sim2DArray | 326 | 372 | +14.1% | **0.88x** SetIsSubsetOf_OfObjects | 498 | 567 | +13.9% | **0.88x** GeekbenchGEMM | 945 | 1022 | +8.2% | **0.92x** COWTree | 3839 | 4181 | +8.9% | **0.92x(?)** </details> <details > <summary>Improvement (31)</summary> TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP --- | --- | --- | --- | --- ObjectiveCBridgeFromNSDictionaryAnyObjectToString | 174526 | 165392 | -5.2% | **1.06x** RGBHistogram | 3128 | 2957 | -5.5% | **1.06x** ObjectiveCBridgeToNSDictionary | 16510 | 15494 | -6.2% | **1.07x** LuhnAlgoLazy | 2294 | 2120 | -7.6% | **1.08x** DictionarySwapOfObjects | 6477 | 5994 | -7.5% | **1.08x** StringRemoveDupes | 1610 | 1485 | -7.8% | **1.08x** ObjectiveCBridgeFromNSSetAnyObjectToString | 159358 | 147824 | -7.2% | **1.08x** ObjectiveCBridgeToNSSet | 16191 | 14924 | -7.8% | **1.08x** DictionaryHashableClass | 1839 | 1704 | -7.3% | **1.08x** DictionaryLiteral | 2906 | 2678 | -7.8% | **1.09x(?)** StringUtilsUnderscoreCase | 10031 | 9187 | -8.4% | **1.09x** LuhnAlgoEager | 2320 | 2113 | -8.9% | **1.10x** ObjectiveCBridgeFromNSSetAnyObjectToStringForced | 99553 | 90348 | -9.2% | **1.10x** RIPEMD | 3327 | 3009 | -9.6% | **1.11x** Combos | 595 | 538 | -9.6% | **1.11x** Roman | 10 | 9 | -10.0% | **1.11x** StringUtilsCamelCase | 10783 | 9646 | -10.5% | **1.12x** SetIntersect_OfObjects | 2511 | 2182 | -13.1% | **1.15x** SwiftStructuresTrie | 28331 | 24339 | -14.1% | **1.16x** Dictionary2OfObjects | 3748 | 3115 | -16.9% | **1.20x** DictionaryOfObjects | 2473 | 2050 | -17.1% | **1.21x** Dictionary | 894 | 737 | -17.6% | **1.21x** Dictionary2 | 2268 | 1859 | -18.0% | **1.22x** StringIteration | 8027 | 6344 | -21.0% | **1.27x** Phonebook | 8207 | 6436 | -21.6% | **1.28x** BenchLangArray | 119 | 91 | -23.5% | **1.31x** LinkedList | 8267 | 6297 | -23.8% | **1.31x** StrToInt | 5585 | 4180 | -25.2% | **1.34x** Dictionary3OfObjects | 1122 | 831 | -25.9% | **1.35x** Dictionary3 | 731 | 515 | -29.6% | **1.42x** SuperChars | 513353 | 258735 | -49.6% | **1.98x**
Build comment file:Optimized (O)
|
| TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
|---|---|---|---|---|
| SetIsSubsetOf | 479 | 553 | +15.4% | 0.87x |
| PopFrontArrayGeneric | 1079 | 1222 | +13.2% | 0.88x(?) |
| SetIntersect | 1150 | 1304 | +13.4% | 0.88x |
| SetIsSubsetOf_OfObjects | 547 | 620 | +13.3% | 0.88x |
| Sim2DArray | 364 | 402 | +10.4% | 0.91x |
| ObjectiveCBridgeFromNSArrayAnyObjectToString | 156198 | 167299 | +7.1% | 0.93x |
Improvement (19)
| TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
|---|---|---|---|---|
| SortLettersInPlace | 1005 | 951 | -5.4% | 1.06x |
| SetUnion_OfObjects | 7007 | 6598 | -5.8% | 1.06x |
| ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced | 123903 | 116868 | -5.7% | 1.06x |
| DictionarySwapOfObjects | 7058 | 6594 | -6.6% | 1.07x |
| ArrayInClass | 89 | 81 | -9.0% | 1.10x |
| ObjectiveCBridgeFromNSSetAnyObjectToStringForced | 111994 | 102114 | -8.8% | 1.10x |
| SetExclusiveOr_OfObjects | 8769 | 7896 | -10.0% | 1.11x |
| SetIntersect_OfObjects | 2658 | 2364 | -11.1% | 1.12x |
| 114 | 2522931 | 2244930 | -11.0% | 1.12x |
| Dictionary2OfObjects | 3971 | 3394 | -14.5% | 1.17x |
| DictionaryOfObjects | 2707 | 2280 | -15.8% | 1.19x |
| Dictionary | 960 | 806 | -16.0% | 1.19x |
| Dictionary2 | 2411 | 2009 | -16.7% | 1.20x |
| StrToInt | 6012 | 4828 | -19.7% | 1.25x |
| LinkedList | 8997 | 6848 | -23.9% | 1.31x |
| Phonebook | 8973 | 6785 | -24.4% | 1.32x |
| Dictionary3OfObjects | 1225 | 901 | -26.4% | 1.36x |
| Dictionary3 | 795 | 552 | -30.6% | 1.44x |
| SuperChars | 544596 | 277693 | -49.0% | 1.96x |
No Changes (90)
| TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
|---|---|---|---|---|
| ObjectiveCBridgeToNSDictionary | 17725 | 16924 | -4.5% | 1.05x(?) |
| RC4 | 250 | 238 | -4.8% | 1.05x |
| RGBHistogram | 3378 | 3208 | -5.0% | 1.05x |
| Chars | 619 | 597 | -3.5% | 1.04x |
| ObjectiveCBridgeFromNSDictionaryAnyObjectToString | 190007 | 184676 | -2.8% | 1.03x |
| Prims | 732 | 712 | -2.7% | 1.03x |
| RangeAssignment | 264 | 256 | -3.0% | 1.03x |
| RGBHistogramOfObjects | 21966 | 21304 | -3.0% | 1.03x |
| Walsh | 325 | 316 | -2.8% | 1.03x |
| DeadArray | 177 | 172 | -2.8% | 1.03x |
| TwoSum | 1722 | 1679 | -2.5% | 1.03x |
| StackPromo | 19120 | 18742 | -2.0% | 1.02x |
| Histogram | 652 | 639 | -2.0% | 1.02x |
| DictionaryBridge | 3614 | 3532 | -2.3% | 1.02x(?) |
| StringInterpolation | 10285 | 10094 | -1.9% | 1.02x |
| DictionaryLiteral | 2978 | 2906 | -2.4% | 1.02x(?) |
| Hanoi | 3234 | 3179 | -1.7% | 1.02x |
| ObjectiveCBridgeFromNSSetAnyObjectToString | 173544 | 169811 | -2.1% | 1.02x(?) |
| StringWalk | 6097 | 5956 | -2.3% | 1.02x |
| ObjectiveCBridgeStubToNSString | 1382 | 1368 | -1.0% | 1.01x |
| ObjectiveCBridgeFromNSDictionaryAnyObjectForced | 4598 | 4542 | -1.2% | 1.01x |
| DictionarySwap | 759 | 752 | -0.9% | 1.01x(?) |
| ObjectiveCBridgeStubFromNSString | 697 | 688 | -1.3% | 1.01x(?) |
| ObjectAllocation | 141 | 140 | -0.7% | 1.01x(?) |
| ObjectiveCBridgeFromNSSetAnyObject | 95702 | 94782 | -1.0% | 1.01x(?) |
| HashTest | 1831 | 1807 | -1.3% | 1.01x |
| StrComplexWalk | 3017 | 2990 | -0.9% | 1.01x(?) |
| DictionaryRemoveOfObjects | 19658 | 19399 | -1.3% | 1.01x |
| ArrayOfGenericRef | 3502 | 3475 | -0.8% | 1.01x(?) |
| ObjectiveCBridgeFromNSString | 1563 | 1543 | -1.3% | 1.01x |
| ArraySubscript | 1327 | 1332 | +0.4% | 1.00x(?) |
| ObjectiveCBridgeToNSString | 1030 | 1026 | -0.4% | 1.00x(?) |
| MonteCarloPi | 42650 | 42498 | -0.4% | 1.00x |
| RecursiveOwnedParameter | 1830 | 1827 | -0.2% | 1.00x |
| ClassArrayGetter | 12 | 12 | +0.0% | 1.00x |
| SortStrings | 1688 | 1680 | -0.5% | 1.00x |
| ArrayOfGenericPOD | 207 | 207 | +0.0% | 1.00x |
| StringWithCString | 75662 | 75669 | +0.0% | 1.00x |
| PopFrontArray | 1228 | 1225 | -0.2% | 1.00x(?) |
| ByteSwap | 1 | 1 | +0.0% | 1.00x |
| XorLoop | 359 | 359 | +0.0% | 1.00x |
| Integrate | 236 | 236 | +0.0% | 1.00x |
| ErrorHandling | 2895 | 2897 | +0.1% | 1.00x(?) |
| ObjectiveCBridgeStubFromNSStringRef | 327 | 327 | +0.0% | 1.00x |
| StaticArray | 2624 | 2616 | -0.3% | 1.00x(?) |
| ProtocolDispatch | 2872 | 2874 | +0.1% | 1.00x(?) |
| TypeFlood | 0 | 0 | +0.0% | 1.00x |
| ProtocolDispatch2 | 152 | 152 | +0.0% | 1.00x |
| Join | 442 | 440 | -0.5% | 1.00x(?) |
| ArrayOfRef | 3397 | 3404 | +0.2% | 1.00x(?) |
| ObjectiveCBridgeToNSSet | 16706 | 16634 | -0.4% | 1.00x(?) |
| ObjectiveCBridgeToNSArray | 29708 | 29736 | +0.1% | 1.00x(?) |
| PopFrontUnsafePointer | 8486 | 8510 | +0.3% | 1.00x(?) |
| CaptureProp | 3738 | 3734 | -0.1% | 1.00x(?) |
| PolymorphicCalls | 61 | 61 | +0.0% | 1.00x |
| MapReduce | 327 | 326 | -0.3% | 1.00x(?) |
| OpenClose | 49 | 49 | +0.0% | 1.00x |
| NopDeinit | 34579 | 34612 | +0.1% | 1.00x(?) |
| ObjectiveCBridgeStubToArrayOfNSString | 29828 | 29908 | +0.3% | 1.00x(?) |
| SetExclusiveOr | 3950 | 3949 | -0.0% | 1.00x(?) |
| StringBuilder | 1384 | 1387 | +0.2% | 1.00x |
| MonteCarloE | 10048 | 10015 | -0.3% | 1.00x(?) |
| ArrayAppend | 728 | 728 | +0.0% | 1.00x |
| ObjectiveCBridgeFromNSSetAnyObjectForced | 4043 | 4027 | -0.4% | 1.00x(?) |
| ArrayAppendReserved | 506 | 506 | +0.0% | 1.00x |
| BitCount | 1 | 1 | +0.0% | 1.00x |
| AngryPhonebook | 3317 | 3311 | -0.2% | 1.00x(?) |
| ArrayValueProp3 | 5 | 5 | +0.0% | 1.00x |
| ArrayValueProp | 5 | 5 | +0.0% | 1.00x |
| GlobalClass | 0 | 0 | +0.0% | 1.00x |
| Memset | 222 | 222 | +0.0% | 1.00x |
| ArrayValueProp4 | 5 | 5 | +0.0% | 1.00x |
| ArrayValueProp2 | 5 | 5 | +0.0% | 1.00x |
| SevenBoom | 1284 | 1284 | +0.0% | 1.00x |
| Array2D | 1972 | 1999 | +1.4% | 0.99x(?) |
| ObjectiveCBridgeFromNSArrayAnyObjectForced | 3613 | 3663 | +1.4% | 0.99x |
| ObjectiveCBridgeFromNSStringForced | 2155 | 2184 | +1.4% | 0.99x(?) |
| UTF8Decode | 258 | 260 | +0.8% | 0.99x |
| NSStringConversion | 597 | 602 | +0.8% | 0.99x(?) |
| ArrayOfPOD | 171 | 172 | +0.6% | 0.99x |
| ObjectiveCBridgeFromNSDictionaryAnyObject | 188431 | 192384 | +2.1% | 0.98x(?) |
| ArrayLiteral | 970 | 985 | +1.6% | 0.98x(?) |
| NSError | 356 | 364 | +2.2% | 0.98x |
| ObjectiveCBridgeFromNSArrayAnyObject | 62523 | 63924 | +2.2% | 0.98x |
| Calculator | 30 | 31 | +3.3% | 0.97x |
| NSDictionaryCastToSwift | 8314 | 8582 | +3.2% | 0.97x |
| DictionaryRemove | 4731 | 4884 | +3.2% | 0.97x |
| SetUnion | 3613 | 3762 | +4.1% | 0.96x |
| ObjectiveCBridgeStubFromArrayOfNSString | 106914 | 111340 | +4.1% | 0.96x(?) |
| ObjectiveCBridgeFromNSArrayAnyObjectToStringForced | 159475 | 168178 | +5.5% | 0.95x |
Regression (4)
| TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
|---|---|---|---|---|
| ArrayOfPOD | 2083 | 2258 | +8.4% | 0.92x |
| ObjectiveCBridgeFromNSArrayAnyObjectToString | 155844 | 166657 | +6.9% | 0.94x |
| ObjectiveCBridgeFromNSArrayAnyObjectToStringForced | 156674 | 166776 | +6.5% | 0.94x |
| ObjectiveCBridgeStubFromArrayOfNSString | 106494 | 112769 | +5.9% | 0.94x(?) |
Improvement (17)
| TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
|---|---|---|---|---|
| ObjectiveCBridgeFromNSDictionaryAnyObjectToString | 200733 | 188980 | -5.9% | 1.06x(?) |
| ObjectiveCBridgeToNSSet | 17689 | 16631 | -6.0% | 1.06x |
| Calculator | 963 | 905 | -6.0% | 1.06x |
| OpenClose | 465 | 440 | -5.4% | 1.06x |
| ArrayAppendReserved | 2608 | 2457 | -5.8% | 1.06x |
| ClassArrayGetter | 1265 | 1184 | -6.4% | 1.07x |
| Dictionary3 | 2253 | 2088 | -7.3% | 1.08x |
| ObjectiveCBridgeToNSDictionary | 17735 | 16455 | -7.2% | 1.08x |
| ArrayOfGenericRef | 10400 | 9445 | -9.2% | 1.10x |
| Memset | 20647 | 18637 | -9.7% | 1.11x |
| ArrayOfRef | 9803 | 8786 | -10.4% | 1.12x |
| StrToInt | 20643 | 18268 | -11.5% | 1.13x |
| ProtocolDispatch | 5742 | 4994 | -13.0% | 1.15x |
| Hanoi | 22258 | 18744 | -15.8% | 1.19x |
| RangeAssignment | 15557 | 12706 | -18.3% | 1.22x |
| RecursiveOwnedParameter | 10355 | 7523 | -27.4% | 1.38x |
| StringWithCString | 325778 | 73700 | -77.4% | 4.42x |
No Changes (94)
| TEST | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP |
|---|---|---|---|---|
| PopFrontArray | 12035 | 11476 | -4.6% | 1.05x |
| Dictionary3OfObjects | 2879 | 2731 | -5.1% | 1.05x |
| 114 | 5417139 | 5135185 | -5.2% | 1.05x |
| ObjectiveCBridgeFromNSSetAnyObjectToStringForced | 119199 | 113474 | -4.8% | 1.05x |
| StackPromo | 163941 | 157394 | -4.0% | 1.04x(?) |
| Array2D | 790770 | 758091 | -4.1% | 1.04x |
| Prims | 14695 | 14177 | -3.5% | 1.04x |
| Dictionary2 | 5462 | 5234 | -4.2% | 1.04x |
| PopFrontArrayGeneric | 12046 | 11625 | -3.5% | 1.04x |
| ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced | 129965 | 124412 | -4.3% | 1.04x |
| RC4 | 8740 | 8431 | -3.5% | 1.04x |
| Walsh | 12220 | 11801 | -3.4% | 1.04x |
| Dictionary2OfObjects | 7228 | 6973 | -3.5% | 1.04x(?) |
| ArrayValueProp4 | 2528 | 2437 | -3.6% | 1.04x |
| ArraySubscript | 5330 | 5193 | -2.6% | 1.03x |
| DictionaryBridge | 3702 | 3595 | -2.9% | 1.03x |
| MapReduce | 42788 | 41646 | -2.7% | 1.03x |
| DictionaryLiteral | 20305 | 19803 | -2.5% | 1.03x |
| UTF8Decode | 39267 | 38017 | -3.2% | 1.03x |
| Dictionary | 4334 | 4202 | -3.0% | 1.03x |
| MonteCarloE | 101739 | 98928 | -2.8% | 1.03x |
| Chars | 54452 | 52913 | -2.8% | 1.03x |
| ArrayValueProp3 | 2577 | 2507 | -2.7% | 1.03x |
| Histogram | 13760 | 13513 | -1.8% | 1.02x(?) |
| XorLoop | 18454 | 18014 | -2.4% | 1.02x |
| ObjectAllocation | 1298 | 1276 | -1.7% | 1.02x(?) |
| StrComplexWalk | 7950 | 7826 | -1.6% | 1.02x |
| DictionaryOfObjects | 7125 | 6996 | -1.8% | 1.02x(?) |
| ArrayInClass | 3647 | 3562 | -2.3% | 1.02x |
| Phonebook | 85980 | 84157 | -2.1% | 1.02x(?) |
| ArrayAppend | 2808 | 2746 | -2.2% | 1.02x |
| AngryPhonebook | 6242 | 6103 | -2.2% | 1.02x |
| ArrayValueProp | 2219 | 2165 | -2.4% | 1.02x |
| ArrayValueProp2 | 18281 | 17896 | -2.1% | 1.02x |
| SortStrings | 13998 | 13879 | -0.8% | 1.01x |
| ObjectiveCBridgeFromNSDictionaryAnyObjectForced | 7012 | 6961 | -0.7% | 1.01x(?) |
| ObjectiveCBridgeStubToNSString | 1687 | 1671 | -0.9% | 1.01x(?) |
| HashTest | 6206 | 6130 | -1.2% | 1.01x |
| ObjectiveCBridgeFromNSString | 4985 | 4915 | -1.4% | 1.01x(?) |
| ObjectiveCBridgeFromNSSetAnyObjectForced | 7424 | 7321 | -1.4% | 1.01x(?) |
| DictionarySwapOfObjects | 25131 | 25194 | +0.2% | 1.00x(?) |
| Integrate | 343 | 343 | +0.0% | 1.00x |
| MonteCarloPi | 50447 | 50453 | +0.0% | 1.00x(?) |
| ObjectiveCBridgeFromNSArrayAnyObjectForced | 6888 | 6893 | +0.1% | 1.00x(?) |
| ObjectiveCBridgeFromNSStringForced | 2567 | 2559 | -0.3% | 1.00x(?) |
| SortLettersInPlace | 4183 | 4166 | -0.4% | 1.00x(?) |
| DictionarySwap | 11041 | 11058 | +0.1% | 1.00x(?) |
| ByteSwap | 9 | 9 | +0.0% | 1.00x |
| ObjectiveCBridgeStubFromNSStringRef | 651 | 651 | +0.0% | 1.00x |
| StaticArray | 16724 | 16698 | -0.2% | 1.00x(?) |
| SetIntersect_OfObjects | 19056 | 19098 | +0.2% | 1.00x |
| NSError | 640 | 643 | +0.5% | 1.00x(?) |
| PolymorphicCalls | 1129 | 1129 | +0.0% | 1.00x |
| DictionaryRemoveOfObjects | 60342 | 60416 | +0.1% | 1.00x |
| ObjectiveCBridgeFromNSArrayAnyObject | 65862 | 66185 | +0.5% | 1.00x(?) |
| RGBHistogramOfObjects | 115145 | 115004 | -0.1% | 1.00x(?) |
| StringBuilder | 8303 | 8318 | +0.2% | 1.00x(?) |
| Sim2DArray | 13141 | 13151 | +0.1% | 1.00x(?) |
| SetExclusiveOr_OfObjects | 67226 | 67397 | +0.2% | 1.00x |
| SetUnion_OfObjects | 51376 | 51277 | -0.2% | 1.00x(?) |
| LinkedList | 26343 | 26384 | +0.2% | 1.00x |
| RGBHistogram | 66988 | 67095 | +0.2% | 1.00x(?) |
| SetUnion | 34905 | 35045 | +0.4% | 1.00x(?) |
| BitCount | 82 | 82 | +0.0% | 1.00x |
| SevenBoom | 1434 | 1429 | -0.3% | 1.00x(?) |
| GlobalClass | 0 | 0 | +0.0% | 1.00x |
| ObjectiveCBridgeToNSString | 1044 | 1050 | +0.6% | 0.99x |
| SuperChars | 728682 | 735004 | +0.9% | 0.99x(?) |
| ErrorHandling | 7265 | 7315 | +0.7% | 0.99x(?) |
| ArrayLiteral | 1031 | 1042 | +1.1% | 0.99x |
| ProtocolDispatch2 | 418 | 421 | +0.7% | 0.99x |
| Join | 1329 | 1338 | +0.7% | 0.99x(?) |
| ObjectiveCBridgeToNSArray | 29540 | 29800 | +0.9% | 0.99x |
| CaptureProp | 50980 | 51552 | +1.1% | 0.99x |
| SetIsSubsetOf | 2955 | 2983 | +0.9% | 0.99x(?) |
| ObjectiveCBridgeStubToArrayOfNSString | 29986 | 30262 | +0.9% | 0.99x(?) |
| SetExclusiveOr | 48515 | 48909 | +0.8% | 0.99x |
| SetIsSubsetOf_OfObjects | 2833 | 2854 | +0.7% | 0.99x(?) |
| DictionaryRemove | 30053 | 30212 | +0.5% | 0.99x |
| NSStringConversion | 2563 | 2585 | +0.9% | 0.99x(?) |
| StringWalk | 49829 | 50319 | +1.0% | 0.99x |
| ObjectiveCBridgeFromNSDictionaryAnyObject | 193343 | 197623 | +2.2% | 0.98x(?) |
| ObjectiveCBridgeStubFromNSString | 1116 | 1140 | +2.1% | 0.98x |
| SetIntersect | 18923 | 19308 | +2.0% | 0.98x |
| NSDictionaryCastToSwift | 9670 | 9843 | +1.8% | 0.98x(?) |
| TwoSum | 9208 | 9377 | +1.8% | 0.98x(?) |
| TypeFlood | 154 | 159 | +3.2% | 0.97x |
| ObjectiveCBridgeFromNSSetAnyObject | 99956 | 102921 | +3.0% | 0.97x |
| PopFrontUnsafePointer | 94462 | 97170 | +2.9% | 0.97x |
| ArrayOfGenericPOD | 3330 | 3442 | +3.4% | 0.97x |
| ObjectiveCBridgeFromNSSetAnyObjectToString | 184262 | 189156 | +2.7% | 0.97x(?) |
| DeadArray | 131146 | 135067 | +3.0% | 0.97x |
| NopDeinit | 53130 | 55610 | +4.7% | 0.96x |
| StringInterpolation | 14307 | 15107 | +5.6% | 0.95x |
|
@swift-ci Please test |
|
Great work! |
Implement a retain and release code motion pass.
Iterative data flow retain sinking and release hoisting.
This allows us to sink retains and hoist releases across harmless loops. which is an improvement on the SILCodeMotion retain sinking and release hoisting.
This should eventually replace RR code motion in SILcodemotion and insertion point in ARCsequence opts.