Skip to content
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

[stdlib] Add Sequence.Element, change ExpressibleByArrayLiteral.Element to ArrayLiteralElement #8990

Merged
merged 11 commits into from
May 14, 2017

Conversation

airspeedswift
Copy link
Member

@airspeedswift airspeedswift commented Apr 25, 2017

This change will allow generic algorithms to refer to Sequence.Element instead of Sequence.Iterator.Element.

The PR is big but the vast bulk of the changes are removal of Iterator. from numerous lines.

Here is some code that will break if we constrain Sequence.Element == Iterator.Element:

struct S<T>: RandomAccessCollection {
  var _a: [T]
  var startIndex: Int { return _a.startIndex }
  var endIndex: Int { return _a.endIndex }
  // This infers Element == T
  subscript(i: Int) -> T { return _a[i] }
}

extension S: ExpressibleByArrayLiteral {
  // ExpressibleByArrayLiteral has a typealias of Element
  // for the elements of the array literal
  init(arrayLiteral: Any...) {
    _a = arrayLiteral.map { $0 as! T }
  }
}

This PR is changes ExpressibleByArrayLiteral.Element to ArrayLiteralElement. It appears no projects in the combat test suite rely on this (would only be observable if you conformed to ExpressibleByArrayLiteral.Element but not Sequence).

@airspeedswift airspeedswift force-pushed the literal-element branch 7 times, most recently from 6f4ab28 to b239a2e Compare May 1, 2017 19:27
@airspeedswift airspeedswift force-pushed the literal-element branch 3 times, most recently from 3b5d6b4 to d9edefc Compare May 5, 2017 17:24
@DougGregor
Copy link
Member

DougGregor commented May 5, 2017

The CSDiag crashers are because the Swift compiler has the name Element hardcoded for this associated type:

diff --git a/lib/Sema/CSDiag.cpp b/lib/Sema/CSDiag.cpp
index b6aeb665a3..25326fbfbd 100644
--- a/lib/Sema/CSDiag.cpp
+++ b/lib/Sema/CSDiag.cpp
@@ -6767,7 +6767,7 @@ bool FailureDiagnosis::visitArrayExpr(ArrayExpr *E) {
     contextualElementType = ProtocolConformanceRef::getTypeWitnessByName(
         contextualType,
         *Conformance,
-        CS->getASTContext().Id_Element,
+        CS->getASTContext().getIdentifier("ArrayLiteralElement"),
         &CS->TC)
       ->getDesugaredType();
     elementTypePurpose = CTP_ArrayElement;

@DougGregor
Copy link
Member

There are other issues in the solver, at least one of which is a transform that should probably be some form of substitutions.

@airspeedswift
Copy link
Member Author

@swift-ci please test

@airspeedswift
Copy link
Member Author

@swift-ci please test source compatibility

@swift-ci
Copy link
Collaborator

swift-ci commented May 6, 2017

Build failed
Jenkins build - Swift Test Linux Platform
Git Commit - 95f3822c4a610eea05ee0500c690130cfdb0144d
Test requested by - @airspeedswift

@airspeedswift
Copy link
Member Author

CSDiag fix resolved most of the issue but regressed some crashers:

********************
Testing Time: 3638.89s
********************
Failing Tests (13):
    Swift(macosx-x86_64) :: compiler_crashers_fixed/23086-swift-typechecker-validatedecl.swift
    Swift(macosx-x86_64) :: compiler_crashers_fixed/24915-swift-typebase-getcanonicaltype.swift
    Swift(macosx-x86_64) :: compiler_crashers_fixed/25011-swift-constraints-constraintsystem-opengeneric.swift
    Swift(macosx-x86_64) :: compiler_crashers_fixed/26148-swift-typebase-getmembersubstitutions.swift
    Swift(macosx-x86_64) :: compiler_crashers_fixed/27034-swift-typechecker-validatedecl.swift
    Swift(macosx-x86_64) :: compiler_crashers_fixed/27352-swift-astprinter-printtextimpl.swift
    Swift(macosx-x86_64) :: compiler_crashers_fixed/27387-swift-structtype-get.swift
    Swift(macosx-x86_64) :: compiler_crashers_2_fixed/0020-rdar21598514.swift
    Swift(macosx-x86_64) :: compiler_crashers_2_fixed/0019-rdar21511651.swift
    Swift(macosx-x86_64) :: stdlib/NewArray.swift.gyb
    Swift(macosx-x86_64) :: compiler_crashers_fixed/28670-reftype-hastypeparameter-cannot-have-a-dependent-type-here.swift
    Swift(macosx-x86_64) :: compiler_crashers_fixed/28666-conformingreplacementtype-is-substitutabletype-conformingreplacementtype-is-depe.swift
    Swift(macosx-x86_64) :: compiler_crashers_fixed/28577-isa-x-val-cast-ty-argument-of-incompatible-type.swift

  Expected Passes    : 9696
  Expected Failures  : 32
  Unsupported Tests  : 108
  Unexpected Failures: 13
*** Failed while running tests for swift (check-swift-validation-macosx-x86_64)

@airspeedswift
Copy link
Member Author

The stdlib/NewArray.swift.gyb seems like typechecker-related source breakage consequence of the ArrayLiteralElement change, but it's quite a contrived case (retroactive conformance of an array-like protocol to Swift.Array).

@airspeedswift airspeedswift force-pushed the literal-element branch 2 times, most recently from 7262277 to 0ece9a5 Compare May 8, 2017 19:53
@airspeedswift airspeedswift changed the title [experiment, do not merge] Try changing ExpressibleByArrayLiteral.Element [stdlib] Add Sequence.Element, change ExpressibleByArrayLiteral.Element to ArrayLiteralElement May 8, 2017
@airspeedswift
Copy link
Member Author

rdar://problem/32056342 Un-XFAIL compiler crasher regressions

@swift-ci
Copy link
Collaborator

swift-ci commented May 8, 2017

Build comment file:

Optimized (O)

Regression (7)
TEST OLD NEW DELTA SPEEDUP
StringHasSuffix 16 33 +106.2% 0.48x
StrToInt 4129 5053 +22.4% 0.82x
StringMatch 8917 10447 +17.2% 0.85x
MapReduceAnyCollection 302 332 +9.9% 0.91x
Calculator 33 35 +6.1% 0.94x
NopDeinit 27434 28935 +5.5% 0.95x
SortSortedStrings 833 877 +5.3% 0.95x
Improvement (7)
TEST OLD NEW DELTA SPEEDUP
StringHasPrefix 33 16 -51.5% 2.06x
ObjectiveCBridgeStubNSDateRefAccess 376 317 -15.7% 1.19x
OpenClose 54 48 -11.1% 1.12x
SuffixCountableRangeLazy 11 10 -9.1% 1.10x
MapReduce 331 302 -8.8% 1.10x
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 97234 91522 -5.9% 1.06x
ObjectiveCBridgeStubFromNSDateRef 3730 3520 -5.6% 1.06x
No Changes (255)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 2912 2921 +0.3% 1.00x
AnyHashableWithAClass 67230 66496 -1.1% 1.01x (?)
Array2D 2029 2021 -0.4% 1.00x
ArrayAppend 770 771 +0.1% 1.00x (?)
ArrayAppendArrayOfInt 597 597 +0.0% 1.00x
ArrayAppendAscii 22028 22570 +2.5% 0.98x
ArrayAppendFromGeneric 596 596 +0.0% 1.00x
ArrayAppendGenericStructs 1222 1220 -0.2% 1.00x (?)
ArrayAppendLatin1 43334 43232 -0.2% 1.00x (?)
ArrayAppendLazyMap 936 936 +0.0% 1.00x
ArrayAppendOptionals 1228 1259 +2.5% 0.98x (?)
ArrayAppendRepeatCol 838 838 +0.0% 1.00x
ArrayAppendReserved 533 533 +0.0% 1.00x
ArrayAppendSequence 943 946 +0.3% 1.00x
ArrayAppendStrings 13571 13607 +0.3% 1.00x (?)
ArrayAppendToFromGeneric 597 596 -0.2% 1.00x
ArrayAppendToGeneric 596 596 +0.0% 1.00x
ArrayAppendUTF16 41189 41005 -0.4% 1.00x
ArrayInClass 61 61 +0.0% 1.00x
ArrayLiteral 1221 1219 -0.2% 1.00x (?)
ArrayOfGenericPOD 219 219 +0.0% 1.00x
ArrayOfGenericRef 4067 4038 -0.7% 1.01x
ArrayOfPOD 166 166 +0.0% 1.00x
ArrayOfRef 3905 3901 -0.1% 1.00x (?)
ArrayPlusEqualArrayOfInt 597 597 +0.0% 1.00x
ArrayPlusEqualFiveElementCollection 4644 4689 +1.0% 0.99x (?)
ArrayPlusEqualSingleElementCollection 771 773 +0.3% 1.00x (?)
ArrayPlusEqualThreeElements 1588 1611 +1.4% 0.99x
ArraySubscript 1473 1475 +0.1% 1.00x (?)
ArrayValueProp 6 6 +0.0% 1.00x
ArrayValueProp2 6 6 +0.0% 1.00x
ArrayValueProp3 6 6 +0.0% 1.00x
ArrayValueProp4 6 6 +0.0% 1.00x
BitCount 9 9 +0.0% 1.00x
ByteSwap 0 0 +0.0% 1.00x
CStringLongAscii 5015 5058 +0.9% 0.99x (?)
CStringLongNonAscii 2157 2138 -0.9% 1.01x
CStringShortAscii 5296 5290 -0.1% 1.00x (?)
CaptureProp 4600 4553 -1.0% 1.01x
CharacterLiteralsLarge 8656 8599 -0.7% 1.01x (?)
CharacterLiteralsSmall 310 311 +0.3% 1.00x
Chars 1839 1777 -3.4% 1.03x
ClassArrayGetter 13 13 +0.0% 1.00x
DeadArray 184 182 -1.1% 1.01x
Dictionary 575 568 -1.2% 1.01x (?)
Dictionary2 1815 1809 -0.3% 1.00x (?)
Dictionary2OfObjects 3339 3343 +0.1% 1.00x (?)
Dictionary3 454 455 +0.2% 1.00x (?)
Dictionary3OfObjects 902 902 +0.0% 1.00x
DictionaryBridge 2775 2778 +0.1% 1.00x (?)
DictionaryLiteral 1479 1482 +0.2% 1.00x (?)
DictionaryOfObjects 2333 2334 +0.0% 1.00x (?)
DictionaryRemove 3304 3413 +3.3% 0.97x
DictionaryRemoveOfObjects 23348 23471 +0.5% 0.99x
DictionarySwap 375 375 +0.0% 1.00x
DictionarySwapOfObjects 6932 7000 +1.0% 0.99x (?)
DropFirstAnyCollection 56 56 +0.0% 1.00x
DropFirstAnyCollectionLazy 45325 44993 -0.7% 1.01x (?)
DropFirstAnySeqCRangeIter 27362 27341 -0.1% 1.00x (?)
DropFirstAnySeqCRangeIterLazy 27363 27639 +1.0% 0.99x
DropFirstAnySeqCntRange 50 50 +0.0% 1.00x
DropFirstAnySeqCntRangeLazy 50 50 +0.0% 1.00x
DropFirstAnySequence 6804 6808 +0.1% 1.00x
DropFirstAnySequenceLazy 6811 6790 -0.3% 1.00x
DropFirstArray 24 24 +0.0% 1.00x
DropFirstArrayLazy 24 24 +0.0% 1.00x
DropFirstCountableRange 32 32 +0.0% 1.00x
DropFirstCountableRangeLazy 32 32 +0.0% 1.00x
DropFirstSequence 3065 3065 +0.0% 1.00x
DropFirstSequenceLazy 3029 3029 +0.0% 1.00x
DropLastAnyCollection 22 22 +0.0% 1.00x
DropLastAnyCollectionLazy 15080 15043 -0.2% 1.00x
DropLastAnySeqCRangeIter 4604 4605 +0.0% 1.00x
DropLastAnySeqCRangeIterLazy 4606 4606 +0.0% 1.00x
DropLastAnySeqCntRange 16 16 +0.0% 1.00x
DropLastAnySeqCntRangeLazy 16 16 +0.0% 1.00x
DropLastAnySequence 6710 6755 +0.7% 0.99x (?)
DropLastAnySequenceLazy 6524 6542 +0.3% 1.00x
DropLastArray 8 8 +0.0% 1.00x
DropLastArrayLazy 8 8 +0.0% 1.00x
DropLastCountableRange 10 10 +0.0% 1.00x
DropLastCountableRangeLazy 10 10 +0.0% 1.00x
DropLastSequence 566 546 -3.5% 1.04x
DropLastSequenceLazy 567 547 -3.5% 1.04x
DropWhileAnyCollection 70 69 -1.4% 1.01x (?)
DropWhileAnyCollectionLazy 103 103 +0.0% 1.00x
DropWhileAnySeqCRangeIter 22444 21919 -2.3% 1.02x (?)
DropWhileAnySeqCRangeIterLazy 103 103 +0.0% 1.00x
DropWhileAnySeqCntRange 64 64 +0.0% 1.00x
DropWhileAnySeqCntRangeLazy 103 103 +0.0% 1.00x
DropWhileAnySequence 7602 7600 -0.0% 1.00x (?)
DropWhileAnySequenceLazy 2032 2031 -0.0% 1.00x
DropWhileArray 37 37 +0.0% 1.00x
DropWhileArrayLazy 78 78 +0.0% 1.00x
DropWhileCountableRange 36 35 -2.8% 1.03x
DropWhileCountableRangeLazy 68 68 +0.0% 1.00x
DropWhileSequence 3036 3026 -0.3% 1.00x
DropWhileSequenceLazy 65 65 +0.0% 1.00x
ErrorHandling 2901 2845 -1.9% 1.02x
GlobalClass 0 0 +0.0% 1.00x
Hanoi 3469 3448 -0.6% 1.01x
HashQuadratic 6062652 6359941 +4.9% 0.95x
HashTest 1695 1704 +0.5% 0.99x
Histogram 248 247 -0.4% 1.00x
Integrate 263 262 -0.4% 1.00x
IterateData 759 757 -0.3% 1.00x
Join 445 450 +1.1% 0.99x
LazilyFilteredArrays 64890 64895 +0.0% 1.00x (?)
LazilyFilteredRange 3887 3894 +0.2% 1.00x
LinkedList 7044 7043 -0.0% 1.00x (?)
MapReduceAnyCollectionShort 2008 1999 -0.4% 1.00x
MapReduceClass 3125 3098 -0.9% 1.01x
MapReduceClassShort 4624 4637 +0.3% 1.00x (?)
MapReduceLazyCollection 15 15 +0.0% 1.00x
MapReduceLazyCollectionShort 45 44 -2.2% 1.02x
MapReduceLazySequence 90 90 +0.0% 1.00x
MapReduceSequence 448 443 -1.1% 1.01x (?)
MapReduceShort 1912 1901 -0.6% 1.01x (?)
MapReduceShortString 21 21 +0.0% 1.00x
MapReduceString 109 109 +0.0% 1.00x
Memset 235 234 -0.4% 1.00x
MonteCarloE 10367 10340 -0.3% 1.00x
MonteCarloPi 44063 44000 -0.1% 1.00x
NSDictionaryCastToSwift 5259 5332 +1.4% 0.99x (?)
NSError 289 289 +0.0% 1.00x
NSStringConversion 781 790 +1.2% 0.99x (?)
ObjectAllocation 179 184 +2.8% 0.97x (?)
ObjectiveCBridgeFromNSArrayAnyObject 24391 24337 -0.2% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 4541 4583 +0.9% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 44126 44688 +1.3% 0.99x
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 38619 38997 +1.0% 0.99x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 118378 118339 -0.0% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 5164 5235 +1.4% 0.99x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 99091 99565 +0.5% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObject 64549 64826 +0.4% 1.00x
ObjectiveCBridgeFromNSSetAnyObjectForced 4196 4160 -0.9% 1.01x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 71721 73554 +2.6% 0.98x
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 65547 62980 -3.9% 1.04x
ObjectiveCBridgeFromNSString 1440 1458 +1.2% 0.99x
ObjectiveCBridgeFromNSStringForced 2339 2372 +1.4% 0.99x
ObjectiveCBridgeStubDataAppend 3860 3683 -4.6% 1.05x (?)
ObjectiveCBridgeStubDateAccess 182 181 -0.5% 1.01x
ObjectiveCBridgeStubDateMutation 272 272 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 28981 29660 +2.3% 0.98x (?)
ObjectiveCBridgeStubFromNSDate 3584 3673 +2.5% 0.98x
ObjectiveCBridgeStubFromNSString 965 951 -1.5% 1.01x
ObjectiveCBridgeStubFromNSStringRef 177 180 +1.7% 0.98x
ObjectiveCBridgeStubNSDataAppend 2351 2269 -3.5% 1.04x (?)
ObjectiveCBridgeStubNSDateMutationRef 12985 12553 -3.3% 1.03x
ObjectiveCBridgeStubToArrayOfNSString 29212 29335 +0.4% 1.00x (?)
ObjectiveCBridgeStubToNSDate 15007 14740 -1.8% 1.02x (?)
ObjectiveCBridgeStubToNSDateRef 3386 3422 +1.1% 0.99x (?)
ObjectiveCBridgeStubToNSString 1517 1518 +0.1% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 111 111 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 236701 235413 -0.5% 1.01x (?)
ObjectiveCBridgeStubURLAppendPathRef 235790 232831 -1.3% 1.01x (?)
ObjectiveCBridgeToNSArray 29780 29528 -0.8% 1.01x (?)
ObjectiveCBridgeToNSDictionary 52479 51448 -2.0% 1.02x (?)
ObjectiveCBridgeToNSSet 40844 40368 -1.2% 1.01x
ObjectiveCBridgeToNSString 1270 1269 -0.1% 1.00x (?)
ObserverClosure 2311 2275 -1.6% 1.02x
ObserverForwarderStruct 1111 1108 -0.3% 1.00x (?)
ObserverPartiallyAppliedMethod 3826 3794 -0.8% 1.01x
ObserverUnappliedMethod 2720 2712 -0.3% 1.00x (?)
Phonebook 9287 9647 +3.9% 0.96x
PolymorphicCalls 22 21 -4.5% 1.05x
PopFrontArray 1077 1071 -0.6% 1.01x (?)
PopFrontArrayGeneric 1077 1068 -0.8% 1.01x
PopFrontUnsafePointer 8866 8847 -0.2% 1.00x (?)
PrefixAnyCollection 56 57 +1.8% 0.98x
PrefixAnyCollectionLazy 45248 45465 +0.5% 1.00x (?)
PrefixAnySeqCRangeIter 21618 21743 +0.6% 0.99x
PrefixAnySeqCRangeIterLazy 21613 21670 +0.3% 1.00x
PrefixAnySeqCntRange 50 51 +2.0% 0.98x
PrefixAnySeqCntRangeLazy 50 50 +0.0% 1.00x
PrefixAnySequence 6110 6105 -0.1% 1.00x
PrefixAnySequenceLazy 6138 6084 -0.9% 1.01x
PrefixArray 25 25 +0.0% 1.00x
PrefixArrayLazy 25 25 +0.0% 1.00x
PrefixCountableRange 32 32 +0.0% 1.00x
PrefixCountableRangeLazy 32 32 +0.0% 1.00x
PrefixSequence 2524 2553 +1.1% 0.99x
PrefixSequenceLazy 2617 2617 +0.0% 1.00x
PrefixWhileAnyCollection 96 96 +0.0% 1.00x
PrefixWhileAnyCollectionLazy 75 75 +0.0% 1.00x
PrefixWhileAnySeqCRangeIter 12488 12502 +0.1% 1.00x
PrefixWhileAnySeqCRangeIterLazy 75 75 +0.0% 1.00x
PrefixWhileAnySeqCntRange 90 90 +0.0% 1.00x
PrefixWhileAnySeqCntRangeLazy 75 75 +0.0% 1.00x
PrefixWhileAnySequence 14072 14103 +0.2% 1.00x (?)
PrefixWhileAnySequenceLazy 1492 1492 +0.0% 1.00x
PrefixWhileArray 62 62 +0.0% 1.00x
PrefixWhileArrayLazy 49 49 +0.0% 1.00x
PrefixWhileCountableRange 36 36 +0.0% 1.00x
PrefixWhileCountableRangeLazy 32 32 +0.0% 1.00x
PrefixWhileSequence 313 313 +0.0% 1.00x
PrefixWhileSequenceLazy 28 28 +0.0% 1.00x
Prims 759 776 +2.2% 0.98x
ProtocolDispatch 2728 2729 +0.0% 1.00x
ProtocolDispatch2 161 167 +3.7% 0.96x
RC4 159 159 +0.0% 1.00x
RGBHistogram 2331 2310 -0.9% 1.01x (?)
RGBHistogramOfObjects 24430 24586 +0.6% 0.99x (?)
RangeAssignment 299 305 +2.0% 0.98x
RecursiveOwnedParameter 2328 2324 -0.2% 1.00x
ReversedArray 49 49 +0.0% 1.00x
ReversedBidirectional 29199 29190 -0.0% 1.00x (?)
ReversedDictionary 108 109 +0.9% 0.99x (?)
SetExclusiveOr 2993 3050 +1.9% 0.98x (?)
SetExclusiveOr_OfObjects 9592 9553 -0.4% 1.00x (?)
SetIntersect 283 274 -3.2% 1.03x
SetIntersect_OfObjects 1729 1721 -0.5% 1.00x (?)
SetIsSubsetOf 286 286 +0.0% 1.00x
SetIsSubsetOf_OfObjects 359 358 -0.3% 1.00x
SetUnion 2720 2678 -1.5% 1.02x (?)
SetUnion_OfObjects 8085 8074 -0.1% 1.00x (?)
SevenBoom 1461 1461 +0.0% 1.00x
Sim2DArray 276 276 +0.0% 1.00x
SortLargeExistentials 8343 8370 +0.3% 1.00x
SortLettersInPlace 1143 1144 +0.1% 1.00x
SortStrings 1618 1685 +4.1% 0.96x
SortStringsUnicode 7697 7766 +0.9% 0.99x
StackPromo 22241 22133 -0.5% 1.00x
StaticArray 21 21 +0.0% 1.00x
StrComplexWalk 720 719 -0.1% 1.00x
StringAdder 0 0 +0.0% 1.00x
StringBuilder 1323 1310 -1.0% 1.01x (?)
StringBuilderLong 909 911 +0.2% 1.00x (?)
StringEdits 202150 202687 +0.3% 1.00x
StringEqualPointerComparison 7519 7401 -1.6% 1.02x (?)
StringHasPrefixUnicode 14116 14441 +2.3% 0.98x
StringHasSuffixUnicode 61378 61691 +0.5% 0.99x
StringInterpolation 8326 8403 +0.9% 0.99x
StringUTF16Builder 2086 2091 +0.2% 1.00x (?)
StringWalk 6350 6513 +2.6% 0.97x
StringWithCString 125582 126565 +0.8% 0.99x
SuffixAnyCollection 22 23 +4.5% 0.96x
SuffixAnyCollectionLazy 15116 15012 -0.7% 1.01x
SuffixAnySeqCRangeIter 4930 4928 -0.0% 1.00x (?)
SuffixAnySeqCRangeIterLazy 4929 4932 +0.1% 1.00x (?)
SuffixAnySeqCntRange 16 16 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 16 16 +0.0% 1.00x
SuffixAnySequence 6697 6704 +0.1% 1.00x
SuffixAnySequenceLazy 6580 6544 -0.5% 1.01x
SuffixArray 8 8 +0.0% 1.00x
SuffixArrayLazy 8 8 +0.0% 1.00x
SuffixCountableRange 10 10 +0.0% 1.00x
SuffixSequence 4490 4487 -0.1% 1.00x
SuffixSequenceLazy 4456 4519 +1.4% 0.99x
SuperChars 297147 296527 -0.2% 1.00x (?)
TwoSum 881 884 +0.3% 1.00x (?)
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode 257 254 -1.2% 1.01x
Walsh 357 353 -1.1% 1.01x
XorLoop 347 347 +0.0% 1.00x
**Unoptimized (Onone)**
Regression (6)
TEST OLD NEW DELTA SPEEDUP
HashQuadratic 47925865 52499112 +9.5% 0.91x
StrToInt 5154 5593 +8.5% 0.92x
NSError 701 751 +7.1% 0.93x
RC4 19418 20632 +6.3% 0.94x
Calculator 1152 1222 +6.1% 0.94x
ObjectiveCBridgeFromNSSetAnyObjectToString 77263 81406 +5.4% 0.95x (?)
Improvement (2)
TEST OLD NEW DELTA SPEEDUP
StringWalk 22526 20920 -7.1% 1.08x
StringHasSuffix 1850 1757 -5.0% 1.05x
No Changes (261)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 3150 3134 -0.5% 1.01x (?)
AnyHashableWithAClass 84528 86567 +2.4% 0.98x (?)
Array2D 606905 608065 +0.2% 1.00x
ArrayAppend 3798 3677 -3.2% 1.03x
ArrayAppendArrayOfInt 650 652 +0.3% 1.00x
ArrayAppendAscii 61552 61596 +0.1% 1.00x (?)
ArrayAppendFromGeneric 655 655 +0.0% 1.00x
ArrayAppendGenericStructs 1357 1314 -3.2% 1.03x
ArrayAppendLatin1 81545 83303 +2.2% 0.98x
ArrayAppendLazyMap 212790 210635 -1.0% 1.01x
ArrayAppendOptionals 1295 1286 -0.7% 1.01x (?)
ArrayAppendRepeatCol 211264 213116 +0.9% 0.99x
ArrayAppendReserved 3430 3421 -0.3% 1.00x
ArrayAppendSequence 74313 75017 +0.9% 0.99x
ArrayAppendStrings 13722 13604 -0.9% 1.01x (?)
ArrayAppendToFromGeneric 654 654 +0.0% 1.00x
ArrayAppendToGeneric 655 655 +0.0% 1.00x
ArrayAppendUTF16 81244 82073 +1.0% 0.99x (?)
ArrayInClass 4734 4734 +0.0% 1.00x
ArrayLiteral 1508 1511 +0.2% 1.00x
ArrayOfGenericPOD 3075 3072 -0.1% 1.00x
ArrayOfGenericRef 9716 9735 +0.2% 1.00x (?)
ArrayOfPOD 1832 1892 +3.3% 0.97x
ArrayOfRef 8788 8802 +0.2% 1.00x
ArrayPlusEqualArrayOfInt 652 651 -0.2% 1.00x (?)
ArrayPlusEqualFiveElementCollection 282836 282611 -0.1% 1.00x (?)
ArrayPlusEqualSingleElementCollection 280349 278662 -0.6% 1.01x (?)
ArrayPlusEqualThreeElements 10035 10064 +0.3% 1.00x (?)
ArraySubscript 4155 4151 -0.1% 1.00x (?)
ArrayValueProp 3054 3071 +0.6% 0.99x (?)
ArrayValueProp2 3640 3644 +0.1% 1.00x
ArrayValueProp3 3428 3409 -0.6% 1.01x (?)
ArrayValueProp4 3327 3344 +0.5% 0.99x
BitCount 888 876 -1.4% 1.01x
ByteSwap 264 272 +3.0% 0.97x
CStringLongAscii 5350 5463 +2.1% 0.98x
CStringLongNonAscii 2447 2424 -0.9% 1.01x
CStringShortAscii 8362 8415 +0.6% 0.99x (?)
CaptureProp 108322 109100 +0.7% 0.99x
CharacterLiteralsLarge 9987 10107 +1.2% 0.99x
CharacterLiteralsSmall 1001 1002 +0.1% 1.00x
Chars 7455 7480 +0.3% 1.00x (?)
ClassArrayGetter 931 932 +0.1% 1.00x
DeadArray 117160 116148 -0.9% 1.01x (?)
Dictionary 1684 1681 -0.2% 1.00x (?)
Dictionary2 3483 3486 +0.1% 1.00x (?)
Dictionary2OfObjects 5796 5771 -0.4% 1.00x (?)
Dictionary3 1311 1315 +0.3% 1.00x (?)
Dictionary3OfObjects 2234 2211 -1.0% 1.01x (?)
DictionaryBridge 2926 2827 -3.4% 1.04x
DictionaryLiteral 8328 8301 -0.3% 1.00x (?)
DictionaryOfObjects 4612 4532 -1.7% 1.02x (?)
DictionaryRemove 21110 21029 -0.4% 1.00x
DictionaryRemoveOfObjects 55799 55041 -1.4% 1.01x (?)
DictionarySwap 5477 5426 -0.9% 1.01x
DictionarySwapOfObjects 20005 19824 -0.9% 1.01x (?)
DropFirstAnyCollection 19479 19034 -2.3% 1.02x
DropFirstAnyCollectionLazy 137007 137224 +0.2% 1.00x (?)
DropFirstAnySeqCRangeIter 29995 30086 +0.3% 1.00x (?)
DropFirstAnySeqCRangeIterLazy 29662 29732 +0.2% 1.00x
DropFirstAnySeqCntRange 19696 19038 -3.3% 1.03x
DropFirstAnySeqCntRangeLazy 19101 19013 -0.5% 1.00x
DropFirstAnySequence 14333 14108 -1.6% 1.02x
DropFirstAnySequenceLazy 14271 13974 -2.1% 1.02x
DropFirstArray 6200 6198 -0.0% 1.00x (?)
DropFirstArrayLazy 45594 44529 -2.3% 1.02x
DropFirstCountableRange 335 336 +0.3% 1.00x
DropFirstCountableRangeLazy 38051 38199 +0.4% 1.00x (?)
DropFirstSequence 13321 13093 -1.7% 1.02x (?)
DropFirstSequenceLazy 13146 12873 -2.1% 1.02x
DropLastAnyCollection 6509 6346 -2.5% 1.03x
DropLastAnyCollectionLazy 45987 46138 +0.3% 1.00x (?)
DropLastAnySeqCRangeIter 43681 43701 +0.0% 1.00x (?)
DropLastAnySeqCRangeIterLazy 43391 43893 +1.2% 0.99x
DropLastAnySeqCntRange 6482 6355 -2.0% 1.02x (?)
DropLastAnySeqCntRangeLazy 6379 6353 -0.4% 1.00x (?)
DropLastAnySequence 29193 29082 -0.4% 1.00x
DropLastAnySequenceLazy 29159 29054 -0.4% 1.00x
DropLastArray 2071 2072 +0.0% 1.00x (?)
DropLastArrayLazy 15168 14823 -2.3% 1.02x
DropLastCountableRange 117 117 +0.0% 1.00x
DropLastCountableRangeLazy 12606 12786 +1.4% 0.99x
DropLastSequence 28891 28760 -0.5% 1.00x
DropLastSequenceLazy 28633 28633 +0.0% 1.00x
DropWhileAnyCollection 25144 24678 -1.9% 1.02x
DropWhileAnyCollectionLazy 27065 27009 -0.2% 1.00x
DropWhileAnySeqCRangeIter 31503 31689 +0.6% 0.99x
DropWhileAnySeqCRangeIterLazy 27096 27315 +0.8% 0.99x (?)
DropWhileAnySeqCntRange 24997 24880 -0.5% 1.00x
DropWhileAnySeqCntRangeLazy 27136 27148 +0.0% 1.00x (?)
DropWhileAnySequence 16084 16108 +0.1% 1.00x
DropWhileAnySequenceLazy 12649 12418 -1.8% 1.02x
DropWhileArray 9963 9788 -1.8% 1.02x
DropWhileArrayLazy 16984 17052 +0.4% 1.00x
DropWhileCountableRange 6171 6078 -1.5% 1.02x
DropWhileCountableRangeLazy 26052 26127 +0.3% 1.00x
DropWhileSequence 15098 15120 +0.1% 1.00x (?)
DropWhileSequenceLazy 11409 11219 -1.7% 1.02x
ErrorHandling 3787 3829 +1.1% 0.99x (?)
GlobalClass 0 0 +0.0% 1.00x
Hanoi 17460 17525 +0.4% 1.00x
HashTest 18665 18454 -1.1% 1.01x (?)
Histogram 8798 9011 +2.4% 0.98x (?)
Integrate 398 398 +0.0% 1.00x
IterateData 12833 12776 -0.4% 1.00x (?)
Join 1269 1261 -0.6% 1.01x
LazilyFilteredArrays 1720148 1708448 -0.7% 1.01x (?)
LazilyFilteredRange 684360 675161 -1.3% 1.01x
LinkedList 32943 32938 -0.0% 1.00x (?)
MapReduce 38018 38026 +0.0% 1.00x (?)
MapReduceAnyCollection 37958 37918 -0.1% 1.00x
MapReduceAnyCollectionShort 50472 50380 -0.2% 1.00x (?)
MapReduceClass 43799 43598 -0.5% 1.00x (?)
MapReduceClassShort 55194 56275 +2.0% 0.98x (?)
MapReduceLazyCollection 33012 33644 +1.9% 0.98x
MapReduceLazyCollectionShort 44549 44791 +0.5% 0.99x
MapReduceLazySequence 25520 25510 -0.0% 1.00x (?)
MapReduceSequence 41004 41311 +0.7% 0.99x
MapReduceShort 50117 49924 -0.4% 1.00x (?)
MapReduceShortString 278 282 +1.4% 0.99x
MapReduceString 2625 2611 -0.5% 1.01x
Memset 43967 43967 +0.0% 1.00x
MonteCarloE 134722 135298 +0.4% 1.00x (?)
MonteCarloPi 52488 52526 +0.1% 1.00x (?)
NSDictionaryCastToSwift 6435 6491 +0.9% 0.99x (?)
NSStringConversion 1316 1316 +0.0% 1.00x
NopDeinit 51828 51819 -0.0% 1.00x (?)
ObjectAllocation 643 639 -0.6% 1.01x (?)
ObjectiveCBridgeFromNSArrayAnyObject 26070 25745 -1.2% 1.01x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 7998 8396 +5.0% 0.95x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 44930 45313 +0.9% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 39001 39382 +1.0% 0.99x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 127826 125397 -1.9% 1.02x
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 7647 7509 -1.8% 1.02x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 104688 99906 -4.6% 1.05x
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 97462 97017 -0.5% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObject 67442 67499 +0.1% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 7024 7244 +3.1% 0.97x (?)
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 68682 67361 -1.9% 1.02x (?)
ObjectiveCBridgeFromNSString 3971 3974 +0.1% 1.00x (?)
ObjectiveCBridgeFromNSStringForced 2727 2759 +1.2% 0.99x (?)
ObjectiveCBridgeStubDataAppend 3885 3785 -2.6% 1.03x
ObjectiveCBridgeStubDateAccess 1027 1003 -2.3% 1.02x
ObjectiveCBridgeStubDateMutation 485 485 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 29644 29713 +0.2% 1.00x (?)
ObjectiveCBridgeStubFromNSDate 3974 4009 +0.9% 0.99x
ObjectiveCBridgeStubFromNSDateRef 3975 4022 +1.2% 0.99x
ObjectiveCBridgeStubFromNSString 1008 972 -3.6% 1.04x
ObjectiveCBridgeStubFromNSStringRef 204 206 +1.0% 0.99x (?)
ObjectiveCBridgeStubNSDataAppend 2681 2658 -0.9% 1.01x (?)
ObjectiveCBridgeStubNSDateMutationRef 15181 15685 +3.3% 0.97x (?)
ObjectiveCBridgeStubNSDateRefAccess 1211 1209 -0.2% 1.00x
ObjectiveCBridgeStubToArrayOfNSString 29747 29648 -0.3% 1.00x
ObjectiveCBridgeStubToNSDate 15528 15632 +0.7% 0.99x (?)
ObjectiveCBridgeStubToNSDateRef 3386 3362 -0.7% 1.01x (?)
ObjectiveCBridgeStubToNSString 1568 1568 +0.0% 1.00x
ObjectiveCBridgeStubToNSStringRef 149 149 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 232471 232761 +0.1% 1.00x (?)
ObjectiveCBridgeStubURLAppendPathRef 242338 236430 -2.4% 1.02x
ObjectiveCBridgeToNSArray 29460 29130 -1.1% 1.01x (?)
ObjectiveCBridgeToNSDictionary 54133 51988 -4.0% 1.04x
ObjectiveCBridgeToNSSet 40842 40764 -0.2% 1.00x (?)
ObjectiveCBridgeToNSString 1307 1307 +0.0% 1.00x
ObserverClosure 6634 6641 +0.1% 1.00x (?)
ObserverForwarderStruct 4686 4678 -0.2% 1.00x (?)
ObserverPartiallyAppliedMethod 8135 8099 -0.4% 1.00x (?)
ObserverUnappliedMethod 8405 8431 +0.3% 1.00x (?)
OpenClose 393 394 +0.3% 1.00x
Phonebook 24381 25343 +3.9% 0.96x (?)
PolymorphicCalls 2890 2952 +2.1% 0.98x
PopFrontArray 7367 7348 -0.3% 1.00x
PopFrontArrayGeneric 6361 6308 -0.8% 1.01x
PopFrontUnsafePointer 97184 98693 +1.6% 0.98x (?)
PrefixAnyCollection 19558 18980 -3.0% 1.03x
PrefixAnyCollectionLazy 137860 138527 +0.5% 1.00x (?)
PrefixAnySeqCRangeIter 24137 24290 +0.6% 0.99x
PrefixAnySeqCRangeIterLazy 24094 24110 +0.1% 1.00x (?)
PrefixAnySeqCntRange 19687 19190 -2.5% 1.03x
PrefixAnySeqCntRangeLazy 19058 19001 -0.3% 1.00x
PrefixAnySequence 11928 11967 +0.3% 1.00x (?)
PrefixAnySequenceLazy 11831 11861 +0.3% 1.00x (?)
PrefixArray 6199 6188 -0.2% 1.00x
PrefixArrayLazy 44763 44340 -0.9% 1.01x
PrefixCountableRange 337 338 +0.3% 1.00x
PrefixCountableRangeLazy 37962 37841 -0.3% 1.00x (?)
PrefixSequence 10734 10737 +0.0% 1.00x
PrefixSequenceLazy 10686 10708 +0.2% 1.00x (?)
PrefixWhileAnyCollection 36581 36232 -1.0% 1.01x
PrefixWhileAnyCollectionLazy 22572 22404 -0.7% 1.01x (?)
PrefixWhileAnySeqCRangeIter 40342 40660 +0.8% 0.99x (?)
PrefixWhileAnySeqCRangeIterLazy 23414 22307 -4.7% 1.05x
PrefixWhileAnySeqCntRange 36399 36143 -0.7% 1.01x
PrefixWhileAnySeqCntRangeLazy 22465 22339 -0.6% 1.01x
PrefixWhileAnySequence 29728 29529 -0.7% 1.01x
PrefixWhileAnySequenceLazy 11444 11248 -1.7% 1.02x
PrefixWhileArray 17008 16841 -1.0% 1.01x
PrefixWhileArrayLazy 14999 14693 -2.0% 1.02x
PrefixWhileCountableRange 17747 17473 -1.5% 1.02x
PrefixWhileCountableRangeLazy 22358 21578 -3.5% 1.04x
PrefixWhileSequence 28578 28360 -0.8% 1.01x (?)
PrefixWhileSequenceLazy 10509 10507 -0.0% 1.00x (?)
Prims 8871 8913 +0.5% 1.00x
ProtocolDispatch 7109 6963 -2.1% 1.02x
ProtocolDispatch2 490 490 +0.0% 1.00x
RGBHistogram 34609 34915 +0.9% 0.99x (?)
RGBHistogramOfObjects 99959 100048 +0.1% 1.00x (?)
RangeAssignment 5677 5696 +0.3% 1.00x (?)
RecursiveOwnedParameter 9625 9654 +0.3% 1.00x
ReversedArray 590 590 +0.0% 1.00x
ReversedBidirectional 73814 73603 -0.3% 1.00x
ReversedDictionary 25887 25836 -0.2% 1.00x
SetExclusiveOr 21070 21070 +0.0% 1.00x
SetExclusiveOr_OfObjects 41170 41370 +0.5% 1.00x (?)
SetIntersect 10609 10766 +1.5% 0.99x
SetIntersect_OfObjects 11214 11261 +0.4% 1.00x
SetIsSubsetOf 1639 1659 +1.2% 0.99x
SetIsSubsetOf_OfObjects 1521 1535 +0.9% 0.99x
SetUnion 12079 12112 +0.3% 1.00x (?)
SetUnion_OfObjects 29578 29758 +0.6% 0.99x
SevenBoom 1626 1620 -0.4% 1.00x (?)
Sim2DArray 30015 30021 +0.0% 1.00x (?)
SortLargeExistentials 17608 17733 +0.7% 0.99x
SortLettersInPlace 2876 2850 -0.9% 1.01x (?)
SortSortedStrings 1399 1401 +0.1% 1.00x (?)
SortStrings 2420 2446 +1.1% 0.99x
SortStringsUnicode 8732 8860 +1.5% 0.99x
StackPromo 102780 102664 -0.1% 1.00x (?)
StaticArray 4615 4659 +1.0% 0.99x
StrComplexWalk 6856 6841 -0.2% 1.00x (?)
StringAdder 46 46 +0.0% 1.00x
StringBuilder 2794 2803 +0.3% 1.00x (?)
StringBuilderLong 1079 1087 +0.7% 0.99x (?)
StringEdits 513807 493473 -4.0% 1.04x
StringEqualPointerComparison 9628 9618 -0.1% 1.00x (?)
StringHasPrefix 1637 1670 +2.0% 0.98x
StringHasPrefixUnicode 15761 15931 +1.1% 0.99x
StringHasSuffixUnicode 63298 63716 +0.7% 0.99x
StringInterpolation 12025 11989 -0.3% 1.00x (?)
StringMatch 30619 30933 +1.0% 0.99x
StringUTF16Builder 3604 3571 -0.9% 1.01x (?)
StringWithCString 135765 135949 +0.1% 1.00x (?)
SuffixAnyCollection 6507 6342 -2.5% 1.03x
SuffixAnyCollectionLazy 46012 46036 +0.1% 1.00x (?)
SuffixAnySeqCRangeIter 41432 41319 -0.3% 1.00x
SuffixAnySeqCRangeIterLazy 41093 41140 +0.1% 1.00x (?)
SuffixAnySeqCntRange 6480 6374 -1.6% 1.02x
SuffixAnySeqCntRangeLazy 6371 6348 -0.4% 1.00x (?)
SuffixAnySequence 26918 26841 -0.3% 1.00x
SuffixAnySequenceLazy 26838 26837 -0.0% 1.00x (?)
SuffixArray 2073 2072 -0.0% 1.00x
SuffixArrayLazy 14928 14781 -1.0% 1.01x
SuffixCountableRange 117 117 +0.0% 1.00x
SuffixCountableRangeLazy 12684 12626 -0.5% 1.00x (?)
SuffixSequence 26560 26558 -0.0% 1.00x (?)
SuffixSequenceLazy 26493 26403 -0.3% 1.00x
SuperChars 316141 315680 -0.1% 1.00x
TwoSum 4316 4338 +0.5% 0.99x (?)
TypeFlood 170 173 +1.8% 0.98x (?)
UTF8Decode 36935 37272 +0.9% 0.99x
Walsh 11896 11890 -0.1% 1.00x (?)
XorLoop 23705 23707 +0.0% 1.00x (?)
**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

@airspeedswift
Copy link
Member Author

@swift-ci please test source compatibility

@airspeedswift
Copy link
Member Author

@swift-ci please benchmark

@swift-ci
Copy link
Collaborator

swift-ci commented May 9, 2017

Build comment file:

Optimized (O)

Regression (12)
TEST OLD NEW DELTA SPEEDUP
StringHasSuffix 16 33 +106.2% 0.48x
StringMatch 9216 10553 +14.5% 0.87x
SetIsSubsetOf_OfObjects 359 402 +12.0% 0.89x
DictionaryRemove 3313 3704 +11.8% 0.89x
SuffixCountableRange 10 11 +10.0% 0.91x
MapReduceAnyCollection 303 331 +9.2% 0.92x
StrToInt 4658 5007 +7.5% 0.93x
SuffixAnySequence 6712 7113 +6.0% 0.94x (?)
NopDeinit 27443 28952 +5.5% 0.95x
NSStringConversion 729 769 +5.5% 0.95x
PrefixWhileSequence 296 312 +5.4% 0.95x
PrefixSequence 2523 2657 +5.3% 0.95x (?)
Improvement (5)
TEST OLD NEW DELTA SPEEDUP
StringHasPrefix 33 16 -51.5% 2.06x
ObjectiveCBridgeStubNSDateRefAccess 374 316 -15.5% 1.18x
OpenClose 54 48 -11.1% 1.12x
CaptureProp 4851 4494 -7.4% 1.08x
ObjectiveCBridgeStubToNSDate 14663 13790 -6.0% 1.06x (?)
No Changes (252)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 2902 2912 +0.3% 1.00x (?)
AnyHashableWithAClass 67006 66508 -0.7% 1.01x
Array2D 2020 2041 +1.0% 0.99x (?)
ArrayAppend 770 770 +0.0% 1.00x
ArrayAppendArrayOfInt 597 596 -0.2% 1.00x (?)
ArrayAppendAscii 22236 22347 +0.5% 1.00x
ArrayAppendFromGeneric 597 596 -0.2% 1.00x (?)
ArrayAppendGenericStructs 1224 1226 +0.2% 1.00x (?)
ArrayAppendLatin1 43392 43281 -0.3% 1.00x
ArrayAppendLazyMap 934 935 +0.1% 1.00x (?)
ArrayAppendOptionals 1226 1235 +0.7% 0.99x (?)
ArrayAppendRepeatCol 837 838 +0.1% 1.00x (?)
ArrayAppendReserved 533 533 +0.0% 1.00x
ArrayAppendSequence 943 945 +0.2% 1.00x (?)
ArrayAppendStrings 13624 13598 -0.2% 1.00x (?)
ArrayAppendToFromGeneric 597 596 -0.2% 1.00x (?)
ArrayAppendToGeneric 597 596 -0.2% 1.00x (?)
ArrayAppendUTF16 41034 40749 -0.7% 1.01x (?)
ArrayInClass 61 61 +0.0% 1.00x
ArrayLiteral 1223 1220 -0.2% 1.00x (?)
ArrayOfGenericPOD 219 219 +0.0% 1.00x
ArrayOfGenericRef 3990 3994 +0.1% 1.00x (?)
ArrayOfPOD 166 166 +0.0% 1.00x
ArrayOfRef 3888 3886 -0.1% 1.00x (?)
ArrayPlusEqualArrayOfInt 597 597 +0.0% 1.00x
ArrayPlusEqualFiveElementCollection 4685 4708 +0.5% 1.00x (?)
ArrayPlusEqualSingleElementCollection 769 770 +0.1% 1.00x (?)
ArrayPlusEqualThreeElements 1586 1588 +0.1% 1.00x (?)
ArraySubscript 1483 1474 -0.6% 1.01x (?)
ArrayValueProp 6 6 +0.0% 1.00x
ArrayValueProp2 6 6 +0.0% 1.00x
ArrayValueProp3 6 6 +0.0% 1.00x
ArrayValueProp4 6 6 +0.0% 1.00x
BitCount 9 9 +0.0% 1.00x
ByteSwap 0 0 +0.0% 1.00x
CStringLongAscii 5006 5025 +0.4% 1.00x (?)
CStringLongNonAscii 2163 2132 -1.4% 1.01x (?)
CStringShortAscii 5366 5396 +0.6% 0.99x (?)
Calculator 33 34 +3.0% 0.97x
CharacterLiteralsLarge 8602 8765 +1.9% 0.98x (?)
CharacterLiteralsSmall 310 310 +0.0% 1.00x
Chars 1839 1776 -3.4% 1.04x (?)
ClassArrayGetter 13 13 +0.0% 1.00x
DeadArray 184 181 -1.6% 1.02x
Dictionary 574 566 -1.4% 1.01x (?)
Dictionary2 1804 1805 +0.1% 1.00x (?)
Dictionary2OfObjects 3324 3322 -0.1% 1.00x (?)
Dictionary3 454 454 +0.0% 1.00x
Dictionary3OfObjects 900 898 -0.2% 1.00x (?)
DictionaryBridge 2761 2773 +0.4% 1.00x (?)
DictionaryLiteral 1484 1481 -0.2% 1.00x (?)
DictionaryOfObjects 2335 2334 -0.0% 1.00x (?)
DictionaryRemoveOfObjects 23323 23281 -0.2% 1.00x (?)
DictionarySwap 388 389 +0.3% 1.00x (?)
DictionarySwapOfObjects 6929 6964 +0.5% 0.99x (?)
DropFirstAnyCollection 56 56 +0.0% 1.00x
DropFirstAnyCollectionLazy 44931 45032 +0.2% 1.00x (?)
DropFirstAnySeqCRangeIter 27376 27549 +0.6% 0.99x (?)
DropFirstAnySeqCRangeIterLazy 27403 27525 +0.4% 1.00x (?)
DropFirstAnySeqCntRange 50 50 +0.0% 1.00x
DropFirstAnySeqCntRangeLazy 50 50 +0.0% 1.00x
DropFirstAnySequence 6792 6819 +0.4% 1.00x (?)
DropFirstAnySequenceLazy 6785 6804 +0.3% 1.00x (?)
DropFirstArray 24 24 +0.0% 1.00x
DropFirstArrayLazy 24 24 +0.0% 1.00x
DropFirstCountableRange 32 32 +0.0% 1.00x
DropFirstCountableRangeLazy 32 32 +0.0% 1.00x
DropFirstSequence 3064 3065 +0.0% 1.00x (?)
DropFirstSequenceLazy 3026 3028 +0.1% 1.00x (?)
DropLastAnyCollection 22 22 +0.0% 1.00x
DropLastAnyCollectionLazy 15071 15114 +0.3% 1.00x (?)
DropLastAnySeqCRangeIter 4628 4660 +0.7% 0.99x (?)
DropLastAnySeqCRangeIterLazy 4607 4607 +0.0% 1.00x
DropLastAnySeqCntRange 16 16 +0.0% 1.00x
DropLastAnySeqCntRangeLazy 16 16 +0.0% 1.00x
DropLastAnySequence 6893 6784 -1.6% 1.02x (?)
DropLastAnySequenceLazy 6642 6521 -1.8% 1.02x (?)
DropLastArray 8 8 +0.0% 1.00x
DropLastArrayLazy 8 8 +0.0% 1.00x
DropLastCountableRange 10 10 +0.0% 1.00x
DropLastCountableRangeLazy 10 10 +0.0% 1.00x
DropLastSequence 547 547 +0.0% 1.00x
DropLastSequenceLazy 547 546 -0.2% 1.00x (?)
DropWhileAnyCollection 69 70 +1.4% 0.99x
DropWhileAnyCollectionLazy 103 103 +0.0% 1.00x
DropWhileAnySeqCRangeIter 22522 21891 -2.8% 1.03x (?)
DropWhileAnySeqCRangeIterLazy 103 103 +0.0% 1.00x
DropWhileAnySeqCntRange 64 64 +0.0% 1.00x
DropWhileAnySeqCntRangeLazy 103 103 +0.0% 1.00x
DropWhileAnySequence 7600 7600 +0.0% 1.00x
DropWhileAnySequenceLazy 2032 2031 -0.0% 1.00x
DropWhileArray 37 37 +0.0% 1.00x
DropWhileArrayLazy 78 78 +0.0% 1.00x
DropWhileCountableRange 36 35 -2.8% 1.03x
DropWhileCountableRangeLazy 68 68 +0.0% 1.00x
DropWhileSequence 3123 3124 +0.0% 1.00x (?)
DropWhileSequenceLazy 65 65 +0.0% 1.00x
ErrorHandling 2837 2841 +0.1% 1.00x (?)
GlobalClass 0 0 +0.0% 1.00x
Hanoi 3468 3408 -1.7% 1.02x
HashQuadratic 6050526 6345269 +4.9% 0.95x
HashTest 1690 1695 +0.3% 1.00x (?)
Histogram 251 250 -0.4% 1.00x (?)
Integrate 262 262 +0.0% 1.00x
IterateData 757 756 -0.1% 1.00x (?)
Join 443 445 +0.5% 1.00x (?)
LazilyFilteredArrays 64825 64926 +0.2% 1.00x (?)
LazilyFilteredRange 3889 3889 +0.0% 1.00x
LinkedList 7112 7112 +0.0% 1.00x
MapReduce 302 302 +0.0% 1.00x
MapReduceAnyCollectionShort 1999 2008 +0.5% 1.00x (?)
MapReduceClass 3060 3064 +0.1% 1.00x (?)
MapReduceClassShort 4496 4577 +1.8% 0.98x
MapReduceLazyCollection 15 15 +0.0% 1.00x
MapReduceLazyCollectionShort 45 44 -2.2% 1.02x
MapReduceLazySequence 90 90 +0.0% 1.00x
MapReduceSequence 449 444 -1.1% 1.01x (?)
MapReduceShort 1913 1911 -0.1% 1.00x (?)
MapReduceShortString 21 21 +0.0% 1.00x
MapReduceString 109 108 -0.9% 1.01x (?)
Memset 233 234 +0.4% 1.00x (?)
MonteCarloE 10390 10340 -0.5% 1.00x
MonteCarloPi 44036 43993 -0.1% 1.00x (?)
NSDictionaryCastToSwift 5312 5336 +0.5% 1.00x (?)
NSError 288 289 +0.3% 1.00x (?)
ObjectAllocation 179 179 +0.0% 1.00x
ObjectiveCBridgeFromNSArrayAnyObject 23476 23319 -0.7% 1.01x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 4515 4503 -0.3% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 43497 43934 +1.0% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 37289 38183 +2.4% 0.98x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 118112 118249 +0.1% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 5192 5185 -0.1% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 95361 97008 +1.7% 0.98x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 90340 92431 +2.3% 0.98x (?)
ObjectiveCBridgeFromNSSetAnyObject 64675 64359 -0.5% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 4170 4158 -0.3% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 71125 71607 +0.7% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 62136 62965 +1.3% 0.99x (?)
ObjectiveCBridgeFromNSString 1404 1469 +4.6% 0.96x (?)
ObjectiveCBridgeFromNSStringForced 2344 2405 +2.6% 0.97x
ObjectiveCBridgeStubDataAppend 3723 3684 -1.0% 1.01x (?)
ObjectiveCBridgeStubDateAccess 181 181 +0.0% 1.00x
ObjectiveCBridgeStubDateMutation 272 272 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 28520 28523 +0.0% 1.00x (?)
ObjectiveCBridgeStubFromNSDate 3612 3666 +1.5% 0.99x
ObjectiveCBridgeStubFromNSDateRef 3762 3587 -4.7% 1.05x
ObjectiveCBridgeStubFromNSString 918 925 +0.8% 0.99x (?)
ObjectiveCBridgeStubFromNSStringRef 177 179 +1.1% 0.99x
ObjectiveCBridgeStubNSDataAppend 2334 2299 -1.5% 1.02x (?)
ObjectiveCBridgeStubNSDateMutationRef 12501 12640 +1.1% 0.99x (?)
ObjectiveCBridgeStubToArrayOfNSString 28810 28798 -0.0% 1.00x (?)
ObjectiveCBridgeStubToNSDateRef 3414 3394 -0.6% 1.01x (?)
ObjectiveCBridgeStubToNSString 1518 1522 +0.3% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 108 110 +1.9% 0.98x (?)
ObjectiveCBridgeStubURLAppendPath 233321 231832 -0.6% 1.01x (?)
ObjectiveCBridgeStubURLAppendPathRef 227929 233340 +2.4% 0.98x (?)
ObjectiveCBridgeToNSArray 28888 29222 +1.2% 0.99x (?)
ObjectiveCBridgeToNSDictionary 51504 52346 +1.6% 0.98x (?)
ObjectiveCBridgeToNSSet 40386 40176 -0.5% 1.01x (?)
ObjectiveCBridgeToNSString 1272 1275 +0.2% 1.00x (?)
ObserverClosure 2301 2289 -0.5% 1.01x (?)
ObserverForwarderStruct 1128 1121 -0.6% 1.01x (?)
ObserverPartiallyAppliedMethod 3798 3826 +0.7% 0.99x (?)
ObserverUnappliedMethod 2649 2644 -0.2% 1.00x (?)
Phonebook 9297 9639 +3.7% 0.96x
PolymorphicCalls 22 22 +0.0% 1.00x
PopFrontArray 1070 1066 -0.4% 1.00x (?)
PopFrontArrayGeneric 1072 1069 -0.3% 1.00x (?)
PopFrontUnsafePointer 8854 8841 -0.1% 1.00x (?)
PrefixAnyCollection 56 56 +0.0% 1.00x
PrefixAnyCollectionLazy 45029 45148 +0.3% 1.00x (?)
PrefixAnySeqCRangeIter 21581 21547 -0.2% 1.00x (?)
PrefixAnySeqCRangeIterLazy 21602 21542 -0.3% 1.00x (?)
PrefixAnySeqCntRange 50 50 +0.0% 1.00x
PrefixAnySeqCntRangeLazy 50 50 +0.0% 1.00x
PrefixAnySequence 6098 6090 -0.1% 1.00x (?)
PrefixAnySequenceLazy 6094 6086 -0.1% 1.00x (?)
PrefixArray 24 25 +4.2% 0.96x
PrefixArrayLazy 24 24 +0.0% 1.00x
PrefixCountableRange 32 32 +0.0% 1.00x
PrefixCountableRangeLazy 32 32 +0.0% 1.00x
PrefixSequenceLazy 2616 2617 +0.0% 1.00x (?)
PrefixWhileAnyCollection 96 96 +0.0% 1.00x
PrefixWhileAnyCollectionLazy 75 75 +0.0% 1.00x
PrefixWhileAnySeqCRangeIter 12527 13111 +4.7% 0.96x (?)
PrefixWhileAnySeqCRangeIterLazy 75 75 +0.0% 1.00x
PrefixWhileAnySeqCntRange 90 90 +0.0% 1.00x
PrefixWhileAnySeqCntRangeLazy 75 75 +0.0% 1.00x
PrefixWhileAnySequence 14380 14283 -0.7% 1.01x (?)
PrefixWhileAnySequenceLazy 1491 1492 +0.1% 1.00x
PrefixWhileArray 62 62 +0.0% 1.00x
PrefixWhileArrayLazy 49 49 +0.0% 1.00x
PrefixWhileCountableRange 36 36 +0.0% 1.00x
PrefixWhileCountableRangeLazy 32 32 +0.0% 1.00x
PrefixWhileSequenceLazy 28 28 +0.0% 1.00x
Prims 755 760 +0.7% 0.99x (?)
ProtocolDispatch 2727 2727 +0.0% 1.00x
ProtocolDispatch2 160 168 +5.0% 0.95x
RC4 160 158 -1.2% 1.01x
RGBHistogram 2273 2262 -0.5% 1.00x (?)
RGBHistogramOfObjects 24450 24472 +0.1% 1.00x (?)
RangeAssignment 296 304 +2.7% 0.97x (?)
RecursiveOwnedParameter 2327 2325 -0.1% 1.00x (?)
ReversedArray 49 49 +0.0% 1.00x
ReversedBidirectional 29145 29124 -0.1% 1.00x (?)
ReversedDictionary 111 112 +0.9% 0.99x (?)
SetExclusiveOr 2887 2903 +0.6% 0.99x (?)
SetExclusiveOr_OfObjects 9596 9548 -0.5% 1.01x (?)
SetIntersect 281 271 -3.6% 1.04x
SetIntersect_OfObjects 1728 1720 -0.5% 1.00x (?)
SetIsSubsetOf 286 286 +0.0% 1.00x
SetUnion 2619 2647 +1.1% 0.99x (?)
SetUnion_OfObjects 8068 7942 -1.6% 1.02x (?)
SevenBoom 1467 1465 -0.1% 1.00x (?)
Sim2DArray 276 276 +0.0% 1.00x
SortLargeExistentials 8424 8279 -1.7% 1.02x (?)
SortLettersInPlace 1145 1143 -0.2% 1.00x (?)
SortSortedStrings 851 855 +0.5% 1.00x (?)
SortStrings 1651 1666 +0.9% 0.99x (?)
SortStringsUnicode 7565 7391 -2.3% 1.02x (?)
StackPromo 22344 22276 -0.3% 1.00x
StaticArray 21 21 +0.0% 1.00x
StrComplexWalk 720 719 -0.1% 1.00x (?)
StringAdder 0 0 +0.0% 1.00x
StringBuilder 1306 1323 +1.3% 0.99x
StringBuilderLong 902 904 +0.2% 1.00x (?)
StringEdits 201270 203341 +1.0% 0.99x (?)
StringEqualPointerComparison 7334 7321 -0.2% 1.00x (?)
StringHasPrefixUnicode 14558 14230 -2.3% 1.02x (?)
StringHasSuffixUnicode 61039 61688 +1.1% 0.99x
StringInterpolation 8400 8431 +0.4% 1.00x (?)
StringUTF16Builder 2064 2072 +0.4% 1.00x (?)
StringWalk 6349 6497 +2.3% 0.98x
StringWithCString 125625 126306 +0.5% 0.99x (?)
SuffixAnyCollection 22 22 +0.0% 1.00x
SuffixAnyCollectionLazy 15025 15006 -0.1% 1.00x (?)
SuffixAnySeqCRangeIter 4927 5048 +2.5% 0.98x (?)
SuffixAnySeqCRangeIterLazy 4994 4936 -1.2% 1.01x (?)
SuffixAnySeqCntRange 16 16 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 16 16 +0.0% 1.00x
SuffixAnySequenceLazy 6704 6560 -2.1% 1.02x (?)
SuffixArray 8 8 +0.0% 1.00x
SuffixArrayLazy 8 8 +0.0% 1.00x
SuffixCountableRangeLazy 10 10 +0.0% 1.00x
SuffixSequence 4458 4513 +1.2% 0.99x (?)
SuffixSequenceLazy 4460 4478 +0.4% 1.00x (?)
SuperChars 297337 297143 -0.1% 1.00x (?)
TwoSum 886 916 +3.4% 0.97x (?)
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode 257 253 -1.6% 1.02x
Walsh 356 348 -2.2% 1.02x
XorLoop 347 347 +0.0% 1.00x
**Unoptimized (Onone)**
Regression (1)
TEST OLD NEW DELTA SPEEDUP
OpenClose 394 432 +9.6% 0.91x
Improvement (3)
TEST OLD NEW DELTA SPEEDUP
StringAdder 52 46 -11.5% 1.13x
StringHasSuffix 1959 1765 -9.9% 1.11x
StringWalk 22449 20386 -9.2% 1.10x
No Changes (265)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 3091 3103 +0.4% 1.00x
AnyHashableWithAClass 85120 83140 -2.3% 1.02x
Array2D 605654 607977 +0.4% 1.00x (?)
ArrayAppend 3679 3676 -0.1% 1.00x
ArrayAppendArrayOfInt 651 652 +0.2% 1.00x (?)
ArrayAppendAscii 60448 60177 -0.4% 1.00x (?)
ArrayAppendFromGeneric 654 654 +0.0% 1.00x
ArrayAppendGenericStructs 1319 1295 -1.8% 1.02x (?)
ArrayAppendLatin1 82591 82687 +0.1% 1.00x (?)
ArrayAppendLazyMap 213076 211720 -0.6% 1.01x (?)
ArrayAppendOptionals 1300 1318 +1.4% 0.99x (?)
ArrayAppendRepeatCol 211811 212382 +0.3% 1.00x
ArrayAppendReserved 3325 3425 +3.0% 0.97x
ArrayAppendSequence 75868 76459 +0.8% 0.99x
ArrayAppendStrings 13569 13594 +0.2% 1.00x (?)
ArrayAppendToFromGeneric 654 655 +0.2% 1.00x (?)
ArrayAppendToGeneric 655 655 +0.0% 1.00x
ArrayAppendUTF16 81051 81056 +0.0% 1.00x (?)
ArrayInClass 4734 4734 +0.0% 1.00x
ArrayLiteral 1476 1487 +0.7% 0.99x (?)
ArrayOfGenericPOD 3068 3073 +0.2% 1.00x (?)
ArrayOfGenericRef 9646 9578 -0.7% 1.01x (?)
ArrayOfPOD 1832 1891 +3.2% 0.97x
ArrayOfRef 8727 8727 +0.0% 1.00x
ArrayPlusEqualArrayOfInt 652 653 +0.2% 1.00x (?)
ArrayPlusEqualFiveElementCollection 284747 284158 -0.2% 1.00x (?)
ArrayPlusEqualSingleElementCollection 281815 280717 -0.4% 1.00x (?)
ArrayPlusEqualThreeElements 10053 10090 +0.4% 1.00x (?)
ArraySubscript 4162 4150 -0.3% 1.00x (?)
ArrayValueProp 3028 3038 +0.3% 1.00x (?)
ArrayValueProp2 3630 3630 +0.0% 1.00x
ArrayValueProp3 3417 3418 +0.0% 1.00x (?)
ArrayValueProp4 3344 3351 +0.2% 1.00x (?)
BitCount 891 884 -0.8% 1.01x (?)
ByteSwap 265 272 +2.6% 0.97x
CStringLongAscii 5425 5374 -0.9% 1.01x (?)
CStringLongNonAscii 2391 2412 +0.9% 0.99x (?)
CStringShortAscii 8260 8354 +1.1% 0.99x (?)
Calculator 1174 1226 +4.4% 0.96x
CaptureProp 108706 108210 -0.5% 1.00x (?)
CharacterLiteralsLarge 10011 9904 -1.1% 1.01x
CharacterLiteralsSmall 1006 1005 -0.1% 1.00x
Chars 7449 7447 -0.0% 1.00x (?)
ClassArrayGetter 929 930 +0.1% 1.00x (?)
DeadArray 117715 116287 -1.2% 1.01x (?)
Dictionary 1667 1673 +0.4% 1.00x (?)
Dictionary2 3479 3477 -0.1% 1.00x (?)
Dictionary2OfObjects 5806 5790 -0.3% 1.00x (?)
Dictionary3 1315 1324 +0.7% 0.99x (?)
Dictionary3OfObjects 2215 2210 -0.2% 1.00x (?)
DictionaryBridge 2860 2850 -0.3% 1.00x (?)
DictionaryLiteral 8226 8227 +0.0% 1.00x (?)
DictionaryOfObjects 4571 4527 -1.0% 1.01x (?)
DictionaryRemove 21097 21289 +0.9% 0.99x
DictionaryRemoveOfObjects 55226 55796 +1.0% 0.99x
DictionarySwap 5424 5478 +1.0% 0.99x (?)
DictionarySwapOfObjects 19932 19922 -0.1% 1.00x (?)
DropFirstAnyCollection 19186 18950 -1.2% 1.01x (?)
DropFirstAnyCollectionLazy 135954 135536 -0.3% 1.00x (?)
DropFirstAnySeqCRangeIter 30083 30178 +0.3% 1.00x (?)
DropFirstAnySeqCRangeIterLazy 29865 29945 +0.3% 1.00x
DropFirstAnySeqCntRange 19237 18971 -1.4% 1.01x (?)
DropFirstAnySeqCntRangeLazy 19254 18986 -1.4% 1.01x
DropFirstAnySequence 14032 14004 -0.2% 1.00x (?)
DropFirstAnySequenceLazy 14028 14033 +0.0% 1.00x (?)
DropFirstArray 6390 6189 -3.1% 1.03x
DropFirstArrayLazy 45183 44768 -0.9% 1.01x
DropFirstCountableRange 339 339 +0.0% 1.00x
DropFirstCountableRangeLazy 37937 37848 -0.2% 1.00x (?)
DropFirstSequence 12832 12959 +1.0% 0.99x
DropFirstSequenceLazy 12896 12916 +0.2% 1.00x (?)
DropLastAnyCollection 6441 6361 -1.2% 1.01x
DropLastAnyCollectionLazy 45411 44600 -1.8% 1.02x (?)
DropLastAnySeqCRangeIter 43518 43605 +0.2% 1.00x
DropLastAnySeqCRangeIterLazy 44153 43536 -1.4% 1.01x (?)
DropLastAnySeqCntRange 6423 6329 -1.5% 1.01x
DropLastAnySeqCntRangeLazy 6416 6353 -1.0% 1.01x
DropLastAnySequence 29011 29066 +0.2% 1.00x (?)
DropLastAnySequenceLazy 29680 29688 +0.0% 1.00x (?)
DropLastArray 2136 2071 -3.0% 1.03x
DropLastArrayLazy 15068 14977 -0.6% 1.01x
DropLastCountableRange 116 116 +0.0% 1.00x
DropLastCountableRangeLazy 12626 12629 +0.0% 1.00x (?)
DropLastSequence 28734 28705 -0.1% 1.00x
DropLastSequenceLazy 28570 28669 +0.3% 1.00x (?)
DropWhileAnyCollection 25155 24940 -0.9% 1.01x
DropWhileAnyCollectionLazy 27258 27403 +0.5% 0.99x (?)
DropWhileAnySeqCRangeIter 32014 31962 -0.2% 1.00x (?)
DropWhileAnySeqCRangeIterLazy 27137 27153 +0.1% 1.00x (?)
DropWhileAnySeqCntRange 25071 24641 -1.7% 1.02x
DropWhileAnySeqCntRangeLazy 27293 27563 +1.0% 0.99x (?)
DropWhileAnySequence 16120 16163 +0.3% 1.00x
DropWhileAnySequenceLazy 12438 12385 -0.4% 1.00x (?)
DropWhileArray 9932 9920 -0.1% 1.00x (?)
DropWhileArrayLazy 17015 17303 +1.7% 0.98x
DropWhileCountableRange 6231 6237 +0.1% 1.00x (?)
DropWhileCountableRangeLazy 26164 26239 +0.3% 1.00x
DropWhileSequence 15044 15032 -0.1% 1.00x (?)
DropWhileSequenceLazy 11163 11201 +0.3% 1.00x
ErrorHandling 3813 3811 -0.1% 1.00x (?)
GlobalClass 0 0 +0.0% 1.00x
Hanoi 17473 17487 +0.1% 1.00x (?)
HashQuadratic 52432953 52404216 -0.1% 1.00x (?)
HashTest 18586 18604 +0.1% 1.00x (?)
Histogram 8958 9022 +0.7% 0.99x (?)
Integrate 395 394 -0.3% 1.00x
IterateData 12818 12791 -0.2% 1.00x (?)
Join 1268 1264 -0.3% 1.00x
LazilyFilteredArrays 1684162 1698992 +0.9% 0.99x (?)
LazilyFilteredRange 673231 674977 +0.3% 1.00x (?)
LinkedList 32915 32947 +0.1% 1.00x (?)
MapReduce 37612 37966 +0.9% 0.99x
MapReduceAnyCollection 37787 38200 +1.1% 0.99x
MapReduceAnyCollectionShort 49954 50509 +1.1% 0.99x (?)
MapReduceClass 43184 43095 -0.2% 1.00x
MapReduceClassShort 54206 54480 +0.5% 0.99x (?)
MapReduceLazyCollection 32788 33112 +1.0% 0.99x
MapReduceLazyCollectionShort 44198 44476 +0.6% 0.99x (?)
MapReduceLazySequence 25504 25307 -0.8% 1.01x (?)
MapReduceSequence 41039 41243 +0.5% 1.00x
MapReduceShort 50060 50119 +0.1% 1.00x (?)
MapReduceShortString 277 280 +1.1% 0.99x (?)
MapReduceString 2613 2590 -0.9% 1.01x
Memset 43996 43988 -0.0% 1.00x (?)
MonteCarloE 135044 134522 -0.4% 1.00x
MonteCarloPi 52580 52587 +0.0% 1.00x (?)
NSDictionaryCastToSwift 6463 6359 -1.6% 1.02x (?)
NSError 703 703 +0.0% 1.00x
NSStringConversion 1299 1302 +0.2% 1.00x (?)
NopDeinit 53306 51787 -2.8% 1.03x
ObjectAllocation 635 633 -0.3% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObject 25438 25571 +0.5% 0.99x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 7880 7863 -0.2% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 44688 45627 +2.1% 0.98x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 38712 39086 +1.0% 0.99x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 122452 122720 +0.2% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 7549 7922 +4.9% 0.95x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 99909 99065 -0.8% 1.01x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 93824 94230 +0.4% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObject 67719 67668 -0.1% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 7221 7260 +0.5% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 76083 76196 +0.1% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 65855 66248 +0.6% 0.99x (?)
ObjectiveCBridgeFromNSString 3997 4059 +1.6% 0.98x (?)
ObjectiveCBridgeFromNSStringForced 2729 2783 +2.0% 0.98x
ObjectiveCBridgeStubDataAppend 3690 3764 +2.0% 0.98x (?)
ObjectiveCBridgeStubDateAccess 1064 1029 -3.3% 1.03x
ObjectiveCBridgeStubDateMutation 485 499 +2.9% 0.97x
ObjectiveCBridgeStubFromArrayOfNSString 28794 28788 -0.0% 1.00x (?)
ObjectiveCBridgeStubFromNSDate 4037 3934 -2.6% 1.03x (?)
ObjectiveCBridgeStubFromNSDateRef 3946 3948 +0.1% 1.00x (?)
ObjectiveCBridgeStubFromNSString 940 974 +3.6% 0.97x
ObjectiveCBridgeStubFromNSStringRef 202 203 +0.5% 1.00x
ObjectiveCBridgeStubNSDataAppend 2619 2621 +0.1% 1.00x (?)
ObjectiveCBridgeStubNSDateMutationRef 15152 15388 +1.6% 0.98x (?)
ObjectiveCBridgeStubNSDateRefAccess 1209 1208 -0.1% 1.00x (?)
ObjectiveCBridgeStubToArrayOfNSString 29130 29209 +0.3% 1.00x (?)
ObjectiveCBridgeStubToNSDate 15391 15194 -1.3% 1.01x (?)
ObjectiveCBridgeStubToNSDateRef 3387 3394 +0.2% 1.00x (?)
ObjectiveCBridgeStubToNSString 1568 1567 -0.1% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 149 149 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 236221 238112 +0.8% 0.99x (?)
ObjectiveCBridgeStubURLAppendPathRef 237330 236541 -0.3% 1.00x (?)
ObjectiveCBridgeToNSArray 29276 29290 +0.0% 1.00x (?)
ObjectiveCBridgeToNSDictionary 51822 53574 +3.4% 0.97x (?)
ObjectiveCBridgeToNSSet 41229 41467 +0.6% 0.99x (?)
ObjectiveCBridgeToNSString 1314 1292 -1.7% 1.02x (?)
ObserverClosure 6640 6636 -0.1% 1.00x (?)
ObserverForwarderStruct 4794 4813 +0.4% 1.00x (?)
ObserverPartiallyAppliedMethod 8138 8114 -0.3% 1.00x (?)
ObserverUnappliedMethod 8386 8387 +0.0% 1.00x (?)
Phonebook 24488 25372 +3.6% 0.97x
PolymorphicCalls 2971 2954 -0.6% 1.01x
PopFrontArray 7332 7292 -0.5% 1.01x (?)
PopFrontArrayGeneric 6268 6308 +0.6% 0.99x
PopFrontUnsafePointer 98805 97442 -1.4% 1.01x (?)
PrefixAnyCollection 19411 18998 -2.1% 1.02x (?)
PrefixAnyCollectionLazy 135994 135653 -0.3% 1.00x (?)
PrefixAnySeqCRangeIter 24229 24281 +0.2% 1.00x (?)
PrefixAnySeqCRangeIterLazy 24236 24152 -0.3% 1.00x (?)
PrefixAnySeqCntRange 19225 18967 -1.3% 1.01x
PrefixAnySeqCntRangeLazy 19204 19003 -1.0% 1.01x
PrefixAnySequence 11849 11836 -0.1% 1.00x (?)
PrefixAnySequenceLazy 11787 11809 +0.2% 1.00x (?)
PrefixArray 6389 6185 -3.2% 1.03x
PrefixArrayLazy 45197 44768 -0.9% 1.01x
PrefixCountableRange 334 339 +1.5% 0.99x
PrefixCountableRangeLazy 37925 37872 -0.1% 1.00x (?)
PrefixSequence 10699 10750 +0.5% 1.00x
PrefixSequenceLazy 10690 10751 +0.6% 0.99x
PrefixWhileAnyCollection 36528 36310 -0.6% 1.01x
PrefixWhileAnyCollectionLazy 22526 22654 +0.6% 0.99x (?)
PrefixWhileAnySeqCRangeIter 40596 40843 +0.6% 0.99x (?)
PrefixWhileAnySeqCRangeIterLazy 22557 22566 +0.0% 1.00x (?)
PrefixWhileAnySeqCntRange 36520 36082 -1.2% 1.01x (?)
PrefixWhileAnySeqCntRangeLazy 22542 22768 +1.0% 0.99x (?)
PrefixWhileAnySequence 29656 29690 +0.1% 1.00x (?)
PrefixWhileAnySequenceLazy 11392 11343 -0.4% 1.00x
PrefixWhileArray 16968 16945 -0.1% 1.00x (?)
PrefixWhileArrayLazy 14694 14691 -0.0% 1.00x (?)
PrefixWhileCountableRange 17840 17712 -0.7% 1.01x
PrefixWhileCountableRangeLazy 21739 21763 +0.1% 1.00x
PrefixWhileSequence 28336 28345 +0.0% 1.00x (?)
PrefixWhileSequenceLazy 10460 10406 -0.5% 1.01x
Prims 8876 8897 +0.2% 1.00x (?)
ProtocolDispatch 7051 6945 -1.5% 1.02x
ProtocolDispatch2 489 490 +0.2% 1.00x
RC4 20026 20183 +0.8% 0.99x
RGBHistogram 34133 33812 -0.9% 1.01x (?)
RGBHistogramOfObjects 99812 98739 -1.1% 1.01x (?)
RangeAssignment 5815 5740 -1.3% 1.01x (?)
RecursiveOwnedParameter 9658 9456 -2.1% 1.02x
ReversedArray 587 590 +0.5% 0.99x (?)
ReversedBidirectional 73618 73448 -0.2% 1.00x (?)
ReversedDictionary 25965 25902 -0.2% 1.00x (?)
SetExclusiveOr 20939 21101 +0.8% 0.99x (?)
SetExclusiveOr_OfObjects 41209 41304 +0.2% 1.00x (?)
SetIntersect 10587 10595 +0.1% 1.00x (?)
SetIntersect_OfObjects 11330 11342 +0.1% 1.00x (?)
SetIsSubsetOf 1636 1633 -0.2% 1.00x (?)
SetIsSubsetOf_OfObjects 1519 1529 +0.7% 0.99x
SetUnion 12010 12090 +0.7% 0.99x
SetUnion_OfObjects 29505 29733 +0.8% 0.99x
SevenBoom 1603 1620 +1.1% 0.99x (?)
Sim2DArray 30016 30017 +0.0% 1.00x (?)
SortLargeExistentials 17897 17672 -1.3% 1.01x
SortLettersInPlace 2910 2822 -3.0% 1.03x
SortSortedStrings 1408 1402 -0.4% 1.00x
SortStrings 2483 2449 -1.4% 1.01x
SortStringsUnicode 8841 8604 -2.7% 1.03x
StackPromo 102698 103121 +0.4% 1.00x (?)
StaticArray 4665 4610 -1.2% 1.01x (?)
StrComplexWalk 6925 6844 -1.2% 1.01x
StrToInt 5387 5640 +4.7% 0.96x
StringBuilder 2753 2764 +0.4% 1.00x (?)
StringBuilderLong 1100 1088 -1.1% 1.01x
StringEdits 497761 486473 -2.3% 1.02x
StringEqualPointerComparison 9739 9717 -0.2% 1.00x (?)
StringHasPrefix 1737 1691 -2.6% 1.03x
StringHasPrefixUnicode 16428 16478 +0.3% 1.00x (?)
StringHasSuffixUnicode 63219 63483 +0.4% 1.00x
StringInterpolation 12031 11982 -0.4% 1.00x (?)
StringMatch 31179 31192 +0.0% 1.00x (?)
StringUTF16Builder 3582 3588 +0.2% 1.00x (?)
StringWithCString 136023 135941 -0.1% 1.00x (?)
SuffixAnyCollection 6508 6351 -2.4% 1.02x (?)
SuffixAnyCollectionLazy 45263 44934 -0.7% 1.01x (?)
SuffixAnySeqCRangeIter 41153 41239 +0.2% 1.00x
SuffixAnySeqCRangeIterLazy 41141 41108 -0.1% 1.00x (?)
SuffixAnySeqCntRange 6420 6327 -1.4% 1.01x
SuffixAnySeqCntRangeLazy 6414 6342 -1.1% 1.01x (?)
SuffixAnySequence 26792 26822 +0.1% 1.00x (?)
SuffixAnySequenceLazy 27077 26945 -0.5% 1.00x (?)
SuffixArray 2138 2072 -3.1% 1.03x
SuffixArrayLazy 15062 14987 -0.5% 1.01x (?)
SuffixCountableRange 118 118 +0.0% 1.00x
SuffixCountableRangeLazy 12633 12605 -0.2% 1.00x (?)
SuffixSequence 26472 26410 -0.2% 1.00x
SuffixSequenceLazy 26395 26429 +0.1% 1.00x (?)
SuperChars 316271 315718 -0.2% 1.00x (?)
TwoSum 4282 4329 +1.1% 0.99x
TypeFlood 163 168 +3.1% 0.97x (?)
UTF8Decode 36898 36994 +0.3% 1.00x
Walsh 11839 11875 +0.3% 1.00x (?)
XorLoop 23706 23708 +0.0% 1.00x (?)
**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

@airspeedswift airspeedswift force-pushed the literal-element branch 2 times, most recently from e6197f3 to 19db13c Compare May 10, 2017 21:19
@airspeedswift
Copy link
Member Author

@swift-ci please test macOS platform

@airspeedswift
Copy link
Member Author

@swift-ci please test

@airspeedswift
Copy link
Member Author

@swift-ci please test source compatibility

@airspeedswift
Copy link
Member Author

@swift-ci please test

@airspeedswift
Copy link
Member Author

@swift-ci please clean test linux platform

@airspeedswift
Copy link
Member Author

@swift-ci please clean test macOS platform

@airspeedswift airspeedswift merged commit ea2f64c into apple:master May 14, 2017
airspeedswift added a commit to airspeedswift/swift that referenced this pull request May 14, 2017
…nt to ArrayLiteralElement (apple#8990)

* Give Sequence a top-level Element, constrain Iterator to match

* Remove many instances of Iterator.

* Fixed various hard-coded tests

* XFAIL a few tests that need further investigation

* Change assoc type for arrayLiteralConvertible

* Mop up remaining "better expressed as a where clause" warnings

* Fix UnicodeDecoders prototype test

* Fix UIntBuffer

* Fix hard-coded Element identifier in CSDiag

* Fix up more tests

* Account for flatMap changes
airspeedswift added a commit that referenced this pull request May 16, 2017
* [stdlib] Add Sequence.Element, change ExpressibleByArrayLiteral.Element to ArrayLiteralElement (#8990)

* Give Sequence a top-level Element, constrain Iterator to match

* Remove many instances of Iterator.

* Fixed various hard-coded tests

* XFAIL a few tests that need further investigation

* Change assoc type for arrayLiteralConvertible

* Mop up remaining "better expressed as a where clause" warnings

* Fix UnicodeDecoders prototype test

* Fix UIntBuffer

* Fix hard-coded Element identifier in CSDiag

* Fix up more tests

* Account for flatMap changes

* Un-XFAIL crashers that don't crash on the 4.0 branch
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.

None yet

4 participants