close
Skip to content

implement retain release code motion.#2064

Merged
trentxintong merged 1 commit intoswiftlang:masterfrom
trentxintong:CodeMotion
Apr 19, 2016
Merged

implement retain release code motion.#2064
trentxintong merged 1 commit intoswiftlang:masterfrom
trentxintong:CodeMotion

Conversation

@trentxintong
Copy link
Copy Markdown
Contributor

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.

@trentxintong
Copy link
Copy Markdown
Contributor Author

@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.

https://ci.swift.org/job/swift-PR-osx-perf/30/

@trentxintong trentxintong changed the title Implement ARC code motion. Implement Retain/Release code motion. Apr 6, 2016
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Please expand out ASO here to make it more clear what you're talking about.

@trentxintong
Copy link
Copy Markdown
Contributor Author

@swift-ci Please ASAN test

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Can you please document this part? Also, do you need the two checks?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Or keep a SILBasicBlock *ThisBlock to represent the processed block by this ArgToEpilogueReleaseMatcher. And then we can remove the HasBlock variable.

@trentxintong
Copy link
Copy Markdown
Contributor Author

@swift-ci Please benchmark

1 similar comment
@trentxintong
Copy link
Copy Markdown
Contributor Author

@swift-ci Please benchmark

@swift-ci
Copy link
Copy Markdown
Contributor

Build comment file:

Optimized (O)

Regression (4)

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
**Unoptimized (Onone)**

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(?)
**Hardware Overview** Model Name: Mac mini Model Identifier: Macmini7,1 Processor Name: Intel Core i7 Processor Speed: 3 GHz Number of Processors: 1 Total Number of Cores: 2 L2 Cache (per Core): 256 KB L3 Cache: 4 MB Memory: 16 GB

@trentxintong
Copy link
Copy Markdown
Contributor Author

@shahmishal Thanks for fixing "please benchmark" this looks similar to what i saw on my local machine

@trentxintong
Copy link
Copy Markdown
Contributor Author

@swift-ci Please benchmark

@swift-ci
Copy link
Copy Markdown
Contributor

Build comment file:

Optimized (O)

Regression (4)

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
**Unoptimized (Onone)**

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
**Hardware Overview** Model Name: Mac mini Model Identifier: Macmini7,1 Processor Name: Intel Core i7 Processor Speed: 3 GHz Number of Processors: 1 Total Number of Cores: 2 L2 Cache (per Core): 256 KB L3 Cache: 4 MB Memory: 16 GB

@trentxintong
Copy link
Copy Markdown
Contributor Author

@swift-ci Please test linux

@trentxintong
Copy link
Copy Markdown
Contributor Author

@swift-ci Please benchmark

@trentxintong
Copy link
Copy Markdown
Contributor Author

@swift-ci Please test

@swift-ci
Copy link
Copy Markdown
Contributor

Build comment file:

Optimized (O)

Regression (3)

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
**Unoptimized (Onone)**

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
**Hardware Overview** Model Name: Mac mini Model Identifier: Macmini7,1 Processor Name: Intel Core i7 Processor Speed: 3 GHz Number of Processors: 1 Total Number of Cores: 2 L2 Cache (per Core): 256 KB L3 Cache: 4 MB Memory: 16 GB

@trentxintong trentxintong changed the title Implement Retain/Release code motion. Implement retain release code motion. Apr 13, 2016
@trentxintong trentxintong changed the title Implement retain release code motion. implement retain release code motion. Apr 13, 2016
@trentxintong
Copy link
Copy Markdown
Contributor Author

@swift-ci Please test

@trentxintong
Copy link
Copy Markdown
Contributor Author

@swift-ci Please test Linux

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Why not just check size() != 1?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

will do.

@trentxintong
Copy link
Copy Markdown
Contributor Author

@rudkx can you please review this pass ?

@trentxintong
Copy link
Copy Markdown
Contributor Author

@swift-ci Please test Linux

@swift-ci
Copy link
Copy Markdown
Contributor

Build comment file:

Optimized (O)

Regression (4)

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
**Unoptimized (Onone)**

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
**Hardware Overview** Model Name: Mac mini Model Identifier: Macmini7,1 Processor Name: Intel Core i5 Processor Speed: 2.8 GHz Number of Processors: 1 Total Number of Cores: 2 L2 Cache (per Core): 256 KB L3 Cache: 3 MB Memory: 16 GB

@trentxintong
Copy link
Copy Markdown
Contributor Author

@swift-ci Please test

1 similar comment
@trentxintong
Copy link
Copy Markdown
Contributor Author

@swift-ci Please test

@trentxintong
Copy link
Copy Markdown
Contributor Author

@swift-ci Please benchmark

@swift-ci
Copy link
Copy Markdown
Contributor

Build comment file:

Optimized (O)

Regression (4)

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(?)
**Unoptimized (Onone)**

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
**Hardware Overview** Model Name: Mac mini Model Identifier: Macmini7,1 Processor Name: Intel Core i7 Processor Speed: 3 GHz Number of Processors: 1 Total Number of Cores: 2 L2 Cache (per Core): 256 KB L3 Cache: 4 MB Memory: 16 GB

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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?

Copy link
Copy Markdown
Contributor Author

@trentxintong trentxintong Apr 15, 2016

Choose a reason for hiding this comment

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

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

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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.

Copy link
Copy Markdown
Contributor Author

@trentxintong trentxintong Apr 16, 2016

Choose a reason for hiding this comment

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

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.

@trentxintong
Copy link
Copy Markdown
Contributor Author

@swift-ci Please benchmark

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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.

@swift-ci
Copy link
Copy Markdown
Contributor

Build comment file:

Optimized (O)

Regression (5)

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
**Unoptimized (Onone)**

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(?)
**Hardware Overview** Model Name: Mac mini Model Identifier: Macmini7,1 Processor Name: Intel Core i7 Processor Speed: 3 GHz Number of Processors: 1 Total Number of Cores: 2 L2 Cache (per Core): 256 KB L3 Cache: 4 MB Memory: 16 GB

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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.

Copy link
Copy Markdown
Contributor Author

@trentxintong trentxintong Apr 16, 2016

Choose a reason for hiding this comment

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

This comment is out of date. I will remove the HasBlock and rename ThisBlock

@trentxintong
Copy link
Copy Markdown
Contributor Author

@swift-ci Please test

@trentxintong
Copy link
Copy Markdown
Contributor Author

@swift-ci Please benchmark

@swift-ci
Copy link
Copy Markdown
Contributor

Build comment file:

Optimized (O)

Regression (2)

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
**Unoptimized (Onone)**

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
**Hardware Overview** Model Name: Mac mini Model Identifier: Macmini7,1 Processor Name: Intel Core i7 Processor Speed: 3 GHz Number of Processors: 1 Total Number of Cores: 2 L2 Cache (per Core): 256 KB L3 Cache: 4 MB Memory: 16 GB

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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.

@trentxintong
Copy link
Copy Markdown
Contributor Author

@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.

@trentxintong
Copy link
Copy Markdown
Contributor Author

@swift-ci Please benchmark

@trentxintong
Copy link
Copy Markdown
Contributor Author

@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**
@swift-ci
Copy link
Copy Markdown
Contributor

Build comment file:

Optimized (O)

Regression (6)

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
**Unoptimized (Onone)**

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
**Hardware Overview** Model Name: Mac mini Model Identifier: Macmini7,1 Processor Name: Intel Core i7 Processor Speed: 3 GHz Number of Processors: 1 Total Number of Cores: 2 L2 Cache (per Core): 256 KB L3 Cache: 4 MB Memory: 16 GB

@trentxintong
Copy link
Copy Markdown
Contributor Author

@swift-ci Please test

@trentxintong trentxintong merged commit 3824a94 into swiftlang:master Apr 19, 2016
@eeckstein
Copy link
Copy Markdown
Contributor

Great work!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants