Skip to content

Conversation

@aschwaighofer
Copy link
Contributor

IRGen: Allocate generic/resilient values on the stack instead of on the heap

Allocate buffers for local generic/resilient values on the stack. alloc_stack
instructions in the entry block are translated using a dynamic alloca
instruction with variables size. All other alloc_stack instructions in addition
use llvm's stacksave/restore instrinsics to reset the stack (they could be
executed multiple times and with varying sizes).

Add support of a IRGen lowering SIL pipeline

This pipeline is run as part of IRGen and has access to the IRGenModule.

Passes that run as part of this pipeline can query for the IRGenModule.

We will use it for the AllocStackHoisting pass. It wants to know when a type is of
non-fixed size.

To break the cyclic dependency between IRGen -> SILOptimizer -> IRGen that would
arise from the SILPassManager having to know about the createIRGENPASS()
function IRGen passes instead of exposing this function dynamically have to add
themselves to the pass manager.

Add an alloc_stack hoisting pass

Hoist alloc_stack instructions of 'generic' or resilient type to the entry
block. Ad the same time also perform a very simple stack coloring analysis.
This does not use a true liveness-analysis yet but rather employs some simple
conservative checks to see whether the live ranges of two alloc_stacks might
interfere.

AllocStackHoisting is an IRGen SIL pass. This allows for using IRGen's type
lowering information.

@aschwaighofer
Copy link
Contributor Author

@swift-ci Please test

@jckarter
Copy link
Contributor

Awesome!

@slavapestov
Copy link
Contributor

Would it be better to extend SIL type lowering to distinguish fixed size address only types (weak references, existentials) from the generic/resilient case, eliminating the weird dependency on IRGen in the new SIL pass?

Copy link
Contributor

@gottesmm gottesmm left a comment

Choose a reason for hiding this comment

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

A question + a rename request.

Copy link
Contributor

Choose a reason for hiding this comment

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

Can you change this to getEntryBlock()?

Copy link
Contributor

Choose a reason for hiding this comment

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

Question. I am worried about being able to mix IRGen and Performance passes. What is to stop me from doing so and if I do so what will happen? Should we have an additional SIL stage or something like that? (Just thinking out loud).

One could even argue that perhaps we need a separate entry point (like autolink is to the driver that only can optimize lowered SIL) or something like that.

Like I said I am just thinking out loud (unsure).

Copy link
Contributor Author

Choose a reason for hiding this comment

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

At this point nothing bad will happen and you are free to do so

Copy link
Contributor

Choose a reason for hiding this comment

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

Ok. So what will happen now?

Copy link
Contributor

Choose a reason for hiding this comment

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

Ah ok. The pass was hidden by github's interface. You are just using the size information, nothing else. My worries are gone!

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Both passes will run in the order you specified.

@gottesmm
Copy link
Contributor

Also, why couldn't we make these passes in a separate library. Then you don't need to do the dynamic stuff. libswiftSILIRGenPasses...

@gottesmm
Copy link
Contributor

(Even though I have a couple of high level thoughts... +1! Overall!)

@swift-ci
Copy link
Contributor

Build failed
Jenkins build - Swift Test OS X Platform
Git Commit - 648f72a395226afc6768f5ce1cf35fabaa7faca8
Test requested by - @aschwaighofer

@swift-ci
Copy link
Contributor

Build failed
Jenkins build - Swift Test Linux Platform
Git Commit - 648f72a395226afc6768f5ce1cf35fabaa7faca8
Test requested by - @aschwaighofer

@aschwaighofer
Copy link
Contributor Author

@slavapestov I don't see a good reason to replicate the recursive type lowering at the SIL level?

@aschwaighofer
Copy link
Contributor Author

@slavapestov Once we implement a SIL lowering pass that keeps large structs in memory (instead of aggressively exploding it) this pass will also very likely want to query IRGen for lowering properties such as size and will run in this IRGen pipeline. So will Andy's work (although it is not dependent on having an IRGenModule AFAIK).

@gottesmm The pass manager has a dependency on the createPASSName() function.

Moving the pass into a separate library does not fix that.

@aschwaighofer
Copy link
Contributor Author

@swift-ci Please test

1 similar comment
@aschwaighofer
Copy link
Contributor Author

@swift-ci Please test

@swift-ci
Copy link
Contributor

Build failed
Jenkins build - Swift Test Linux Platform
Git Commit - f1dc3eb9d5a37f25a13720561fa23e05a32b7a8b
Test requested by - @aschwaighofer

@aschwaighofer
Copy link
Contributor Author

@swift-ci Please test

1 similar comment
@aschwaighofer
Copy link
Contributor Author

@swift-ci Please test

@slavapestov
Copy link
Contributor

Well, SIL already does a recursive walk over value types when lowering, it just computes less stuff than IRGen.

But as long as you run the IRGen passes after serialization, it should be ok.

One day we might want to come up with some abstractions to factor out duplication between SIL and IRGen type lowering. Sema has to do a recursive walk over value types too, to diagnose infinite types.

@jckarter Any thoughts?

@jckarter
Copy link
Contributor

SIL type lowering could definitely track some more interesting properties such as "empty", "uninhabited", and "fixed-size" that can be figured out irrespective of the concrete IR layout. I think it still makes sense to have a transitional stage between SIL and IRGen where we do SIL transformations based on properties that normally aren't determined till IRGen.

…he heap

Allocate buffers for local generic/resilient values on the stack. alloc_stack
instructions in the entry block are translated using a dynamic alloca
instruction with variables size. All other alloc_stack instructions in addition
use llvm's stacksave/restore instrinsics to reset the stack (they could be
executed multiple times and with varying sizes).
@aschwaighofer aschwaighofer force-pushed the stack_alloc_generics_07 branch from ea84151 to 9a3781c Compare December 20, 2016 15:32
@aschwaighofer
Copy link
Contributor Author

@swift-ci Please smoke test

This pipeline is run as part of IRGen and has access to the IRGenModule.

Passes that run as part of this pipeline can query for the IRGenModule.

We will use it for the AllocStackHoisting pass. It wants to know if a type is of
non-fixed size.

To break the cyclic dependency between IRGen -> SILOptimizer -> IRGen that would
arise from the SILPassManager having to know about the createIRGENPASS()
function IRGen passes instead of exposing this function dynamically have to add
themselves to the pass manager.
Hoist alloc_stack instructions of 'generic' or resilient type to the entry
block. At the same time also perform a very simple stack coloring analysis.
This does not use a true liveness-analysis yet but rather employs some simple
conservative checks to see whether the live ranges of two alloc_stacks might
interfere.

AllocStackHoisting is an IRGen SIL pass. This allows for using IRGen's type
lowering information. Furthermore, hoisting and merging the alloc_stack
instructions this late does not interfere with SIL optimizations because the
resulting SIL never gets serialized.
@aschwaighofer aschwaighofer force-pushed the stack_alloc_generics_07 branch from 9a3781c to a87f343 Compare December 20, 2016 15:54
@aschwaighofer
Copy link
Contributor Author

@swift-ci Please smoke test os x

@aschwaighofer
Copy link
Contributor Author

@swift-ci Please smoke test

@aschwaighofer
Copy link
Contributor Author

@swift-ci Please benchmark

@aschwaighofer
Copy link
Contributor Author

@swift-ci Please benchmark

@swift-ci
Copy link
Contributor

Build comment file:

Optimized (O)

Regression (0)
Improvement (13)
TEST OLD_MIN NEW_MIN DELTA (%) SPEEDUP
ObjectiveCBridgeToNSSet 40303 37736 -6.4% 1.07x
ObjectiveCBridgeFromNSDictionaryAnyObject 179583 165823 -7.7% 1.08x
OpenClose 62 57 -8.1% 1.09x
150 3095630 2847884 -8.0% 1.09x
DictionaryBridge 3704 3346 -9.7% 1.11x
SetExclusiveOr 2878 2534 -11.9% 1.14x
ObjectiveCBridgeFromNSSetAnyObjectToString 140422 120040 -14.5% 1.17x
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 206086 175017 -15.1% 1.18x
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 131894 109386 -17.1% 1.21x(?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 120485 96055 -20.3% 1.25x
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 102771 81589 -20.6% 1.26x
NopDeinit 38139 22843 -40.1% 1.67x
StaticArray 2792 719 -74.2% 3.88x
No Changes (138)
TEST OLD_MIN NEW_MIN DELTA (%) SPEEDUP
ObjectiveCBridgeFromNSSetAnyObject 84866 80728 -4.9% 1.05x(?)
NSStringConversion 831 791 -4.8% 1.05x
ObjectiveCBridgeFromNSArrayAnyObject 76227 73180 -4.0% 1.04x
DictionaryRemove 2406 2312 -3.9% 1.04x(?)
ObjectiveCBridgeStubFromNSDateRef 3935 3838 -2.5% 1.03x(?)
ObserverUnappliedMethod 2377 2307 -2.9% 1.03x(?)
Hanoi 3295 3196 -3.0% 1.03x
ObjectiveCBridgeStubNSDateMutationRef 12157 11752 -3.3% 1.03x(?)
Histogram 293 286 -2.4% 1.02x(?)
ErrorHandling 2935 2877 -2.0% 1.02x(?)
ObjectiveCBridgeStubDataAppend 3438 3381 -1.7% 1.02x(?)
ObjectiveCBridgeToNSDictionary 61980 60604 -2.2% 1.02x(?)
ObjectiveCBridgeFromNSSetAnyObjectForced 4775 4699 -1.6% 1.02x(?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 90493 88895 -1.8% 1.02x(?)
ObjectiveCBridgeStubFromArrayOfNSString 58487 57061 -2.4% 1.02x(?)
ObjectiveCBridgeStubFromNSDate 3956 3875 -2.0% 1.02x(?)
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 5568 5504 -1.1% 1.01x(?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 6176 6107 -1.1% 1.01x(?)
ObjectiveCBridgeFromNSStringForced 2718 2703 -0.6% 1.01x(?)
ObserverClosure 1952 1934 -0.9% 1.01x(?)
ObjectiveCBridgeStubFromNSStringRef 136 135 -0.7% 1.01x(?)
ObjectiveCBridgeStubFromNSString 779 775 -0.5% 1.01x(?)
Dictionary3 522 518 -0.8% 1.01x(?)
Dictionary2 2024 2012 -0.6% 1.01x(?)
ObjectiveCBridgeStubURLAppendPathRef 233625 231557 -0.9% 1.01x(?)
ObjectiveCBridgeToNSArray 30904 30721 -0.6% 1.01x(?)
StringEqualPointerComparison 7386 7301 -1.1% 1.01x
CaptureProp 4101 4058 -1.1% 1.01x(?)
AngryPhonebook 2845 2814 -1.1% 1.01x
ObjectiveCBridgeStubToArrayOfNSString 29720 29397 -1.1% 1.01x(?)
SetIntersect 364 362 -0.6% 1.01x(?)
NSDictionaryCastToSwift 5044 4982 -1.2% 1.01x(?)
SetExclusiveOr_OfObjects 7440 7386 -0.7% 1.01x(?)
MonteCarloE 10561 10472 -0.8% 1.01x(?)
Dictionary2OfObjects 3429 3396 -1.0% 1.01x(?)
ObserverPartiallyAppliedMethod 3363 3326 -1.1% 1.01x(?)
ArraySubscript 1427 1426 -0.1% 1.00x(?)
ObjectiveCBridgeToNSString 1075 1074 -0.1% 1.00x(?)
DictionarySwapOfObjects 6255 6245 -0.2% 1.00x(?)
StackPromo 21416 21352 -0.3% 1.00x(?)
RecursiveOwnedParameter 1933 1935 +0.1% 1.00x(?)
ObjectiveCBridgeStubToNSString 1278 1280 +0.2% 1.00x(?)
ClassArrayGetter 12 12 +0.0% 1.00x
Array2D 2028 2027 -0.1% 1.00x(?)
MonteCarloPi 44944 45000 +0.1% 1.00x(?)
StringWithCString 154996 154869 -0.1% 1.00x(?)
Prims 728 727 -0.1% 1.00x(?)
SortLettersInPlace 971 973 +0.2% 1.00x(?)
DictionarySwap 413 414 +0.2% 1.00x
ArrayAppendToFromGeneric 1073 1074 +0.1% 1.00x(?)
Dictionary3OfObjects 871 870 -0.1% 1.00x(?)
StrComplexWalk 2896 2906 +0.3% 1.00x(?)
ByteSwap 0 0 +0.0% 1.00x
ArrayAppendGenericStructs 1236 1242 +0.5% 1.00x(?)
SuperChars 210613 211336 +0.3% 1.00x(?)
ArrayAppendLazyMap 843 843 +0.0% 1.00x
XorLoop 380 380 +0.0% 1.00x
ArrayAppendReserved 535 536 +0.2% 1.00x(?)
ArrayAppendStrings 12102 12106 +0.0% 1.00x(?)
ProtocolDispatch 3039 3038 -0.0% 1.00x(?)
ObjectAllocation 153 153 +0.0% 1.00x
TypeFlood 0 0 +0.0% 1.00x
ProtocolDispatch2 158 158 +0.0% 1.00x
ArrayPlusEqualArrayOfInt 600 599 -0.2% 1.00x(?)
HashTest 1737 1741 +0.2% 1.00x(?)
SetIntersect_OfObjects 1495 1496 +0.1% 1.00x(?)
Join 462 463 +0.2% 1.00x(?)
ArrayOfRef 3543 3546 +0.1% 1.00x(?)
ArrayAppendOptionals 1234 1235 +0.1% 1.00x(?)
NSError 323 323 +0.0% 1.00x
DictionaryOfObjects 2280 2279 -0.0% 1.00x(?)
ObjectiveCBridgeStubToNSDateRef 3303 3291 -0.4% 1.00x(?)
PopFrontArrayGeneric 1290 1291 +0.1% 1.00x(?)
PopFrontUnsafePointer 9188 9217 +0.3% 1.00x(?)
PolymorphicCalls 22 22 +0.0% 1.00x
RC4 165 165 +0.0% 1.00x
ObjectiveCBridgeStubToNSStringRef 124 124 +0.0% 1.00x
Calculator 31 31 +0.0% 1.00x
ArrayAppendFromGeneric 1072 1074 +0.2% 1.00x(?)
ObjectiveCBridgeStubDateMutation 273 273 +0.0% 1.00x
IterateData 2612 2612 +0.0% 1.00x
DictionaryLiteral 1266 1268 +0.2% 1.00x(?)
ArrayOfGenericPOD 220 220 +0.0% 1.00x
DictionaryRemoveOfObjects 19289 19284 -0.0% 1.00x(?)
UTF8Decode 289 288 -0.3% 1.00x
SetIsSubsetOf 250 250 +0.0% 1.00x
Dictionary 734 733 -0.1% 1.00x(?)
RGBHistogramOfObjects 21418 21479 +0.3% 1.00x(?)
ObjectiveCBridgeStubNSDateRefAccess 338 338 +0.0% 1.00x
ArrayInClass 63 63 +0.0% 1.00x
ArrayOfGenericRef 3600 3596 -0.1% 1.00x(?)
StringHasSuffix 831 830 -0.1% 1.00x(?)
Phonebook 7182 7178 -0.1% 1.00x(?)
ObjectiveCBridgeStubDateAccess 212 212 +0.0% 1.00x
Sim2DArray 277 277 +0.0% 1.00x
ArrayAppendRepeatCol 643 643 +0.0% 1.00x
SetUnion_OfObjects 6236 6235 -0.0% 1.00x(?)
ArrayAppendToGeneric 1073 1075 +0.2% 1.00x(?)
Walsh 310 310 +0.0% 1.00x
SetIsSubsetOf_OfObjects 307 307 +0.0% 1.00x
ArrayAppend 775 775 +0.0% 1.00x
LinkedList 7209 7206 -0.0% 1.00x(?)
MapReduce 342 342 +0.0% 1.00x
RGBHistogram 2212 2217 +0.2% 1.00x(?)
ArrayAppendSequence 1063 1062 -0.1% 1.00x(?)
ArrayAppendArrayOfInt 600 600 +0.0% 1.00x
ArrayOfPOD 182 182 +0.0% 1.00x
Chars 631 631 +0.0% 1.00x
StringBuilder 1315 1315 +0.0% 1.00x
ObserverForwarderStruct 883 879 -0.5% 1.00x(?)
DeadArray 182 182 +0.0% 1.00x
ArrayValueProp2 6 6 +0.0% 1.00x
BitCount 1 1 +0.0% 1.00x
ArrayLiteral 1174 1177 +0.3% 1.00x(?)
SevenBoom 1350 1345 -0.4% 1.00x(?)
StringWalk 5914 5888 -0.4% 1.00x(?)
ArrayValueProp 6 6 +0.0% 1.00x
GlobalClass 0 0 +0.0% 1.00x
Memset 235 235 +0.0% 1.00x
ArrayValueProp4 6 6 +0.0% 1.00x
ArrayValueProp3 6 6 +0.0% 1.00x
PopFrontArray 1284 1293 +0.7% 0.99x
SortStrings 1735 1761 +1.5% 0.99x(?)
ObjectiveCBridgeStubToNSDate 13517 13603 +0.6% 0.99x(?)
StringInterpolation 10938 11080 +1.3% 0.99x(?)
Integrate 241 243 +0.8% 0.99x(?)
StringHasPrefix 748 755 +0.9% 0.99x(?)
ObjectiveCBridgeStubURLAppendPath 232888 235695 +1.2% 0.99x(?)
SortStringsUnicode 8099 8215 +1.4% 0.99x
StrToInt 5027 5076 +1.0% 0.99x
StringHasSuffixUnicode 63523 63843 +0.5% 0.99x(?)
StringHasPrefixUnicode 14173 14258 +0.6% 0.99x(?)
SetUnion 2399 2416 +0.7% 0.99x(?)
ObjectiveCBridgeFromNSString 1783 1807 +1.4% 0.99x(?)
TwoSum 1303 1310 +0.5% 0.99x(?)
ObjectiveCBridgeStubNSDataAppend 2414 2435 +0.9% 0.99x(?)
AnyHashableWithAClass 65251 66517 +1.9% 0.98x(?)
RangeAssignment 277 290 +4.7% 0.96x(?)
**Unoptimized (Onone)**
Regression (5)
TEST OLD_MIN NEW_MIN DELTA (%) SPEEDUP
DictionaryRemove 16856 18354 +8.9% 0.92x
TypeFlood 183 196 +7.1% 0.93x(?)
ArrayAppend 3305 3554 +7.5% 0.93x
Dictionary3OfObjects 2060 2187 +6.2% 0.94x
ArrayAppendReserved 3102 3301 +6.4% 0.94x
Improvement (32)
TEST OLD_MIN NEW_MIN DELTA (%) SPEEDUP
Histogram 10034 9510 -5.2% 1.06x
IterateData 10713 10077 -5.9% 1.06x
SetExclusiveOr_OfObjects 41816 39450 -5.7% 1.06x
150 6644185 6284575 -5.4% 1.06x
ObjectiveCBridgeFromNSDictionaryAnyObject 184912 171034 -7.5% 1.08x
ObjectiveCBridgeToNSSet 40471 37567 -7.2% 1.08x
DictionaryBridge 3825 3494 -8.7% 1.09x
RGBHistogramOfObjects 91092 83246 -8.6% 1.09x
Dictionary2 4035 3647 -9.6% 1.11x
OpenClose 443 398 -10.2% 1.11x
ArrayAppendSequence 105733 95412 -9.8% 1.11x
SetExclusiveOr 23787 21122 -11.2% 1.13x
SetIsSubsetOf 2133 1873 -12.2% 1.14x
ObjectiveCBridgeStubDateMutation 486 426 -12.3% 1.14x
ObjectiveCBridgeFromNSString 5177 4523 -12.6% 1.14x(?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 217454 185151 -14.9% 1.17x
ArrayOfGenericPOD 3596 3070 -14.6% 1.17x
SetIntersect 13178 11156 -15.3% 1.18x
ObjectiveCBridgeFromNSSetAnyObjectToString 151048 127649 -15.5% 1.18x
RGBHistogram 39985 33972 -15.0% 1.18x
ObjectiveCBridgeFromNSArrayAnyObjectToString 123844 103647 -16.3% 1.19x
CaptureProp 119244 99700 -16.4% 1.20x
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 141937 113764 -19.9% 1.25x
ArrayOfPOD 2389 1898 -20.6% 1.26x
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 116730 88149 -24.5% 1.32x
NopDeinit 61113 45277 -25.9% 1.35x
PopFrontUnsafePointer 242903 162547 -33.1% 1.49x
PopFrontArray 24187 13473 -44.3% 1.80x
RangeAssignment 13248 7154 -46.0% 1.85x
NSStringConversion 2958 1373 -53.6% 2.15x
Phonebook 62733 21066 -66.4% 2.98x
StaticArray 35490 11482 -67.7% 3.09x
No Changes (114)
TEST OLD_MIN NEW_MIN DELTA (%) SPEEDUP
ObjectiveCBridgeFromNSArrayAnyObject 79463 75858 -4.5% 1.05x
Prims 13236 12720 -3.9% 1.04x
SortLettersInPlace 2539 2443 -3.8% 1.04x
ObjectiveCBridgeStubFromNSString 836 805 -3.7% 1.04x
ObjectiveCBridgeFromNSSetAnyObject 89560 85886 -4.1% 1.04x
ArrayAppendRepeatCol 218439 210546 -3.6% 1.04x
ObjectiveCBridgeToNSDictionary 63099 60802 -3.6% 1.04x(?)
SetIntersect_OfObjects 12157 11842 -2.6% 1.03x
NSError 693 676 -2.5% 1.03x(?)
SetUnion_OfObjects 29126 28300 -2.8% 1.03x
ArrayOfRef 9075 8918 -1.7% 1.02x
ObjectiveCBridgeStubURLAppendPathRef 242031 236794 -2.2% 1.02x(?)
DictionaryOfObjects 4704 4608 -2.0% 1.02x
ArrayOfGenericRef 10043 9879 -1.6% 1.02x
SetIsSubsetOf_OfObjects 1895 1856 -2.1% 1.02x
SetUnion 12223 12024 -1.6% 1.02x
ObjectiveCBridgeStubFromArrayOfNSString 58860 57746 -1.9% 1.02x(?)
DictionarySwapOfObjects 20247 20038 -1.0% 1.01x(?)
ObjectiveCBridgeFromNSStringForced 3140 3105 -1.1% 1.01x(?)
ProtocolDispatch 6289 6221 -1.1% 1.01x(?)
PopFrontArrayGeneric 9562 9486 -0.8% 1.01x(?)
NSDictionaryCastToSwift 6329 6261 -1.1% 1.01x(?)
ObjectiveCBridgeFromNSSetAnyObjectForced 7548 7506 -0.6% 1.01x(?)
StringBuilder 2731 2717 -0.5% 1.01x(?)
ObjectiveCBridgeStubNSDataAppend 2782 2751 -1.1% 1.01x(?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 92276 91387 -1.0% 1.01x(?)
Dictionary2OfObjects 5990 5958 -0.5% 1.01x(?)
TwoSum 4972 4901 -1.4% 1.01x(?)
ObjectiveCBridgeToNSString 1115 1112 -0.3% 1.00x(?)
MonteCarloPi 53448 53606 +0.3% 1.00x
ObjectiveCBridgeStubToNSString 1332 1338 +0.5% 1.00x(?)
AnyHashableWithAClass 80853 80866 +0.0% 1.00x(?)
ClassArrayGetter 1274 1275 +0.1% 1.00x(?)
Array2D 811710 813883 +0.3% 1.00x
StringWithCString 152892 152632 -0.2% 1.00x(?)
DictionarySwap 6081 6102 +0.3% 1.00x(?)
StringHasPrefix 1625 1633 +0.5% 1.00x(?)
ByteSwap 9 9 +0.0% 1.00x
SuperChars 262065 263036 +0.4% 1.00x(?)
XorLoop 19995 20002 +0.0% 1.00x(?)
Integrate 368 368 +0.0% 1.00x
ArrayAppendStrings 11834 11840 +0.1% 1.00x(?)
ObjectAllocation 562 560 -0.4% 1.00x(?)
ProtocolDispatch2 441 441 +0.0% 1.00x
ArrayPlusEqualArrayOfInt 641 641 +0.0% 1.00x
HashTest 5263 5271 +0.1% 1.00x(?)
ObserverUnappliedMethod 8677 8713 +0.4% 1.00x(?)
StringEqualPointerComparison 9571 9579 +0.1% 1.00x(?)
ObjectiveCBridgeStubToNSStringRef 157 157 +0.0% 1.00x
MapReduce 44937 44878 -0.1% 1.00x(?)
Hanoi 19403 19493 +0.5% 1.00x
ObjectiveCBridgeStubURLAppendPath 239555 240499 +0.4% 1.00x(?)
Dictionary 1845 1854 +0.5% 1.00x(?)
ObjectiveCBridgeStubDataAppend 3506 3521 +0.4% 1.00x(?)
GlobalClass 0 0 +0.0% 1.00x
StrToInt 5712 5728 +0.3% 1.00x(?)
ArrayInClass 3957 3956 -0.0% 1.00x(?)
Sim2DArray 14769 14769 +0.0% 1.00x
MonteCarloE 108243 108255 +0.0% 1.00x(?)
StringHasSuffixUnicode 65381 65077 -0.5% 1.00x(?)
Walsh 13304 13317 +0.1% 1.00x(?)
ArrayAppendArrayOfInt 639 641 +0.3% 1.00x
ObserverForwarderStruct 5219 5243 +0.5% 1.00x(?)
DeadArray 121340 121791 +0.4% 1.00x(?)
BitCount 96 96 +0.0% 1.00x
AngryPhonebook 3008 2997 -0.4% 1.00x(?)
SevenBoom 1498 1495 -0.2% 1.00x(?)
ArrayValueProp 2622 2624 +0.1% 1.00x(?)
RC4 9390 9387 -0.0% 1.00x(?)
Memset 20960 20964 +0.0% 1.00x(?)
ArrayValueProp4 3044 3033 -0.4% 1.00x(?)
ArrayValueProp2 3137 3140 +0.1% 1.00x(?)
ArrayValueProp3 3084 3074 -0.3% 1.00x(?)
ArraySubscript 5605 5648 +0.8% 0.99x
StackPromo 128408 130121 +1.3% 0.99x(?)
RecursiveOwnedParameter 10842 10900 +0.5% 0.99x(?)
StringInterpolation 15740 15972 +1.5% 0.99x(?)
ObserverClosure 6936 6973 +0.5% 0.99x(?)
ArrayLiteral 1234 1245 +0.9% 0.99x
Join 1456 1468 +0.8% 0.99x
ObjectiveCBridgeStubToNSDateRef 3330 3354 +0.7% 0.99x(?)
PolymorphicCalls 1135 1149 +1.2% 0.99x
Calculator 930 935 +0.5% 0.99x(?)
DictionaryLiteral 15662 15787 +0.8% 0.99x(?)
DictionaryRemoveOfObjects 47270 47848 +1.2% 0.99x
SortStringsUnicode 9190 9273 +0.9% 0.99x(?)
ObjectiveCBridgeStubToArrayOfNSString 29677 30027 +1.2% 0.99x(?)
StringHasSuffix 1732 1747 +0.9% 0.99x
LinkedList 27700 27917 +0.8% 0.99x(?)
Chars 4988 5018 +0.6% 0.99x
ObserverPartiallyAppliedMethod 8289 8344 +0.7% 0.99x
SortStrings 2687 2742 +2.0% 0.98x
ArrayAppendToFromGeneric 219685 224068 +2.0% 0.98x
ObjectiveCBridgeStubToNSDate 13830 14169 +2.5% 0.98x(?)
ErrorHandling 3751 3841 +2.4% 0.98x(?)
Dictionary3 1388 1423 +2.5% 0.98x
StrComplexWalk 7645 7834 +2.5% 0.98x
ArrayAppendOptionals 1287 1315 +2.2% 0.98x(?)
ArrayAppendFromGeneric 219500 223441 +1.8% 0.98x
ObjectiveCBridgeStubNSDateRefAccess 1231 1257 +2.1% 0.98x
ArrayAppendToGeneric 219529 223395 +1.8% 0.98x
StringHasPrefixUnicode 14697 15011 +2.1% 0.98x
StringWalk 20928 21370 +2.1% 0.98x(?)
ObjectiveCBridgeStubFromNSDate 3799 3880 +2.1% 0.98x
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 7917 8187 +3.4% 0.97x(?)
ObjectiveCBridgeStubFromNSDateRef 4048 4179 +3.2% 0.97x
ObjectiveCBridgeFromNSArrayAnyObjectForced 10197 10465 +2.6% 0.97x(?)
ArrayAppendGenericStructs 1317 1351 +2.6% 0.97x(?)
ArrayAppendLazyMap 244551 254466 +4.0% 0.96x
ObjectiveCBridgeStubFromNSStringRef 161 168 +4.3% 0.96x
ObjectiveCBridgeToNSArray 30191 31303 +3.7% 0.96x(?)
UTF8Decode 43504 45629 +4.9% 0.95x
ObjectiveCBridgeStubDateAccess 1068 1128 +5.6% 0.95x
ObjectiveCBridgeStubNSDateMutationRef 14087 14808 +5.1% 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

@swift-ci
Copy link
Contributor

Build comment file:

Optimized (O)

Regression (0)
Improvement (13)
TEST OLD_MIN NEW_MIN DELTA (%) SPEEDUP
150 3092775 2890374 -6.5% 1.07x
ObjectiveCBridgeFromNSDictionaryAnyObject 178438 165555 -7.2% 1.08x
ObjectiveCBridgeToNSSet 40393 37522 -7.1% 1.08x
DictionaryBridge 3690 3372 -8.6% 1.09x(?)
OpenClose 62 57 -8.1% 1.09x
SetExclusiveOr 2879 2542 -11.7% 1.13x
ObjectiveCBridgeFromNSSetAnyObjectToString 136361 118071 -13.4% 1.15x
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 205631 174263 -15.2% 1.18x(?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 131198 108622 -17.2% 1.21x(?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 119506 95987 -19.7% 1.25x
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 103586 81986 -20.9% 1.26x
NopDeinit 37593 22844 -39.2% 1.65x
StaticArray 2765 724 -73.8% 3.82x
No Changes (138)
TEST OLD_MIN NEW_MIN DELTA (%) SPEEDUP
ObjectiveCBridgeFromNSSetAnyObject 84759 80562 -5.0% 1.05x
NSStringConversion 832 792 -4.8% 1.05x
ObjectiveCBridgeFromNSArrayAnyObject 75850 73104 -3.6% 1.04x(?)
Histogram 294 286 -2.7% 1.03x
ObjectiveCBridgeStubFromNSDateRef 3943 3839 -2.6% 1.03x(?)
ObjectiveCBridgeStubURLAppendPath 247265 239917 -3.0% 1.03x(?)
ObjectiveCBridgeToNSDictionary 62513 60884 -2.6% 1.03x(?)
ObjectiveCBridgeStubNSDateMutationRef 12265 11886 -3.1% 1.03x(?)
ObjectiveCBridgeStubFromNSString 784 772 -1.5% 1.02x
ObserverUnappliedMethod 2372 2321 -2.1% 1.02x(?)
ObjectiveCBridgeStubURLAppendPathRef 245320 240882 -1.8% 1.02x(?)
Hanoi 3301 3222 -2.4% 1.02x
ObjectiveCBridgeStubDataAppend 3431 3370 -1.8% 1.02x(?)
ObjectiveCBridgeFromNSSetAnyObjectForced 4770 4693 -1.6% 1.02x(?)
ObjectiveCBridgeStubFromArrayOfNSString 58636 57318 -2.2% 1.02x(?)
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 5582 5514 -1.2% 1.01x(?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 6331 6242 -1.4% 1.01x(?)
ObjectiveCBridgeFromNSStringForced 2719 2701 -0.7% 1.01x(?)
Dictionary3 522 518 -0.8% 1.01x
StringEqualPointerComparison 7382 7301 -1.1% 1.01x
AngryPhonebook 2841 2814 -0.9% 1.01x
NSDictionaryCastToSwift 5003 4947 -1.1% 1.01x(?)
MonteCarloE 10566 10494 -0.7% 1.01x(?)
SevenBoom 1356 1340 -1.2% 1.01x(?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 90148 88847 -1.4% 1.01x(?)
Dictionary2OfObjects 3432 3406 -0.8% 1.01x(?)
ObjectiveCBridgeStubFromNSDate 3955 3907 -1.2% 1.01x(?)
ArraySubscript 1432 1428 -0.3% 1.00x(?)
ObjectiveCBridgeToNSString 1075 1072 -0.3% 1.00x(?)
DictionarySwapOfObjects 6257 6265 +0.1% 1.00x(?)
StackPromo 21531 21508 -0.1% 1.00x(?)
PopFrontArray 1086 1088 +0.2% 1.00x(?)
RecursiveOwnedParameter 1934 1937 +0.2% 1.00x(?)
Integrate 239 239 +0.0% 1.00x
ClassArrayGetter 12 12 +0.0% 1.00x
Array2D 2035 2025 -0.5% 1.00x(?)
MonteCarloPi 44942 44983 +0.1% 1.00x(?)
StringWithCString 155226 155450 +0.1% 1.00x(?)
Prims 725 728 +0.4% 1.00x(?)
SortLettersInPlace 969 969 +0.0% 1.00x
DictionarySwap 413 415 +0.5% 1.00x
ArrayAppendToFromGeneric 1074 1074 +0.0% 1.00x
Dictionary3OfObjects 872 870 -0.2% 1.00x(?)
StringHasPrefix 753 756 +0.4% 1.00x(?)
ByteSwap 0 0 +0.0% 1.00x
SuperChars 210572 211408 +0.4% 1.00x(?)
ArrayAppendLazyMap 844 842 -0.2% 1.00x(?)
XorLoop 380 380 +0.0% 1.00x
ArrayAppendReserved 536 536 +0.0% 1.00x
ObserverClosure 1962 1965 +0.1% 1.00x(?)
ObjectiveCBridgeStubToNSString 1283 1281 -0.2% 1.00x(?)
ArrayAppendStrings 12104 12156 +0.4% 1.00x
ProtocolDispatch 3040 3041 +0.0% 1.00x(?)
ObjectAllocation 153 153 +0.0% 1.00x
TypeFlood 0 0 +0.0% 1.00x
ArrayLiteral 1168 1167 -0.1% 1.00x(?)
ProtocolDispatch2 159 159 +0.0% 1.00x
ArrayPlusEqualArrayOfInt 600 600 +0.0% 1.00x
Walsh 310 310 +0.0% 1.00x
Dictionary2 2021 2012 -0.5% 1.00x(?)
StrComplexWalk 2891 2900 +0.3% 1.00x(?)
SetIntersect_OfObjects 1502 1499 -0.2% 1.00x(?)
ErrorHandling 2919 2918 -0.0% 1.00x(?)
ArrayOfRef 3555 3538 -0.5% 1.00x(?)
ObjectiveCBridgeStubDateMutation 273 273 +0.0% 1.00x
NSError 324 323 -0.3% 1.00x(?)
DictionaryOfObjects 2281 2284 +0.1% 1.00x(?)
ObjectiveCBridgeStubToNSDateRef 3297 3298 +0.0% 1.00x(?)
PopFrontUnsafePointer 9192 9197 +0.1% 1.00x(?)
CaptureProp 4083 4094 +0.3% 1.00x(?)
PolymorphicCalls 22 22 +0.0% 1.00x
RC4 165 165 +0.0% 1.00x
ObjectiveCBridgeStubToNSStringRef 124 124 +0.0% 1.00x
Calculator 31 31 +0.0% 1.00x
ArrayAppendFromGeneric 1072 1073 +0.1% 1.00x(?)
MapReduce 341 342 +0.3% 1.00x(?)
IterateData 2607 2610 +0.1% 1.00x(?)
DictionaryLiteral 1266 1268 +0.2% 1.00x(?)
ArrayOfGenericPOD 220 220 +0.0% 1.00x
DictionaryRemoveOfObjects 19263 19247 -0.1% 1.00x(?)
UTF8Decode 289 288 -0.3% 1.00x
SetIsSubsetOf 250 250 +0.0% 1.00x
Dictionary 735 733 -0.3% 1.00x(?)
SetIntersect 369 368 -0.3% 1.00x(?)
RGBHistogramOfObjects 21432 21510 +0.4% 1.00x(?)
ArrayInClass 63 63 +0.0% 1.00x
ArrayOfGenericRef 3601 3615 +0.4% 1.00x(?)
StringHasSuffix 831 830 -0.1% 1.00x(?)
Phonebook 7176 7177 +0.0% 1.00x(?)
ObjectiveCBridgeStubDateAccess 212 212 +0.0% 1.00x
Sim2DArray 277 277 +0.0% 1.00x
SetExclusiveOr_OfObjects 7438 7402 -0.5% 1.00x(?)
ArrayAppendRepeatCol 644 644 +0.0% 1.00x
SetUnion_OfObjects 6237 6240 +0.1% 1.00x(?)
ArrayAppendToGeneric 1073 1075 +0.2% 1.00x(?)
HashTest 1738 1739 +0.1% 1.00x(?)
SetIsSubsetOf_OfObjects 307 307 +0.0% 1.00x
ArrayAppend 775 775 +0.0% 1.00x
DictionaryRemove 2325 2315 -0.4% 1.00x(?)
LinkedList 7204 7211 +0.1% 1.00x(?)
RGBHistogram 2221 2216 -0.2% 1.00x(?)
ArrayAppendSequence 1063 1062 -0.1% 1.00x(?)
ArrayAppendArrayOfInt 600 600 +0.0% 1.00x
ArrayOfPOD 182 182 +0.0% 1.00x
Chars 631 632 +0.2% 1.00x(?)
ObjectiveCBridgeStubNSDateRefAccess 338 338 +0.0% 1.00x
StringBuilder 1312 1311 -0.1% 1.00x(?)
ObserverForwarderStruct 890 893 +0.3% 1.00x(?)
DeadArray 182 182 +0.0% 1.00x
ArrayValueProp2 6 6 +0.0% 1.00x
BitCount 1 1 +0.0% 1.00x
ArrayValueProp 6 6 +0.0% 1.00x
GlobalClass 0 0 +0.0% 1.00x
Memset 235 235 +0.0% 1.00x
ArrayValueProp4 6 6 +0.0% 1.00x
TwoSum 1314 1309 -0.4% 1.00x(?)
ArrayValueProp3 6 6 +0.0% 1.00x
ObserverPartiallyAppliedMethod 3366 3356 -0.3% 1.00x(?)
ArrayAppendGenericStructs 1241 1251 +0.8% 0.99x(?)
StringInterpolation 10966 11050 +0.8% 0.99x(?)
Join 463 468 +1.1% 0.99x(?)
ObjectiveCBridgeStubFromNSStringRef 135 136 +0.7% 0.99x(?)
SortStringsUnicode 8098 8218 +1.5% 0.99x
ObjectiveCBridgeStubToArrayOfNSString 29622 29805 +0.6% 0.99x(?)
ArrayAppendOptionals 1245 1262 +1.4% 0.99x(?)
StrToInt 5027 5070 +0.9% 0.99x
StringHasSuffixUnicode 63550 63937 +0.6% 0.99x(?)
StringHasPrefixUnicode 14156 14268 +0.8% 0.99x(?)
SetUnion 2395 2412 +0.7% 0.99x(?)
StringWalk 5875 5914 +0.7% 0.99x(?)
ObjectiveCBridgeFromNSString 1786 1807 +1.2% 0.99x(?)
ObjectiveCBridgeStubNSDataAppend 2419 2436 +0.7% 0.99x(?)
SortStrings 1733 1761 +1.6% 0.98x
AnyHashableWithAClass 65228 66552 +2.0% 0.98x(?)
ObjectiveCBridgeStubToNSDate 13009 13424 +3.2% 0.97x(?)
ObjectiveCBridgeToNSArray 30268 31170 +3.0% 0.97x(?)
PopFrontArrayGeneric 1092 1121 +2.7% 0.97x(?)
RangeAssignment 277 290 +4.7% 0.96x
**Unoptimized (Onone)**
Regression (5)
TEST OLD_MIN NEW_MIN DELTA (%) SPEEDUP
DictionaryRemove 16821 18349 +9.1% 0.92x
ArrayAppend 3305 3552 +7.5% 0.93x
UTF8Decode 43404 45973 +5.9% 0.94x
ObjectiveCBridgeStubDateAccess 1064 1128 +6.0% 0.94x
ArrayAppendReserved 3104 3299 +6.3% 0.94x
Improvement (32)
TEST OLD_MIN NEW_MIN DELTA (%) SPEEDUP
Histogram 10101 9519 -5.8% 1.06x
IterateData 10701 10083 -5.8% 1.06x
SetExclusiveOr_OfObjects 41813 39414 -5.7% 1.06x
150 6678445 6299780 -5.7% 1.06x
DictionaryBridge 3811 3553 -6.8% 1.07x
OpenClose 436 406 -6.9% 1.07x
ObjectiveCBridgeToNSSet 40743 38022 -6.7% 1.07x
RGBHistogramOfObjects 91306 84008 -8.0% 1.09x
Dictionary2 4071 3683 -9.5% 1.11x
ArrayAppendSequence 105832 95675 -9.6% 1.11x
TypeFlood 208 184 -11.5% 1.13x(?)
SetIsSubsetOf 2135 1892 -11.4% 1.13x
ObjectiveCBridgeFromNSString 5185 4587 -11.5% 1.13x
SetExclusiveOr 23821 20933 -12.1% 1.14x
ObjectiveCBridgeStubDateMutation 487 426 -12.5% 1.14x
ArrayOfGenericPOD 3583 3070 -14.3% 1.17x
RGBHistogram 40000 33946 -15.1% 1.18x
SetIntersect 13169 11113 -15.6% 1.19x
CaptureProp 119843 99621 -16.9% 1.20x
ObjectiveCBridgeFromNSSetAnyObjectToString 154800 129138 -16.6% 1.20x
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 138271 114720 -17.0% 1.21x
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 225576 185032 -18.0% 1.22x
ObjectiveCBridgeFromNSArrayAnyObjectToString 123202 99472 -19.3% 1.24x
ArrayOfPOD 2389 1898 -20.6% 1.26x
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 115490 87698 -24.1% 1.32x
NopDeinit 61203 45112 -26.3% 1.36x
PopFrontUnsafePointer 242984 162508 -33.1% 1.50x
PopFrontArray 24267 13530 -44.2% 1.79x
RangeAssignment 13251 7170 -45.9% 1.85x
NSStringConversion 2936 1375 -53.2% 2.14x
Phonebook 62059 21087 -66.0% 2.94x
StaticArray 35800 11477 -67.9% 3.12x
No Changes (114)
TEST OLD_MIN NEW_MIN DELTA (%) SPEEDUP
ObjectiveCBridgeFromNSDictionaryAnyObject 185193 176490 -4.7% 1.05x(?)
ObjectiveCBridgeStubFromArrayOfNSString 61041 58027 -4.9% 1.05x(?)
Prims 13189 12716 -3.6% 1.04x
ObjectiveCBridgeFromNSSetAnyObject 89755 86263 -3.9% 1.04x(?)
ObjectiveCBridgeStubURLAppendPathRef 251405 242095 -3.7% 1.04x(?)
SortLettersInPlace 2529 2448 -3.2% 1.03x
SetIntersect_OfObjects 12163 11842 -2.6% 1.03x
ObjectiveCBridgeFromNSArrayAnyObject 78740 76157 -3.3% 1.03x(?)
ArrayAppendRepeatCol 215551 210267 -2.5% 1.03x(?)
ObjectiveCBridgeToNSDictionary 63484 61712 -2.8% 1.03x(?)
SetUnion_OfObjects 29155 28213 -3.2% 1.03x
ObjectiveCBridgeFromNSSetAnyObjectForced 7692 7502 -2.5% 1.03x(?)
TwoSum 4981 4820 -3.2% 1.03x
ObjectiveCBridgeStubFromNSString 824 805 -2.3% 1.02x
ArrayOfRef 9061 8893 -1.9% 1.02x
DictionaryOfObjects 4702 4608 -2.0% 1.02x(?)
SetIsSubsetOf_OfObjects 1895 1860 -1.9% 1.02x
MapReduce 45636 44762 -1.9% 1.02x
DictionarySwapOfObjects 20162 19989 -0.9% 1.01x(?)
ObjectiveCBridgeFromNSStringForced 3137 3102 -1.1% 1.01x
StringHasSuffixUnicode 65423 65097 -0.5% 1.01x
ObjectiveCBridgeStubURLAppendPath 247191 245791 -0.6% 1.01x(?)
NSDictionaryCastToSwift 6245 6199 -0.7% 1.01x(?)
ArrayOfGenericRef 10015 9874 -1.4% 1.01x
SetUnion 12223 12049 -1.4% 1.01x(?)
ObjectiveCBridgeStubNSDataAppend 2807 2772 -1.2% 1.01x(?)
ObjectiveCBridgeToNSString 1106 1103 -0.3% 1.00x(?)
MonteCarloPi 53450 53656 +0.4% 1.00x
StackPromo 128173 127994 -0.1% 1.00x(?)
Integrate 365 366 +0.3% 1.00x
AnyHashableWithAClass 80719 80863 +0.2% 1.00x(?)
ClassArrayGetter 1274 1275 +0.1% 1.00x(?)
Array2D 811441 815446 +0.5% 1.00x
StringWithCString 152860 152667 -0.1% 1.00x
ObjectiveCBridgeFromNSArrayAnyObjectForced 10287 10259 -0.3% 1.00x(?)
StringHasPrefix 1629 1634 +0.3% 1.00x
ByteSwap 9 9 +0.0% 1.00x
ArrayAppendGenericStructs 1310 1309 -0.1% 1.00x(?)
SuperChars 262066 263081 +0.4% 1.00x(?)
XorLoop 20003 20000 -0.0% 1.00x(?)
ObjectiveCBridgeStubToNSString 1332 1336 +0.3% 1.00x(?)
ArrayAppendStrings 11856 11829 -0.2% 1.00x(?)
ProtocolDispatch 6262 6235 -0.4% 1.00x(?)
ProtocolDispatch2 441 441 +0.0% 1.00x
ObjectiveCBridgeToNSArray 30777 30860 +0.3% 1.00x(?)
NSError 670 670 +0.0% 1.00x
StringEqualPointerComparison 9577 9588 +0.1% 1.00x(?)
ObjectiveCBridgeStubToNSStringRef 156 156 +0.0% 1.00x
ArrayPlusEqualArrayOfInt 642 643 +0.2% 1.00x(?)
Hanoi 19369 19457 +0.5% 1.00x
ObjectiveCBridgeStubToArrayOfNSString 30111 30145 +0.1% 1.00x(?)
ObjectiveCBridgeStubDataAppend 3514 3522 +0.2% 1.00x(?)
StringBuilder 2718 2721 +0.1% 1.00x(?)
ArrayInClass 3959 3960 +0.0% 1.00x(?)
Sim2DArray 14779 14780 +0.0% 1.00x(?)
MonteCarloE 108301 108668 +0.3% 1.00x
RC4 9382 9386 +0.0% 1.00x(?)
Walsh 13300 13297 -0.0% 1.00x(?)
ArrayAppendArrayOfInt 640 641 +0.2% 1.00x
StrToInt 5746 5733 -0.2% 1.00x(?)
DeadArray 121484 120939 -0.5% 1.00x(?)
BitCount 96 96 +0.0% 1.00x
AngryPhonebook 3002 3005 +0.1% 1.00x(?)
SevenBoom 1499 1499 +0.0% 1.00x
ObjectiveCBridgeStubNSDateMutationRef 14760 14825 +0.4% 1.00x(?)
GlobalClass 0 0 +0.0% 1.00x
Memset 20964 20955 -0.0% 1.00x(?)
Dictionary2OfObjects 5988 5978 -0.2% 1.00x(?)
ArrayValueProp4 3011 3004 -0.2% 1.00x(?)
ArrayValueProp2 3155 3161 +0.2% 1.00x
ArrayValueProp3 3067 3057 -0.3% 1.00x(?)
ArraySubscript 5606 5654 +0.9% 0.99x
RecursiveOwnedParameter 10814 10878 +0.6% 0.99x
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 7920 8020 +1.3% 0.99x(?)
DictionarySwap 6046 6090 +0.7% 0.99x
ObjectiveCBridgeStubToNSDate 13669 13757 +0.6% 0.99x(?)
StringInterpolation 15654 15815 +1.0% 0.99x(?)
ObserverClosure 6902 6954 +0.8% 0.99x(?)
Join 1457 1471 +1.0% 0.99x
ObjectAllocation 550 553 +0.6% 0.99x(?)
ArrayLiteral 1230 1248 +1.5% 0.99x
HashTest 5262 5303 +0.8% 0.99x
ErrorHandling 3771 3828 +1.5% 0.99x(?)
ObserverUnappliedMethod 8670 8732 +0.7% 0.99x(?)
PopFrontArrayGeneric 9542 9594 +0.5% 0.99x(?)
PolymorphicCalls 1135 1147 +1.1% 0.99x(?)
Calculator 930 935 +0.5% 0.99x
SortStringsUnicode 9190 9278 +1.0% 0.99x(?)
Dictionary 1848 1862 +0.8% 0.99x(?)
StringHasSuffix 1726 1742 +0.9% 0.99x(?)
LinkedList 27532 27803 +1.0% 0.99x(?)
Chars 4993 5023 +0.6% 0.99x
ObserverForwarderStruct 5226 5277 +1.0% 0.99x
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 94571 95354 +0.8% 0.99x(?)
ArrayValueProp 2618 2634 +0.6% 0.99x(?)
ObserverPartiallyAppliedMethod 8299 8366 +0.8% 0.99x(?)
SortStrings 2687 2742 +2.0% 0.98x
ArrayAppendToFromGeneric 219758 223577 +1.7% 0.98x
ObjectiveCBridgeStubFromNSStringRef 162 165 +1.9% 0.98x
Dictionary3 1387 1415 +2.0% 0.98x
ObjectiveCBridgeStubToNSDateRef 3316 3367 +1.5% 0.98x(?)
ArrayAppendFromGeneric 219515 223437 +1.8% 0.98x
DictionaryLiteral 15664 15984 +2.0% 0.98x
DictionaryRemoveOfObjects 47297 48336 +2.2% 0.98x
ObjectiveCBridgeStubNSDateRefAccess 1230 1257 +2.2% 0.98x
ArrayAppendToGeneric 219672 223521 +1.8% 0.98x
StringHasPrefixUnicode 14696 15023 +2.2% 0.98x
ObjectiveCBridgeStubFromNSDate 3798 3872 +1.9% 0.98x(?)
ObjectiveCBridgeStubFromNSDateRef 4068 4192 +3.0% 0.97x
StrComplexWalk 7637 7859 +2.9% 0.97x
ArrayAppendOptionals 1290 1324 +2.6% 0.97x
StringWalk 20437 21350 +4.5% 0.96x
Dictionary3OfObjects 2067 2182 +5.6% 0.95x
ArrayAppendLazyMap 244418 256124 +4.8% 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

@aschwaighofer aschwaighofer merged commit 59950a6 into swiftlang:master Dec 20, 2016
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