Skip to content

More conservative about when we can move a release across an instruction #2158

New issue

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

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

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Apr 13, 2016
Merged

Conversation

trentxintong
Copy link
Contributor

No description provided.

@trentxintong
Copy link
Contributor Author

@swift-ci please benchmark

@atrick
Copy link
Contributor

atrick commented Apr 12, 2016

Thanks for fixing that. The new logic seems correct to me.

@trentxintong
Copy link
Contributor Author

The logic not complete yet in terms of performance. But we can keep improving it.

@trentxintong
Copy link
Contributor Author

@swift-ci Please benchmark

@swift-ci
Copy link
Contributor

Build comment file:

Optimized (O)

Regression (1)

TEST OLD_MIN NEW_MIN DELTA (%) SPEEDUP
PopFrontArray 1148 1228 +7.0% 0.93x

Improvement (1)

TEST OLD_MIN NEW_MIN DELTA (%) SPEEDUP
DictionaryLiteral 3287 2961 -9.9% 1.11x

No Changes (113)

TEST OLD_MIN NEW_MIN DELTA (%) SPEEDUP
SetExclusiveOr 3936 3776 -4.1% 1.04x
Calculator 35 34 -2.9% 1.03x
DictionaryRemoveOfObjects 19904 19399 -2.5% 1.03x
StrToInt 6412 6206 -3.2% 1.03x
ObjectiveCBridgeStubFromArrayOfNSString 112204 108743 -3.1% 1.03x(?)
ObjectiveCBridgeFromNSDictionaryAnyObject 186068 182379 -2.0% 1.02x(?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 190329 187423 -1.5% 1.02x(?)
NSError 358 352 -1.7% 1.02x
114 2532149 2492317 -1.6% 1.02x
ObjectiveCBridgeToNSString 1034 1023 -1.1% 1.01x(?)
Array2D 2012 1994 -0.9% 1.01x(?)
StringInterpolation 10280 10223 -0.6% 1.01x(?)
ProtocolDispatch2 152 151 -0.7% 1.01x
ObjectiveCBridgeToNSSet 17843 17676 -0.9% 1.01x(?)
UTF8Decode 260 258 -0.8% 1.01x
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 123846 122369 -1.2% 1.01x(?)
ObjectiveCBridgeStubToArrayOfNSString 30167 29987 -0.6% 1.01x(?)
StringBuilder 1395 1382 -0.9% 1.01x
ObjectiveCBridgeToNSDictionary 17897 17741 -0.9% 1.01x(?)
MonteCarloE 10019 9939 -0.8% 1.01x(?)
SetUnion_OfObjects 7117 7029 -1.2% 1.01x(?)
ArrayOfPOD 172 171 -0.6% 1.01x(?)
ArraySubscript 1316 1320 +0.3% 1.00x(?)
DictionarySwapOfObjects 7140 7162 +0.3% 1.00x(?)
RecursiveOwnedParameter 1826 1829 +0.2% 1.00x
ObjectiveCBridgeStubToNSString 1370 1375 +0.4% 1.00x
ClassArrayGetter 12 12 +0.0% 1.00x
Histogram 652 652 +0.0% 1.00x
SortStrings 1677 1676 -0.1% 1.00x
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 4569 4570 +0.0% 1.00x(?)
MonteCarloPi 42500 42667 +0.4% 1.00x
StringWithCString 75586 75635 +0.1% 1.00x(?)
ObjectiveCBridgeFromNSStringForced 2140 2146 +0.3% 1.00x(?)
SortLettersInPlace 1006 1006 +0.0% 1.00x
DictionarySwap 753 752 -0.1% 1.00x(?)
ArrayOfGenericPOD 208 208 +0.0% 1.00x
Dictionary3OfObjects 1218 1216 -0.2% 1.00x(?)
ByteSwap 1 1 +0.0% 1.00x
SuperChars 550559 551817 +0.2% 1.00x(?)
XorLoop 359 359 +0.0% 1.00x
ObjectiveCBridgeStubFromNSStringRef 327 327 +0.0% 1.00x
ProtocolDispatch 2886 2875 -0.4% 1.00x
ObjectAllocation 141 141 +0.0% 1.00x
TypeFlood 0 0 +0.0% 1.00x
ObjectiveCBridgeFromNSSetAnyObject 94369 94226 -0.1% 1.00x(?)
Dictionary3 797 796 -0.1% 1.00x(?)
Dictionary2 2404 2410 +0.2% 1.00x(?)
StrComplexWalk 3037 3023 -0.5% 1.00x(?)
SetIntersect_OfObjects 2728 2728 +0.0% 1.00x
Join 440 439 -0.2% 1.00x(?)
ArrayOfRef 3420 3436 +0.5% 1.00x(?)
ObjectiveCBridgeToNSArray 29368 29412 +0.1% 1.00x(?)
DictionaryOfObjects 2705 2713 +0.3% 1.00x(?)
PopFrontArrayGeneric 1221 1219 -0.2% 1.00x(?)
PopFrontUnsafePointer 8488 8483 -0.1% 1.00x
CaptureProp 3739 3737 -0.1% 1.00x(?)
PolymorphicCalls 61 61 +0.0% 1.00x
MapReduce 327 327 +0.0% 1.00x
Hanoi 3132 3129 -0.1% 1.00x(?)
OpenClose 52 52 +0.0% 1.00x
Dictionary 968 968 +0.0% 1.00x
NopDeinit 34635 34588 -0.1% 1.00x(?)
ObjectiveCBridgeFromNSArrayAnyObject 62467 62461 -0.0% 1.00x(?)
SetIntersect 1133 1131 -0.2% 1.00x(?)
RGBHistogramOfObjects 22348 22343 -0.0% 1.00x(?)
ArrayOfGenericRef 3475 3480 +0.1% 1.00x(?)
ObjectiveCBridgeFromNSString 1549 1551 +0.1% 1.00x(?)
Sim2DArray 403 403 +0.0% 1.00x
SetExclusiveOr_OfObjects 8842 8803 -0.4% 1.00x
RC4 251 251 +0.0% 1.00x
SetIsSubsetOf_OfObjects 542 544 +0.4% 1.00x
ArrayAppend 727 727 +0.0% 1.00x
RGBHistogram 3354 3352 -0.1% 1.00x(?)
ObjectiveCBridgeFromNSSetAnyObjectForced 4030 4042 +0.3% 1.00x(?)
ArrayValueProp4 5 5 +0.0% 1.00x
SetUnion 3260 3253 -0.2% 1.00x(?)
BitCount 1 1 +0.0% 1.00x
SevenBoom 1275 1271 -0.3% 1.00x(?)
StringWalk 5917 5922 +0.1% 1.00x(?)
ArrayValueProp 5 5 +0.0% 1.00x
GlobalClass 0 0 +0.0% 1.00x
Memset 223 222 -0.5% 1.00x
Dictionary2OfObjects 3956 3949 -0.2% 1.00x(?)
ArrayAppendReserved 506 507 +0.2% 1.00x
ArrayValueProp2 5 5 +0.0% 1.00x
ArrayValueProp3 5 5 +0.0% 1.00x
ObjectiveCBridgeFromNSArrayAnyObjectToString 159026 161266 +1.4% 0.99x(?)
DictionaryBridge 3648 3682 +0.9% 0.99x(?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 3604 3638 +0.9% 0.99x
Prims 728 732 +0.6% 0.99x
Integrate 241 243 +0.8% 0.99x(?)
ErrorHandling 2901 2941 +1.4% 0.99x(?)
ArrayLiteral 974 980 +0.6% 0.99x
SetIsSubsetOf 477 480 +0.6% 0.99x
Phonebook 9080 9156 +0.8% 0.99x
HashTest 1820 1841 +1.1% 0.99x
LinkedList 8889 8938 +0.6% 0.99x(?)
ObjectiveCBridgeFromNSSetAnyObjectToString 172602 174430 +1.1% 0.99x(?)
Chars 616 625 +1.5% 0.99x
AngryPhonebook 3273 3317 +1.3% 0.99x(?)
TwoSum 1714 1727 +0.8% 0.99x(?)
RangeAssignment 260 264 +1.5% 0.98x(?)
ObjectiveCBridgeStubFromNSString 685 696 +1.6% 0.98x(?)
StaticArray 2634 2691 +2.2% 0.98x(?)
NSDictionaryCastToSwift 8456 8598 +1.7% 0.98x
ArrayInClass 81 83 +2.5% 0.98x(?)
DictionaryRemove 4697 4777 +1.7% 0.98x
DeadArray 172 175 +1.7% 0.98x
StackPromo 18622 19203 +3.1% 0.97x(?)
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 108945 112778 +3.5% 0.97x
Walsh 313 327 +4.5% 0.96x
NSStringConversion 573 598 +4.4% 0.96x
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 155991 164350 +5.4% 0.95x
**Unoptimized (Onone)**

Regression (1)

TEST OLD_MIN NEW_MIN DELTA (%) SPEEDUP
TypeFlood 154 166 +7.8% 0.93x

Improvement (4)

TEST OLD_MIN NEW_MIN DELTA (%) SPEEDUP
ObjectiveCBridgeFromNSSetAnyObjectToString 193544 183192 -5.3% 1.06x(?)
ObjectiveCBridgeToNSSet 18131 16917 -6.7% 1.07x
OpenClose 494 459 -7.1% 1.08x(?)
StringWalk 40655 34011 -16.3% 1.20x

No Changes (110)

TEST OLD_MIN NEW_MIN DELTA (%) SPEEDUP
UTF8Decode 41109 39275 -4.5% 1.05x(?)
NopDeinit 60512 57606 -4.8% 1.05x
Calculator 921 887 -3.7% 1.04x
NSDictionaryCastToSwift 9910 9667 -2.5% 1.03x
ObjectiveCBridgeToNSDictionary 17686 17091 -3.4% 1.03x(?)
StackPromo 165292 162807 -1.5% 1.02x(?)
SortStrings 14363 14074 -2.0% 1.02x(?)
PopFrontArray 12236 12024 -1.7% 1.02x
ProtocolDispatch 4788 4675 -2.4% 1.02x
DictionaryOfObjects 7240 7125 -1.6% 1.02x
ArrayOfGenericPOD 3495 3419 -2.2% 1.02x
ObjectiveCBridgeStubToArrayOfNSString 30567 29972 -1.9% 1.02x
StringBuilder 8412 8278 -1.6% 1.02x(?)
ObjectiveCBridgeToNSString 1064 1053 -1.0% 1.01x(?)
StringInterpolation 14378 14303 -0.5% 1.01x
Join 1344 1334 -0.7% 1.01x
StaticArray 17075 16911 -1.0% 1.01x(?)
ProtocolDispatch2 422 419 -0.7% 1.01x
PolymorphicCalls 1142 1136 -0.5% 1.01x(?)
DictionaryLiteral 20403 20174 -1.1% 1.01x(?)
Hanoi 22046 21904 -0.6% 1.01x
ArrayValueProp2 18411 18243 -0.9% 1.01x(?)
ArraySubscript 5327 5349 +0.4% 1.00x(?)
DictionarySwapOfObjects 25071 25154 +0.3% 1.00x(?)
ObjectiveCBridgeFromNSDictionaryAnyObject 193948 194397 +0.2% 1.00x(?)
RecursiveOwnedParameter 10392 10381 -0.1% 1.00x(?)
ObjectiveCBridgeStubToNSString 1678 1680 +0.1% 1.00x(?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 201172 201257 +0.0% 1.00x(?)
ClassArrayGetter 1266 1268 +0.2% 1.00x(?)
Array2D 790859 790792 -0.0% 1.00x(?)
Histogram 13763 13786 +0.2% 1.00x(?)
MonteCarloPi 50447 50413 -0.1% 1.00x
StringWithCString 326019 325576 -0.1% 1.00x(?)
Prims 14699 14666 -0.2% 1.00x(?)
DictionarySwap 11014 11021 +0.1% 1.00x(?)
Dictionary3OfObjects 2870 2871 +0.0% 1.00x(?)
RangeAssignment 15712 15742 +0.2% 1.00x(?)
ByteSwap 9 9 +0.0% 1.00x
SuperChars 732170 730177 -0.3% 1.00x(?)
XorLoop 18459 18471 +0.1% 1.00x
ObjectiveCBridgeStubFromNSStringRef 651 651 +0.0% 1.00x
ObjectiveCBridgeStubFromNSString 1122 1126 +0.4% 1.00x(?)
ObjectAllocation 1293 1297 +0.3% 1.00x(?)
ArrayLiteral 1060 1057 -0.3% 1.00x(?)
Walsh 12180 12217 +0.3% 1.00x(?)
Dictionary3 2255 2259 +0.2% 1.00x(?)
Dictionary2 5489 5497 +0.1% 1.00x(?)
StrComplexWalk 8456 8415 -0.5% 1.00x
SetIntersect_OfObjects 18823 18816 -0.0% 1.00x(?)
ErrorHandling 7335 7320 -0.2% 1.00x(?)
ArrayOfRef 9767 9789 +0.2% 1.00x(?)
ObjectiveCBridgeToNSArray 29522 29454 -0.2% 1.00x(?)
PopFrontUnsafePointer 95360 95106 -0.3% 1.00x(?)
MapReduce 42874 42937 +0.1% 1.00x(?)
114 5466728 5458600 -0.1% 1.00x
DictionaryRemoveOfObjects 60643 60503 -0.2% 1.00x(?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 128921 128877 -0.0% 1.00x(?)
SetIsSubsetOf 2943 2947 +0.1% 1.00x
Dictionary 4328 4335 +0.2% 1.00x(?)
SetIntersect 18970 18878 -0.5% 1.00x
SetExclusiveOr 48964 49061 +0.2% 1.00x(?)
RGBHistogramOfObjects 115307 115158 -0.1% 1.00x(?)
StrToInt 20317 20300 -0.1% 1.00x(?)
ArrayInClass 3648 3647 -0.0% 1.00x(?)
ArrayOfGenericRef 10408 10442 +0.3% 1.00x
Sim2DArray 13141 13135 -0.1% 1.00x(?)
SetExclusiveOr_OfObjects 67454 67199 -0.4% 1.00x(?)
MonteCarloE 101475 101868 +0.4% 1.00x(?)
SetUnion_OfObjects 51240 51274 +0.1% 1.00x(?)
RC4 8741 8739 -0.0% 1.00x(?)
HashTest 6220 6224 +0.1% 1.00x(?)
SetIsSubsetOf_OfObjects 2822 2830 +0.3% 1.00x(?)
ArrayAppend 2852 2840 -0.4% 1.00x(?)
DictionaryRemove 30181 30248 +0.2% 1.00x
LinkedList 26303 26315 +0.1% 1.00x(?)
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 121880 122135 +0.2% 1.00x(?)
NSStringConversion 2585 2582 -0.1% 1.00x(?)
RGBHistogram 66521 66350 -0.3% 1.00x(?)
ObjectiveCBridgeFromNSSetAnyObjectForced 7420 7417 -0.0% 1.00x(?)
SetUnion 34834 34839 +0.0% 1.00x(?)
Chars 54382 54459 +0.1% 1.00x(?)
DeadArray 133290 133435 +0.1% 1.00x(?)
BitCount 81 81 +0.0% 1.00x
AngryPhonebook 6365 6345 -0.3% 1.00x(?)
SevenBoom 1434 1431 -0.2% 1.00x
GlobalClass 0 0 +0.0% 1.00x
Memset 20653 20646 -0.0% 1.00x
Dictionary2OfObjects 7178 7192 +0.2% 1.00x(?)
ArrayValueProp4 2537 2542 +0.2% 1.00x(?)
TwoSum 9299 9295 -0.0% 1.00x(?)
DictionaryBridge 3730 3784 +1.4% 0.99x(?)
ObjectiveCBridgeFromNSStringForced 2571 2584 +0.5% 0.99x(?)
Integrate 350 352 +0.6% 0.99x
ObjectiveCBridgeFromNSSetAnyObject 98970 100451 +1.5% 0.99x(?)
ObjectiveCBridgeFromNSArrayAnyObject 66349 66685 +0.5% 0.99x(?)
Phonebook 85568 86261 +0.8% 0.99x(?)
ArrayAppendReserved 2640 2673 +1.2% 0.99x(?)
ArrayValueProp 2219 2240 +0.9% 0.99x(?)
ArrayValueProp3 2572 2602 +1.2% 0.99x(?)
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 7034 7181 +2.1% 0.98x(?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 6894 7032 +2.0% 0.98x
SortLettersInPlace 4236 4325 +2.1% 0.98x
CaptureProp 51639 52839 +2.3% 0.98x
ObjectiveCBridgeFromNSString 4871 4977 +2.2% 0.98x(?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 157069 160882 +2.4% 0.98x(?)
NSError 640 657 +2.7% 0.97x(?)
PopFrontArrayGeneric 12627 13002 +3.0% 0.97x
ObjectiveCBridgeStubFromArrayOfNSString 107797 112235 +4.1% 0.96x(?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 157323 166027 +5.5% 0.95x
ArrayOfPOD 2150 2264 +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
Contributor Author

@swift-ci Please test

We now consider effect of deinit in addition to the released value.

rdar://25362826

This is the only 10%+ regression i measured on my machine. no performance improvement.

Sim2DArray                                              | 326     | 366     | +12.3%    | **0.89x**
@trentxintong
Copy link
Contributor Author

@swift-ci Please test

@trentxintong trentxintong merged commit 7aa3b89 into swiftlang:master Apr 13, 2016
@trentxintong trentxintong deleted the RM branch May 4, 2016 04:55
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.

3 participants