{"action":"created","issue":{"url":"https://api.github.com/repos/apple/swift/issues/3287","repository_url":"https://api.github.com/repos/apple/swift","labels_url":"https://api.github.com/repos/apple/swift/issues/3287/labels{/name}","comments_url":"https://api.github.com/repos/apple/swift/issues/3287/comments","events_url":"https://api.github.com/repos/apple/swift/issues/3287/events","html_url":"https://github.com/apple/swift/pull/3287","id":163389898,"number":3287,"title":"[stdlib] Significant UTF8/16 decode speed-ups for iterator nil-guarantee ","user":{"login":"PatrickPijnappel","id":1519942,"avatar_url":"https://avatars.githubusercontent.com/u/1519942?v=3","gravatar_id":"","url":"https://api.github.com/users/PatrickPijnappel","html_url":"https://github.com/PatrickPijnappel","followers_url":"https://api.github.com/users/PatrickPijnappel/followers","following_url":"https://api.github.com/users/PatrickPijnappel/following{/other_user}","gists_url":"https://api.github.com/users/PatrickPijnappel/gists{/gist_id}","starred_url":"https://api.github.com/users/PatrickPijnappel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PatrickPijnappel/subscriptions","organizations_url":"https://api.github.com/users/PatrickPijnappel/orgs","repos_url":"https://api.github.com/users/PatrickPijnappel/repos","events_url":"https://api.github.com/users/PatrickPijnappel/events{/privacy}","received_events_url":"https://api.github.com/users/PatrickPijnappel/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":30,"created_at":"2016-07-01T12:55:12Z","updated_at":"2016-07-08T17:06:47Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/apple/swift/pulls/3287","html_url":"https://github.com/apple/swift/pull/3287","diff_url":"https://github.com/apple/swift/pull/3287.diff","patch_url":"https://github.com/apple/swift/pull/3287.patch"},"body":"<!-- Please complete this template before creating the pull request. -->\r\n#### What's in this pull request?\r\n<!-- Description about pull request. -->\r\nRefactors `UTF8.decode(_:)` and `UTF16.decode(_:)` mainly for speed-ups based on the iterator-nil guarantee introduced in [SE-0052](https://github.com/apple/swift-evolution/blob/master/proposals/0052-iterator-post-nil-guarantee.md). `UTF32.decode(_:)` was slightly refactored for consistency.\r\n- [Private benchmarks](https://gist.github.com/PatrickPijnappel/7cd42822330a1191bb57adff24c3085c) show speedups of ~20% for UTF-8 ASCII, ~10% for UTF-8 mixed Unicode, and ~40% for UTF-16, both for ASCII & mixed. Compiled using the 06/06 (a) snapshot with `-O -whole-module-optimization`. \r\n- I haven't been able to add a benchmark for UTF-16 as there seems to be a build failure after regenerating the harness files on master ([see here](http://article.gmane.org/gmane.comp.lang.swift.devel/2134/match=harness)).\r\n- Verified against original implementation for all 32-bit sequences.\r\n\r\n* * * *\r\n\r\n<!-- This selection should only be completed by Swift admin -->\r\nBefore merging this pull request to apple/swift repository:\r\n- [ ] Test pull request on Swift continuous integration.\r\n\r\n<details>\r\n  <summary>Triggering Swift CI</summary>\r\n\r\nThe swift-ci is triggered by writing a comment on this PR addressed to the GitHub user @swift-ci. Different tests will run depending on the specific comment that you use. The currently available comments are:\r\n\r\n**Smoke Testing**\r\n\r\n        Platform     | Comment\r\n        ------------ | -------------\r\n        All supported platforms     | @swift-ci Please smoke test\r\n        All supported platforms     | @swift-ci Please smoke test and merge\r\n        OS X platform               | @swift-ci Please smoke test OS X platform\r\n        Linux platform              | @swift-ci Please smoke test Linux platform\r\n\r\n**Validation Testing**\r\n\r\n        Platform     | Comment\r\n        ------------ | -------------\r\n        All supported platforms     | @swift-ci Please test\r\n        All supported platforms     | @swift-ci Please test and merge\r\n        OS X platform               | @swift-ci Please test OS X platform\r\n        OS X platform               | @swift-ci Please benchmark\r\n        Linux platform              | @swift-ci Please test Linux platform\r\n\r\n\r\n**Lint Testing**\r\n\r\n        Language     | Comment\r\n        ------------ | -------------\r\n        Python       | @swift-ci Please Python lint\r\n\r\nNote: Only members of the Apple organization can trigger swift-ci.\r\n</details>\r\n<!-- Thank you for your contribution to Swift! -->"},"comment":{"url":"https://api.github.com/repos/apple/swift/issues/comments/231416010","html_url":"https://github.com/apple/swift/pull/3287#issuecomment-231416010","issue_url":"https://api.github.com/repos/apple/swift/issues/3287","id":231416010,"user":{"login":"swift-ci","id":15467072,"avatar_url":"https://avatars.githubusercontent.com/u/15467072?v=3","gravatar_id":"","url":"https://api.github.com/users/swift-ci","html_url":"https://github.com/swift-ci","followers_url":"https://api.github.com/users/swift-ci/followers","following_url":"https://api.github.com/users/swift-ci/following{/other_user}","gists_url":"https://api.github.com/users/swift-ci/gists{/gist_id}","starred_url":"https://api.github.com/users/swift-ci/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/swift-ci/subscriptions","organizations_url":"https://api.github.com/users/swift-ci/orgs","repos_url":"https://api.github.com/users/swift-ci/repos","events_url":"https://api.github.com/users/swift-ci/events{/privacy}","received_events_url":"https://api.github.com/users/swift-ci/received_events","type":"User","site_admin":false},"created_at":"2016-07-08T17:06:44Z","updated_at":"2016-07-08T17:06:44Z","body":"Build comment file: \n--------------\n**Optimized (O)**\n\n<details open>\n  <summary>Regression (3)</summary>\n  \nTEST                                                    | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP \n---                                                     | ---     | ---     | ---       | --- \nObjectiveCBridgeFromNSArrayAnyObjectToString            | 162360  | 174117  | +7.2%     | **0.93x(?)** \nOpenClose                                               | 50      | 53      | +6.0%     | **0.94x** \nArrayOfGenericRef                                       | 3449    | 3665    | +6.3%     | **0.94x(?)** \n\n</details>\n\n<details >\n  <summary>Improvement (4)</summary>\n  \nTEST                                                    | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP \n---                                                     | ---     | ---     | ---       | --- \nObjectiveCBridgeStubNSDateRefAccess                     | 338     | 316     | -6.5%     | **1.07x(?)** \nHanoi                                                   | 3458    | 3214    | -7.1%     | **1.08x** \nObjectiveCBridgeFromNSString                            | 1750    | 1610    | -8.0%     | **1.09x(?)** \nStringWalk                                              | 6168    | 5583    | -9.5%     | **1.10x** \n\n</details>\n\n<details >\n  <summary>No Changes (127)</summary>\n  \nTEST                                                    | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP \n---                                                     | ---     | ---     | ---       | --- \nObjectiveCBridgeStubFromNSStringRef                     | 137     | 130     | -5.1%     | 1.05x(?) \nMapReduce                                               | 397     | 377     | -5.0%     | 1.05x \nDictionaryLiteral                                       | 4550    | 4323    | -5.0%     | 1.05x(?) \nObjectiveCBridgeFromNSSetAnyObjectToStringForced        | 122593  | 116667  | -4.8%     | 1.05x(?) \nObjectiveCBridgeFromNSStringForced                      | 2326    | 2238    | -3.8%     | 1.04x(?) \nSortStrings                                             | 1817    | 1760    | -3.1%     | 1.03x \nProtocolDispatch                                        | 3044    | 2959    | -2.8%     | 1.03x \nProtocolDispatch2                                       | 156     | 152     | -2.6%     | 1.03x(?) \nObjectiveCBridgeToNSSet                                 | 15995   | 15537   | -2.9%     | 1.03x(?) \nCalculator                                              | 35      | 34      | -2.9%     | 1.03x(?) \nObjectiveCBridgeFromNSSetAnyObjectToString              | 163458  | 159174  | -2.6%     | 1.03x(?) \nObjectiveCBridgeStubNSDateMutationRef                   | 12304   | 11963   | -2.8%     | 1.03x(?) \nObjectiveCBridgeFromNSDictionaryAnyObjectToString       | 219295  | 215249  | -1.9%     | 1.02x(?) \nObjectiveCBridgeFromNSDictionaryAnyObject               | 254285  | 248977  | -2.1%     | 1.02x \nObjectiveCBridgeFromNSDictionaryAnyObjectForced         | 4743    | 4635    | -2.3%     | 1.02x(?) \nObjectiveCBridgeStubFromNSDateRef                       | 3667    | 3593    | -2.0%     | 1.02x(?) \nStrComplexWalk                                          | 3091    | 3024    | -2.2%     | 1.02x(?) \nStaticArray                                             | 2738    | 2694    | -1.6%     | 1.02x(?) \nObjectiveCBridgeStubDateMutation                        | 268     | 263     | -1.9%     | 1.02x(?) \nPopFrontArrayGeneric                                    | 1149    | 1131    | -1.6%     | 1.02x(?) \nNSDictionaryCastToSwift                                 | 13191   | 12957   | -1.8%     | 1.02x(?) \nStringHasSuffix                                         | 755     | 740     | -2.0%     | 1.02x \nPhonebook                                               | 7318    | 7153    | -2.2%     | 1.02x \nSim2DArray                                              | 439     | 430     | -2.0%     | 1.02x(?) \nObjectiveCBridgeFromNSSetAnyObjectForced                | 4125    | 4030    | -2.3%     | 1.02x(?) \nStrToInt                                                | 5125    | 5030    | -1.9%     | 1.02x(?) \nDictionary2OfObjects                                    | 3340    | 3279    | -1.8%     | 1.02x \nArraySubscript                                          | 1360    | 1348    | -0.9%     | 1.01x(?) \nPopFrontArray                                           | 1160    | 1150    | -0.9%     | 1.01x(?) \nDictionaryBridge                                        | 3844    | 3824    | -0.5%     | 1.01x(?) \nObjectiveCBridgeFromNSArrayAnyObjectForced              | 3779    | 3732    | -1.2%     | 1.01x(?) \nPrims                                                   | 753     | 747     | -0.8%     | 1.01x(?) \n133                                                     | 3678775 | 3659452 | -0.5%     | 1.01x \nSuperChars                                              | 354315  | 351129  | -0.9%     | 1.01x(?) \nStringInterpolation                                     | 11627   | 11532   | -0.8%     | 1.01x(?) \nObjectAllocation                                        | 147     | 146     | -0.7%     | 1.01x(?) \nAngryPhonebook                                          | 2912    | 2891    | -0.7%     | 1.01x(?) \nSortStringsUnicode                                      | 9264    | 9184    | -0.9%     | 1.01x(?) \nNopDeinit                                               | 35965   | 35472   | -1.4%     | 1.01x(?) \nMonteCarloE                                             | 10041   | 9965    | -0.8%     | 1.01x(?) \nArrayAppend                                             | 743     | 738     | -0.7%     | 1.01x(?) \nStringHasPrefixUnicode                                  | 15404   | 15183   | -1.4%     | 1.01x(?) \nNSStringConversion                                      | 597     | 590     | -1.2%     | 1.01x(?) \nTwoSum                                                  | 1885    | 1861    | -1.3%     | 1.01x(?) \nDictionarySwapOfObjects                                 | 6634    | 6612    | -0.3%     | 1.00x(?) \nStackPromo                                              | 20049   | 19979   | -0.3%     | 1.00x(?) \nRecursiveOwnedParameter                                 | 1830    | 1838    | +0.4%     | 1.00x(?) \nIntegrate                                               | 238     | 239     | +0.4%     | 1.00x(?) \nClassArrayGetter                                        | 12      | 12      | +0.0%     | 1.00x \nMonteCarloPi                                            | 42528   | 42577   | +0.1%     | 1.00x(?) \nStringWithCString                                       | 587216  | 589180  | +0.3%     | 1.00x(?) \nByteSwap                                                | 1       | 1       | +0.0%     | 1.00x \nXorLoop                                                 | 360     | 360     | +0.0%     | 1.00x \nTypeFlood                                               | 0       | 0       | +0.0%     | 1.00x \nDictionary2                                             | 1917    | 1916    | -0.1%     | 1.00x(?) \nArrayOfRef                                              | 3522    | 3538    | +0.5%     | 1.00x(?) \nNSError                                                 | 327     | 326     | -0.3%     | 1.00x(?) \nStringEqualPointerComparison                            | 7346    | 7357    | +0.1%     | 1.00x(?) \nObjectiveCBridgeStubToNSStringRef                       | 117     | 117     | +0.0%     | 1.00x \nArrayOfGenericPOD                                       | 208     | 208     | +0.0%     | 1.00x \nUTF8Decode                                              | 312     | 311     | -0.3%     | 1.00x(?) \nSetIsSubsetOf                                           | 489     | 489     | +0.0%     | 1.00x \nObjectiveCBridgeStubToArrayOfNSString                   | 31301   | 31194   | -0.3%     | 1.00x(?) \nSetExclusiveOr                                          | 3799    | 3799    | +0.0%     | 1.00x \nRGBHistogramOfObjects                                   | 21799   | 21821   | +0.1%     | 1.00x(?) \nObjectiveCBridgeStubDateAccess                          | 178     | 178     | +0.0%     | 1.00x \nSetExclusiveOr_OfObjects                                | 8419    | 8458    | +0.5%     | 1.00x(?) \nSetUnion_OfObjects                                      | 7132    | 7151    | +0.3%     | 1.00x(?) \nGlobalClass                                             | 0       | 0       | +0.0%     | 1.00x \nSetIsSubsetOf_OfObjects                                 | 613     | 613     | +0.0%     | 1.00x \nLinkedList                                              | 6823    | 6805    | -0.3%     | 1.00x(?) \nChars                                                   | 659     | 659     | +0.0%     | 1.00x \nDeadArray                                               | 178     | 178     | +0.0%     | 1.00x \nArrayValueProp2                                         | 5       | 5       | +0.0%     | 1.00x \nBitCount                                                | 1       | 1       | +0.0%     | 1.00x \nSevenBoom                                               | 1317    | 1318    | +0.1%     | 1.00x(?) \nArrayValueProp                                          | 5       | 5       | +0.0%     | 1.00x \nMemset                                                  | 222     | 222     | +0.0%     | 1.00x \nArrayValueProp4                                         | 5       | 5       | +0.0%     | 1.00x \nObjectiveCBridgeStubNSDataAppend                        | 2351    | 2362    | +0.5%     | 1.00x(?) \nArrayValueProp3                                         | 5       | 5       | +0.0%     | 1.00x \nHistogram                                               | 653     | 660     | +1.1%     | 0.99x(?) \nDictionary3OfObjects                                    | 870     | 876     | +0.7%     | 0.99x(?) \nObjectiveCBridgeStubToNSString                          | 1246    | 1258    | +1.0%     | 0.99x(?) \nStringHasSuffixUnicode                                  | 65147   | 65901   | +1.2%     | 0.99x(?) \nSetIntersect_OfObjects                                  | 2355    | 2380    | +1.1%     | 0.99x \nJoin                                                    | 447     | 452     | +1.1%     | 0.99x(?) \nObjectiveCBridgeToNSArray                               | 31436   | 31824   | +1.2%     | 0.99x(?) \nObjectiveCBridgeStubToNSDateRef                         | 3225    | 3259    | +1.1%     | 0.99x(?) \nDictionaryRemoveOfObjects                               | 19756   | 19998   | +1.2%     | 0.99x \nObjectiveCBridgeFromNSArrayAnyObject                    | 65373   | 65825   | +0.7%     | 0.99x(?) \nSetIntersect                                            | 1157    | 1170    | +1.1%     | 0.99x \nStringBuilder                                           | 1526    | 1534    | +0.5%     | 0.99x(?) \nArrayInClass                                            | 83      | 84      | +1.2%     | 0.99x(?) \nObjectiveCBridgeToNSDictionary                          | 15877   | 16024   | +0.9%     | 0.99x(?) \nHashTest                                                | 1990    | 2020    | +1.5%     | 0.99x(?) \nArrayAppendReserved                                     | 521     | 524     | +0.6%     | 0.99x(?) \nArrayOfPOD                                              | 171     | 172     | +0.6%     | 0.99x \nArrayLiteral                                            | 1002    | 1017    | +1.5%     | 0.99x(?) \nRC4                                                     | 252     | 255     | +1.2%     | 0.99x \nObjectiveCBridgeToNSString                              | 1055    | 1076    | +2.0%     | 0.98x(?) \nDictionarySwap                                          | 766     | 778     | +1.6%     | 0.98x(?) \nErrorHandling                                           | 2970    | 3046    | +2.6%     | 0.98x(?) \nObjectiveCBridgeStubFromNSString                        | 660     | 675     | +2.3%     | 0.98x(?) \nDictionary3                                             | 535     | 547     | +2.2%     | 0.98x \nDictionaryOfObjects                                     | 2255    | 2299    | +1.9%     | 0.98x(?) \nPolymorphicCalls                                        | 60      | 61      | +1.7%     | 0.98x(?) \nObjectiveCBridgeStubURLAppendPath                       | 197788  | 201047  | +1.6%     | 0.98x(?) \nObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced | 131827  | 135154  | +2.5%     | 0.98x(?) \nObjectiveCBridgeStubDataAppend                          | 2840    | 2895    | +1.9%     | 0.98x(?) \nDictionaryRemove                                        | 4970    | 5072    | +2.0%     | 0.98x \nSetUnion                                                | 3262    | 3321    | +1.8%     | 0.98x \nSortLettersInPlace                                      | 952     | 980     | +2.9%     | 0.97x \nObjectiveCBridgeStubURLAppendPathRef                    | 205531  | 211120  | +2.7%     | 0.97x(?) \nCaptureProp                                             | 4092    | 4221    | +3.1%     | 0.97x(?) \nDictionary                                              | 726     | 745     | +2.6%     | 0.97x(?) \nRGBHistogram                                            | 3073    | 3167    | +3.1%     | 0.97x \nObjectiveCBridgeStubFromArrayOfNSString                 | 107600  | 110539  | +2.7%     | 0.97x(?) \nArray2D                                                 | 1962    | 2046    | +4.3%     | 0.96x(?) \nRangeAssignment                                         | 312     | 326     | +4.5%     | 0.96x(?) \nObjectiveCBridgeStubToNSDate                            | 12874   | 13440   | +4.4%     | 0.96x(?) \nObjectiveCBridgeFromNSSetAnyObject                      | 110188  | 115045  | +4.4%     | 0.96x \nStringHasPrefix                                         | 626     | 651     | +4.0%     | 0.96x \nPopFrontUnsafePointer                                   | 9033    | 9414    | +4.2%     | 0.96x(?) \nObjectiveCBridgeFromNSArrayAnyObjectToStringForced      | 168725  | 176399  | +4.5%     | 0.96x \nWalsh                                                   | 314     | 332     | +5.7%     | 0.95x(?) \nObjectiveCBridgeStubFromNSDate                          | 3400    | 3575    | +5.2%     | 0.95x \n\n</details>\n**Unoptimized (Onone)**\n\n<details open>\n  <summary>Regression (2)</summary>\n  \nTEST                                                    | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP \n---                                                     | ---     | ---     | ---       | --- \nObjectiveCBridgeStubDateMutation                        | 444     | 538     | +21.2%    | **0.83x** \nTypeFlood                                               | 142     | 154     | +8.4%     | **0.92x(?)** \n\n</details>\n\n<details >\n  <summary>Improvement (6)</summary>\n  \nTEST                                                    | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP \n---                                                     | ---     | ---     | ---       | --- \nObjectiveCBridgeFromNSDictionaryAnyObjectToString       | 226688  | 214378  | -5.4%     | **1.06x(?)** \nObjectiveCBridgeStubDateAccess                          | 1251    | 1141    | -8.8%     | **1.10x** \nArrayAppendReserved                                     | 3575    | 3180    | -11.1%    | **1.12x(?)** \nPolymorphicCalls                                        | 1315    | 1156    | -12.1%    | **1.14x** \nStringHasSuffix                                         | 1741    | 1528    | -12.2%    | **1.14x** \nStringWalk                                              | 50230   | 38884   | -22.6%    | **1.29x** \n\n</details>\n\n<details >\n  <summary>No Changes (126)</summary>\n  \nTEST                                                    | OLD_MIN | NEW_MIN | DELTA (%) | SPEEDUP \n---                                                     | ---     | ---     | ---       | --- \nObjectiveCBridgeFromNSArrayAnyObjectToString            | 172069  | 164746  | -4.3%     | 1.04x(?) \nStrComplexWalk                                          | 8447    | 8113    | -4.0%     | 1.04x(?) \nObjectiveCBridgeStubToNSDate                            | 14109   | 13510   | -4.2%     | 1.04x(?) \nNSError                                                 | 676     | 650     | -3.9%     | 1.04x(?) \nObjectiveCBridgeFromNSString                            | 5014    | 4822    | -3.8%     | 1.04x(?) \nSuperChars                                              | 526140  | 508879  | -3.3%     | 1.03x \nIntegrate                                               | 367     | 358     | -2.5%     | 1.03x(?) \nOpenClose                                               | 456     | 444     | -2.6%     | 1.03x(?) \nHanoi                                                   | 19859   | 19237   | -3.1%     | 1.03x(?) \nSortStringsUnicode                                      | 10575   | 10263   | -3.0%     | 1.03x(?) \nObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced | 143056  | 138893  | -2.9%     | 1.03x(?) \nObjectiveCBridgeToNSDictionary                          | 16669   | 16260   | -2.5%     | 1.03x(?) \nStrToInt                                                | 5648    | 5490    | -2.8%     | 1.03x \nObjectAllocation                                        | 553     | 541     | -2.2%     | 1.02x \nHashTest                                                | 5488    | 5391    | -1.8%     | 1.02x(?) \nDictionary2                                             | 5212    | 5124    | -1.7%     | 1.02x \nArrayOfRef                                              | 9107    | 8941    | -1.8%     | 1.02x \nObjectiveCBridgeStubURLAppendPathRef                    | 209766  | 205709  | -1.9%     | 1.02x(?) \nPopFrontArrayGeneric                                    | 11358   | 11178   | -1.6%     | 1.02x(?) \nSetIsSubsetOf                                           | 3085    | 3015    | -2.3%     | 1.02x(?) \nObjectiveCBridgeStubDataAppend                          | 3277    | 3217    | -1.8%     | 1.02x \nObjectiveCBridgeFromNSSetAnyObjectToStringForced        | 126134  | 123941  | -1.7%     | 1.02x(?) \nChars                                                   | 5483    | 5355    | -2.3%     | 1.02x(?) \n133                                                     | 6695748 | 6558098 | -2.1%     | 1.02x \nObjectiveCBridgeToNSString                              | 1092    | 1086    | -0.6%     | 1.01x(?) \nObjectiveCBridgeStubToNSString                          | 1310    | 1298    | -0.9%     | 1.01x \nObjectiveCBridgeFromNSDictionaryAnyObjectForced         | 7464    | 7364    | -1.3%     | 1.01x(?) \nObjectiveCBridgeStubFromNSDateRef                       | 4048    | 4021    | -0.7%     | 1.01x(?) \nStringInterpolation                                     | 16099   | 15951   | -0.9%     | 1.01x \nObjectiveCBridgeFromNSSetAnyObject                      | 116355  | 115653  | -0.6%     | 1.01x(?) \nProtocolDispatch2                                       | 435     | 431     | -0.9%     | 1.01x(?) \nDictionary3                                             | 2110    | 2080    | -1.4%     | 1.01x(?) \nObjectiveCBridgeToNSSet                                 | 15887   | 15694   | -1.2%     | 1.01x(?) \nRC4                                                     | 8635    | 8568    | -0.8%     | 1.01x(?) \nObjectiveCBridgeStubToArrayOfNSString                   | 31165   | 30752   | -1.3%     | 1.01x(?) \nSetIntersect                                            | 19717   | 19561   | -0.8%     | 1.01x(?) \nSetExclusiveOr                                          | 47344   | 47087   | -0.5%     | 1.01x \nArrayOfGenericRef                                       | 9669    | 9600    | -0.7%     | 1.01x(?) \nSim2DArray                                              | 14198   | 13990   | -1.5%     | 1.01x(?) \nSetIsSubsetOf_OfObjects                                 | 2910    | 2879    | -1.1%     | 1.01x(?) \nDictionaryRemove                                        | 31411   | 31231   | -0.6%     | 1.01x(?) \nRGBHistogramOfObjects                                   | 100838  | 99538   | -1.3%     | 1.01x(?) \nObjectiveCBridgeFromNSSetAnyObjectForced                | 7827    | 7742    | -1.1%     | 1.01x(?) \nSetUnion                                                | 32293   | 31927   | -1.1%     | 1.01x(?) \nArrayValueProp2                                         | 2798    | 2775    | -0.8%     | 1.01x(?) \nArrayValueProp                                          | 2295    | 2272    | -1.0%     | 1.01x(?) \nDictionary2OfObjects                                    | 7079    | 6978    | -1.4%     | 1.01x(?) \nTwoSum                                                  | 9715    | 9632    | -0.8%     | 1.01x(?) \nArraySubscript                                          | 5554    | 5565    | +0.2%     | 1.00x(?) \nDictionarySwapOfObjects                                 | 25702   | 25697   | -0.0%     | 1.00x(?) \nStackPromo                                              | 131654  | 131118  | -0.4%     | 1.00x(?) \nRecursiveOwnedParameter                                 | 7605    | 7602    | -0.0%     | 1.00x(?) \nClassArrayGetter                                        | 1258    | 1259    | +0.1%     | 1.00x(?) \nArray2D                                                 | 803314  | 805565  | +0.3%     | 1.00x(?) \nDictionaryBridge                                        | 3814    | 3814    | +0.0%     | 1.00x \nMonteCarloPi                                            | 50894   | 50941   | +0.1%     | 1.00x(?) \nStringWithCString                                       | 731023  | 730672  | -0.1%     | 1.00x(?) \nPrims                                                   | 14514   | 14551   | +0.2%     | 1.00x(?) \nSortLettersInPlace                                      | 2539    | 2529    | -0.4%     | 1.00x(?) \nDictionary3OfObjects                                    | 2687    | 2693    | +0.2%     | 1.00x(?) \nByteSwap                                                | 10      | 10      | +0.0%     | 1.00x \nXorLoop                                                 | 18613   | 18593   | -0.1%     | 1.00x(?) \nSetIntersect_OfObjects                                  | 19430   | 19362   | -0.3%     | 1.00x(?) \nJoin                                                    | 1475    | 1475    | +0.0%     | 1.00x \nObjectiveCBridgeToNSArray                               | 31559   | 31485   | -0.2%     | 1.00x(?) \nDictionaryOfObjects                                     | 5615    | 5614    | -0.0%     | 1.00x(?) \nObjectiveCBridgeStubToNSDateRef                         | 3196    | 3185    | -0.3%     | 1.00x(?) \nPopFrontUnsafePointer                                   | 254030  | 253321  | -0.3%     | 1.00x(?) \nMapReduce                                               | 44562   | 44553   | -0.0%     | 1.00x(?) \nUTF8Decode                                              | 43334   | 43129   | -0.5%     | 1.00x \nDictionary                                              | 2818    | 2822    | +0.1%     | 1.00x(?) \nNopDeinit                                               | 57325   | 57453   | +0.2%     | 1.00x(?) \nObjectiveCBridgeFromNSArrayAnyObject                    | 69605   | 69458   | -0.2%     | 1.00x(?) \nNSDictionaryCastToSwift                                 | 14041   | 13986   | -0.4%     | 1.00x(?) \nArrayInClass                                            | 3677    | 3693    | +0.4%     | 1.00x \nSetExclusiveOr_OfObjects                                | 65990   | 65663   | -0.5%     | 1.00x(?) \nMonteCarloE                                             | 106817  | 107337  | +0.5%     | 1.00x(?) \nSetUnion_OfObjects                                      | 49876   | 49776   | -0.2%     | 1.00x(?) \nLinkedList                                              | 26279   | 26212   | -0.2%     | 1.00x(?) \nDeadArray                                               | 131268  | 131413  | +0.1%     | 1.00x(?) \nGlobalClass                                             | 0       | 0       | +0.0%     | 1.00x \nMemset                                                  | 19675   | 19771   | +0.5%     | 1.00x(?) \nSevenBoom                                               | 1474    | 1475    | +0.1%     | 1.00x(?) \nHistogram                                               | 13844   | 13961   | +0.8%     | 0.99x(?) \nSortStrings                                             | 2605    | 2622    | +0.7%     | 0.99x(?) \nObjectiveCBridgeFromNSArrayAnyObjectForced              | 7236    | 7295    | +0.8%     | 0.99x(?) \nDictionarySwap                                          | 11102   | 11211   | +1.0%     | 0.99x(?) \nRangeAssignment                                         | 23271   | 23600   | +1.4%     | 0.99x(?) \nObjectiveCBridgeStubFromNSStringRef                     | 159     | 160     | +0.6%     | 0.99x(?) \nStringHasPrefix                                         | 1524    | 1538    | +0.9%     | 0.99x(?) \nObjectiveCBridgeStubToNSStringRef                       | 155     | 156     | +0.7%     | 0.99x(?) \nDictionaryRemoveOfObjects                               | 62305   | 62671   | +0.6%     | 0.99x(?) \nObjectiveCBridgeStubNSDateRefAccess                     | 1272    | 1289    | +1.3%     | 0.99x(?) \nStringBuilder                                           | 2836    | 2859    | +0.8%     | 0.99x(?) \nStringHasSuffixUnicode                                  | 66297   | 67011   | +1.1%     | 0.99x(?) \nWalsh                                                   | 12251   | 12348   | +0.8%     | 0.99x(?) \nArrayAppend                                             | 3422    | 3467    | +1.3%     | 0.99x(?) \nStringHasPrefixUnicode                                  | 17124   | 17235   | +0.7%     | 0.99x(?) \nNSStringConversion                                      | 2724    | 2741    | +0.6%     | 0.99x(?) \nArrayLiteral                                            | 1092    | 1102    | +0.9%     | 0.99x(?) \nObjectiveCBridgeStubNSDateMutationRef                   | 13808   | 14005   | +1.4%     | 0.99x(?) \nObjectiveCBridgeStubNSDataAppend                        | 5177    | 5210    | +0.6%     | 0.99x(?) \nPopFrontArray                                           | 24123   | 24622   | +2.1%     | 0.98x(?) \nObjectiveCBridgeFromNSStringForced                      | 2936    | 2986    | +1.7%     | 0.98x(?) \nErrorHandling                                           | 3825    | 3886    | +1.6%     | 0.98x(?) \nObjectiveCBridgeStubFromNSString                        | 667     | 682     | +2.2%     | 0.98x(?) \nStaticArray                                             | 27396   | 27835   | +1.6%     | 0.98x(?) \nProtocolDispatch                                        | 5908    | 6021    | +1.9%     | 0.98x(?) \nAngryPhonebook                                          | 3632    | 3709    | +2.1%     | 0.98x(?) \nCaptureProp                                             | 116120  | 118145  | +1.7%     | 0.98x(?) \nCalculator                                              | 961     | 982     | +2.2%     | 0.98x \nDictionaryLiteral                                       | 24254   | 24667   | +1.7%     | 0.98x(?) \nPhonebook                                               | 62324   | 63595   | +2.0%     | 0.98x(?) \nRGBHistogram                                            | 51337   | 52576   | +2.4%     | 0.98x(?) \nArrayOfPOD                                              | 2333    | 2389    | +2.4%     | 0.98x \nBitCount                                                | 91      | 93      | +2.2%     | 0.98x(?) \nArrayValueProp3                                         | 2703    | 2745    | +1.6%     | 0.98x(?) \nObjectiveCBridgeStubFromArrayOfNSString                 | 112523  | 114478  | +1.7%     | 0.98x(?) \nArrayValueProp4                                         | 2611    | 2661    | +1.9%     | 0.98x(?) \nObjectiveCBridgeStubFromNSDate                          | 3736    | 3829    | +2.5%     | 0.98x(?) \nObjectiveCBridgeFromNSDictionaryAnyObject               | 247005  | 255518  | +3.5%     | 0.97x(?) \nStringEqualPointerComparison                            | 9706    | 10011   | +3.1%     | 0.97x(?) \nArrayOfGenericPOD                                       | 3464    | 3573    | +3.1%     | 0.97x(?) \nObjectiveCBridgeFromNSSetAnyObjectToString              | 166931  | 171213  | +2.6%     | 0.97x \nObjectiveCBridgeStubURLAppendPath                       | 194994  | 202175  | +3.7%     | 0.96x(?) \nObjectiveCBridgeFromNSArrayAnyObjectToStringForced      | 166968  | 173809  | +4.1%     | 0.96x(?) \n\n</details>\n**Hardware Overview**\n      Model Name: Mac mini\n      Model Identifier: Macmini7,1\n      Processor Name: Intel Core i7\n      Processor Speed: 3 GHz\n      Number of Processors: 1\n      Total Number of Cores: 2\n      L2 Cache (per Core): 256 KB\n      L3 Cache: 4 MB\n      Memory: 16 GB\n\n--------------\n"}}
{"actor":{"display_login":"swift-ci"}}