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

Implement BinaryInteger.words #10558

Merged
merged 10 commits into from Jul 13, 2017
Merged

Conversation

lorentey
Copy link
Member

This PR is a followup to #10460, providing a better fix for SR-5275 by implementing BinaryInteger.words as the primary way of accessing the words of an integer. To achieve this, it defines the words property for all standard fixed with integer types, including DoubleWidth. The Words associated types are defined as views of a corresponding integer value.

(To reduce the number of such collection types, only UInt.Words (and on 32-bit platforms, UInt64.Words) are actually defined; the other standard integers use typealiases to one of these two.)

For existing code in the standard library that accesses words in generic contexts, I had to work around not being able to explicitly constrain BinaryInteger.Words to a Collection of UInt elements. Currently only FixedWidthInteger.init<T: BinaryInteger>(extendingOrTruncating:) uses words in such a way, but it is a rather important initializer that is used in all sorts of integer conversions.

I needed to define some sort of simplified internal API to iterate over the words of an integer in generic contexts. While the original _word(at:) & _countRepresentedWords APIs look ideal for this, it does not seem possible to define them in terms of words without index arithmetic operations that involve numeric conversions. Numeric conversions in _word(at:) lead to tricky infinite recursions when the method is called from the initializers implementing these conversions.

So as a proof of concept I added a BinaryInteger._wordsIterator() method that returns a type-erased iterator over the words of the integer. This is a somewhat ridiculous thing to do during, say, an UInt16 to Int32 conversion, but it does prove that the concept is viable. (The code passes all tests, although it does require a small change in a SILOptimizer test case.)

@moiseev
Copy link
Contributor

moiseev commented Jun 24, 2017

/cc @dabrahams

@moiseev
Copy link
Contributor

moiseev commented Jun 24, 2017

@swift-ci Please test

@lorentey
Copy link
Member Author

lorentey commented Jun 24, 2017

There are some further things we could do to improve this code:

One option is to define an internal shortcut API for doing conversions between standard integer types. This would eliminate the use of an iterator for these basic cases, potentially speeding things up.

We could also consider changing the documented public API to require BinaryInteger.Words to be a RandomAccessCollection with integer indices. This may allow us to revive _word(at:), since it wouldn't need to do generic integer conversions for its index arithmetic. But this would probably be wasted effort, given that we wouldn't need the extra constraint after it becomes possible to use Words in generic contexts.

@swift-ci
Copy link
Collaborator

Build failed
Jenkins build - Swift Test Linux Platform
Git Commit - 6c77e14488e357f9b4f30f0ae7621f282b53cb6f
Test requested by - @moiseev

@swift-ci
Copy link
Collaborator

Build failed
Jenkins build - Swift Test OS X Platform
Git Commit - 6c77e14488e357f9b4f30f0ae7621f282b53cb6f
Test requested by - @moiseev

@xwu
Copy link
Collaborator

xwu commented Jun 25, 2017

I know @moiseev has thoughts about the use of this technique, but another workaround would be to define a protocol _BinaryInteger which has associatedtype Words, then conforming BinaryInteger : _BinaryInteger where Words : Collection, Words.Element == UInt.

@lorentey
Copy link
Member Author

@xwu We would need to split SignedInteger, too, because of Collection.IndexDistance. 😞

@xwu
Copy link
Collaborator

xwu commented Jun 25, 2017

@lorentey Sorry, why?

@lorentey
Copy link
Member Author

@xwu Ah, evidently I do not understand the basic underlying issue with Words's constraints yet. I assumed the problem was with the mutually recursive protocol constraints in BinaryInteger.Words and Collection.IndexDistance, but to my surprise, this compiles:

protocol A {
  associatedtype T : B
}
protocol B {
  associatedtype T : A
}

This is great; I'll try to implement your approach, and see where it gets us.

@jrose-apple
Copy link
Contributor

It works as long as they're in the same file or you compile with whole-module optimization. Not a great constraint, but…

@lorentey lorentey force-pushed the binaryinteger-words branch 3 times, most recently from c21cfef to 7682e07 Compare July 5, 2017 17:25
@lorentey
Copy link
Member Author

lorentey commented Jul 5, 2017

@xwu Sadly I couldn't get the constraint to work; I keep running into compiler limitations. On master it is currently possible to constrain BinaryInteger.Words to Sequence, but constraining its Element type to UInt or switching to a Collection leads to compile-time crashes no matter how I introduce the constraints.

I could, however, modify the PR to bring integer conversion performance to roughly the same level as it is on master. To do this, I upgraded _lowUWord from the standard integer types into a BinaryInteger requirement. Unfortunately the generic FixedWidthInteger.init(extendingOrTruncating:) still proved ~40% slower than before in my benchmarks, so I also had to add manually optimized overrides in [U]Int*.

So the PR as it stands replaces BinaryInteger._word(at:) and _countRepresentedWords with _wordsIterator() and _lowUWord, and provides default implementations for both of these requirements when a binary integer's Words type conforms to the documented constraints.
This makes it possible to implement BinaryInteger without touching underscored API, but it does have two drawbacks:

  1. It does not seem practical to access words in a BinaryInteger.init(extendingOrTruncating:) implementation outside of the standard library. It is still possible to provide an implementation with careful use of masks, shifts, and conversions to/from UInt though. This probably won't be as efficient, but at least it is possible.

  2. When a BinaryInteger author neglects to conform Words to the documented requirements, the compiler will complain about missing _wordsIterator() and _lowUWord implementations, which is terribly misleading.

@xwu
Copy link
Collaborator

xwu commented Jul 5, 2017

@lorentey Mind if I have a stab at this over the weekend? I am very curious why the compile-time crashes are happening. Mocking up this protocol hierarchy in a playground doesn't crash.

@xwu
Copy link
Collaborator

xwu commented Jul 6, 2017

@lorentey I think I've got a path forward, which turns out to be much simpler. New insight (for me, at least):

We don't need to be able to express the intended constraint (which, you're right, strangely won't compile).

Instead, we only need to supply a default implementation of FixedWidthInteger.init(extendingOrTruncating:) where Words : Collection, Words.Element == UInt. Then, we take advantage of the fact that associated types can be given default values.

That much is doable.

@lorentey
Copy link
Member Author

lorentey commented Jul 6, 2017

@xwu Of course, go right ahead! It would be so much better if we could make the constraints work.

(I couldn’t reduce the issue, either; there is likely a critical puzzle piece that I’m still missing. I’ll keep looking for it, too.) 🙂

@lorentey
Copy link
Member Author

lorentey commented Jul 6, 2017

@xwu But we can’t add the constraint on the protocol requirement itself, since it would need to be propagated to every place where an integer conversion is used in generic context. So we would still need to implement the unconstrained variant, wouldn’t we? (I don’t see how setting a default value would help, though. Maybe I misunderstood your approach!)

@xwu
Copy link
Collaborator

xwu commented Jul 6, 2017

@lorentey My approach would change nothing on the protocol requirement; however, the default implementation would be constrained. Therefore, no use in a generic or concrete context is affected.

The default value is not crucial to the solution; it's icing for a transition from the status quo and helps the stdlib compile with minimal changes.

WIP (the linker is complaining about strings for some reason; I may need to do a clean build):
https://github.com/apple/swift/compare/master...xwu:words-words-words?expand=1

@lorentey
Copy link
Member Author

lorentey commented Jul 7, 2017

@xwu Interesting! What I don't understand is how constraining Self.Words (but not T.Words) would enable access to source.words.first and source.words.reversed(). In the body of FixedWidthInteger.init<T : BinaryInteger>(extendingOrTruncating:), T.Words still looks unconstrained to me, so we know nothing about its structure. (Self.Words is constrained, but the method doesn't use it; AFAICS the type Thas no relation to Self.)

(An associated type's default value can have no effect in generic contexts, because implementations are free to replace the default type with any other type that satisfies the constraints.)

The fundamental problem is that the generic extending/truncating initializer requirement uses an unconstrained binary integer. As long as BinaryInteger.Words has no explicit constraints, it is not possible to use the words property in the implementation of init(extendingOrTruncating:), since we know essentially nothing about its return value. This PR works around this by adding (hopefully temporary) alternative API to words to get around this problem. (It needs to define new API because the old _word(at:) method is not suitable: It's not possible to implement it in terms of words without the use of generic index arithmetic, which would involve integer conversions leading to infinite recursion.)

@lorentey
Copy link
Member Author

lorentey commented Jul 7, 2017

If we're OK with modifying the original proposal, I think it would be possible in today's compiler to use a constraint like associatedtype Words : Sequence where Element == Word, where Word is a tiny wrapper around an UInt-sized value that does not implement BinaryInteger but is easily convertible to/from an UInt.

Using a sequence rather than a collection seems like a drastic change. However, if the only major use case for words is to implement integer conversions, then the collection API is only partially usable anyway (due to the use of generic integer conversions in index arithmetic operations), and I don't think we need to do more than a single pass through words to do integer conversions, anyway.

Adding Word would be ugly, but at least we would still be able to get rid of it if/when recursive conformances become a thing, by replacing it with a typealias for UInt . (It could be a nested struct in the BinaryInteger protocol, with no members other than an initializer taking an UInt value.)

@dabrahams
Copy link
Collaborator

dabrahams commented Jul 7, 2017

I haven't read the details, but if you're having a problem with recursive constraints, the workaround these days is to declare the associatedtype in a less-refined concept, e.g.

protocol _FixedWidthInteger {
  associatedtype Words
}

protocol FixedWidthInteger : BinaryInteger, _FixedWidthInteger
where Words : Sequence && Words.Element : FixedWidthInteger
{
  ...
}

HTH

@xwu
Copy link
Collaborator

xwu commented Jul 7, 2017

@dabrahams That is the initial suggestion I made. As @lorentey's experimentation showed (which I was able to reproduce), trying to use this particular workaround is fine with Words : Sequence but breaks horribly with Words : Collection. With the latter constraint, the compiler crashes while trying to compile functions like Swift.min, which makes no sense whatsoever, suggesting something going horribly awry.

@xwu
Copy link
Collaborator

xwu commented Jul 7, 2017

@lorentey Ouch, that's a terribly silly think-o on my part.

So, to summarize, what's clear is that both the desired design as well as the go-to workaround for it are not currently possible.

IMO, a new workaround that involves a new type Word seamlessly bridgeable to and from UInt seems just as much work, if not more so, than fixing the compiler bug that causes the go-to workaround to crash.

In the meantime, I wonder if we get meaningfully closer to the final design by replacing one set of underscored implementations for another. Honestly, words(at:) seems like pretty good API design from the perspective of what's possible in Swift 4.

@lorentey
Copy link
Member Author

lorentey commented Jul 7, 2017

@dabrahams, @xwu I think the problems with Words : Collection are because of Collection.IndexDistance.Words, which thus gets constrained to be a Collection itself. I tried creating a simplified _SignedInteger protocol for IndexDistance, but it led to far too many problems all over the codebase.

Switching to Words : Sequence solves the IndexDistance problem, but unfortunately adding the second constraint on Words.Element == UInt causes similar compiler crashes (in/near the generic signature builder).

@xwu
Copy link
Collaborator

xwu commented Jul 7, 2017

@lorentey Well, if that's the problem, can't we just rename BinaryInteger.Words? Let's call it, uncreatively, BinaryIntegerWords (à la FloatingPointSign) and see if that'll compile.

@lorentey
Copy link
Member Author

lorentey commented Jul 7, 2017

@xwu: I could get the Words : Sequence where Words.Element == Word idea working relatively easily. The Word type is just a wrapper around a Builtin.Int64/32, just like an UInt -- there is no special implicit bridging, it has to be explicitly converted to/from UInts using custom initializers.

I pushed a new commit that implements it:

e2864f9

The drawback is of course that Word is a new public type. We can probably nest it somewhere, but it doesn't serve a useful function beyond being a workaround for a compiler limitation.

@dabrahams
Copy link
Collaborator

dabrahams commented Jul 7, 2017 via email

@@ -2320,24 +2292,24 @@ ${unsafeOperationComment(x.operator)}
}
% end

@inline(__always)
@_transparent
Copy link
Contributor

Choose a reason for hiding this comment

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

This is scary!

Copy link
Member Author

Choose a reason for hiding this comment

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

Yep; I made this change at the last minute to work around a weird performance regression. I should probably change it back.

Copy link
Contributor

Choose a reason for hiding this comment

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

It was changed from transparent because of the "sil explosion" at compile time. Watch the memory used by the swiftc while building the standard library, and if it hits ~6Gb – that's this.

Copy link
Member Author

Choose a reason for hiding this comment

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

Holy moly! I'll revert with prejudice.

public typealias Indices = CountableRange<Int>
public typealias SubSequence = BidirectionalSlice<${Self}.Words>

public var _value: ${Self}
Copy link
Contributor

Choose a reason for hiding this comment

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

public?

Copy link
Member Author

Choose a reason for hiding this comment

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

I made it public to enable @_transparent/@inline(__always) members. Since we have _lowWord, this collection doesn't get used much, so I'll remove the attributes and change this to internal. Nice!

(I see @_versioned is a thing; I should read up on it. Any pointers? 🙂)

Copy link
Contributor

Choose a reason for hiding this comment

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

count: end - twosComplementData.count))
public var words: [UInt] {
_sanityCheck(UInt.bitWidth % Word.bitWidth == 0)
var words: [UInt] = []
Copy link
Contributor

Choose a reason for hiding this comment

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

Can we reserveCapacity here?

@moiseev
Copy link
Contributor

moiseev commented Jul 10, 2017

@swift-ci Please test

@moiseev
Copy link
Contributor

moiseev commented Jul 10, 2017

@swift-ci Please smoke benchmark

@moiseev
Copy link
Contributor

moiseev commented Jul 10, 2017

@swift-ci Please Test Source Compatibility

@dabrahams
Copy link
Collaborator

@swift-ci Please test

@dabrahams
Copy link
Collaborator

@swift-ci Please smoke benchmark

@dabrahams
Copy link
Collaborator

@swift-ci Please Test Source Compatibility

@lorentey
Copy link
Member Author

lorentey commented Jul 10, 2017 via email

@swift-ci
Copy link
Collaborator

Build comment file:

Optimized (O)

Regression (1)
TEST OLD NEW DELTA SPEEDUP
ObjectiveCBridgeStubNSDateMutationRef 11906 12848 +7.9% 0.93x (?)
Improvement (3)
TEST OLD NEW DELTA SPEEDUP
PopFrontArrayGeneric 1205 1081 -10.3% 1.11x (?)
DropLastAnySeqCRangeIterLazy 4893 4569 -6.6% 1.07x
ArrayInClass 71 67 -5.6% 1.06x (?)
No Changes (317)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 3035 3033 -0.1% 1.00x (?)
AnyHashableWithAClass 67526 67516 -0.0% 1.00x (?)
Array2D 2032 2046 +0.7% 0.99x (?)
ArrayAppend 773 774 +0.1% 1.00x (?)
ArrayAppendArrayOfInt 596 596 +0.0% 1.00x
ArrayAppendAscii 10002 9988 -0.1% 1.00x (?)
ArrayAppendFromGeneric 596 597 +0.2% 1.00x
ArrayAppendGenericStructs 1268 1227 -3.2% 1.03x
ArrayAppendLatin1 30306 30300 -0.0% 1.00x (?)
ArrayAppendLazyMap 942 933 -1.0% 1.01x
ArrayAppendOptionals 1256 1241 -1.2% 1.01x
ArrayAppendRepeatCol 838 838 +0.0% 1.00x
ArrayAppendReserved 534 535 +0.2% 1.00x
ArrayAppendSequence 944 944 +0.0% 1.00x
ArrayAppendStrings 13597 13649 +0.4% 1.00x (?)
ArrayAppendToFromGeneric 596 596 +0.0% 1.00x
ArrayAppendToGeneric 596 596 +0.0% 1.00x
ArrayAppendUTF16 29087 29277 +0.7% 0.99x (?)
ArrayLiteral 1229 1228 -0.1% 1.00x (?)
ArrayOfGenericPOD 219 219 +0.0% 1.00x
ArrayOfGenericRef 4036 4023 -0.3% 1.00x
ArrayOfPOD 166 166 +0.0% 1.00x
ArrayOfRef 3902 3910 +0.2% 1.00x (?)
ArrayPlusEqualArrayOfInt 597 597 +0.0% 1.00x
ArrayPlusEqualFiveElementCollection 4712 4707 -0.1% 1.00x (?)
ArrayPlusEqualSingleElementCollection 774 775 +0.1% 1.00x (?)
ArrayPlusEqualThreeElements 1587 1590 +0.2% 1.00x
ArraySubscript 1481 1478 -0.2% 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 148 148 +0.0% 1.00x
ByteSwap 118 118 +0.0% 1.00x
CStringLongAscii 4252 4254 +0.0% 1.00x (?)
CStringLongNonAscii 2070 2070 +0.0% 1.00x
CStringShortAscii 4808 4819 +0.2% 1.00x (?)
Calculator 35 35 +0.0% 1.00x
CaptureProp 4582 4639 +1.2% 0.99x (?)
CharIndexing_ascii_unicodeScalars 14621 14618 -0.0% 1.00x
CharIndexing_ascii_unicodeScalars_Backwards 14198 14198 +0.0% 1.00x
CharIndexing_chinese_unicodeScalars 11078 11081 +0.0% 1.00x (?)
CharIndexing_chinese_unicodeScalars_Backwards 10757 10756 -0.0% 1.00x (?)
CharIndexing_japanese_unicodeScalars 17501 17499 -0.0% 1.00x (?)
CharIndexing_japanese_unicodeScalars_Backwards 17020 17030 +0.1% 1.00x
CharIndexing_korean_unicodeScalars 14177 14176 -0.0% 1.00x (?)
CharIndexing_korean_unicodeScalars_Backwards 13787 13785 -0.0% 1.00x
CharIndexing_punctuatedJapanese_unicodeScalars 2670 2670 +0.0% 1.00x
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 2595 2594 -0.0% 1.00x
CharIndexing_punctuated_unicodeScalars 3335 3334 -0.0% 1.00x (?)
CharIndexing_punctuated_unicodeScalars_Backwards 3243 3242 -0.0% 1.00x (?)
CharIndexing_russian_unicodeScalars 12184 12184 +0.0% 1.00x
CharIndexing_russian_unicodeScalars_Backwards 11853 11853 +0.0% 1.00x
CharIndexing_tweet_unicodeScalars 28846 28866 +0.1% 1.00x (?)
CharIndexing_tweet_unicodeScalars_Backwards 28038 28108 +0.2% 1.00x (?)
CharIndexing_utf16_unicodeScalars 82607 82577 -0.0% 1.00x (?)
CharIndexing_utf16_unicodeScalars_Backwards 98897 98863 -0.0% 1.00x (?)
CharIteration_ascii_unicodeScalars 16241 16243 +0.0% 1.00x (?)
CharIteration_ascii_unicodeScalars_Backwards 20139 20137 -0.0% 1.00x (?)
CharIteration_chinese_unicodeScalars 12307 12310 +0.0% 1.00x (?)
CharIteration_chinese_unicodeScalars_Backwards 15239 15241 +0.0% 1.00x (?)
CharIteration_japanese_unicodeScalars 19435 19439 +0.0% 1.00x
CharIteration_japanese_unicodeScalars_Backwards 24119 24118 -0.0% 1.00x (?)
CharIteration_korean_unicodeScalars 15741 15736 -0.0% 1.00x (?)
CharIteration_korean_unicodeScalars_Backwards 19526 19525 -0.0% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars 2963 2963 +0.0% 1.00x
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 3608 3607 -0.0% 1.00x (?)
CharIteration_punctuated_unicodeScalars 3701 3700 -0.0% 1.00x
CharIteration_punctuated_unicodeScalars_Backwards 4525 4525 +0.0% 1.00x
CharIteration_russian_unicodeScalars 13545 13534 -0.1% 1.00x
CharIteration_russian_unicodeScalars_Backwards 16778 16770 -0.0% 1.00x
CharIteration_tweet_unicodeScalars 31954 31959 +0.0% 1.00x (?)
CharIteration_tweet_unicodeScalars_Backwards 39851 39861 +0.0% 1.00x (?)
CharIteration_utf16_unicodeScalars 91469 91466 -0.0% 1.00x (?)
CharIteration_utf16_unicodeScalars_Backwards 150007 149912 -0.1% 1.00x (?)
CharacterLiteralsLarge 6034 6038 +0.1% 1.00x (?)
CharacterLiteralsSmall 403 403 +0.0% 1.00x
Chars 805 805 +0.0% 1.00x
ClassArrayGetter 14 14 +0.0% 1.00x
DeadArray 186 186 +0.0% 1.00x
Dictionary 556 556 +0.0% 1.00x
Dictionary2 1828 1827 -0.1% 1.00x (?)
Dictionary2OfObjects 3280 3300 +0.6% 0.99x (?)
Dictionary3 441 441 +0.0% 1.00x
Dictionary3OfObjects 885 887 +0.2% 1.00x (?)
DictionaryBridge 2726 2693 -1.2% 1.01x (?)
DictionaryGroup 275 275 +0.0% 1.00x
DictionaryGroupOfObjects 1791 1784 -0.4% 1.00x (?)
DictionaryLiteral 1474 1477 +0.2% 1.00x (?)
DictionaryOfObjects 2317 2318 +0.0% 1.00x (?)
DictionaryRemove 2415 2438 +1.0% 0.99x
DictionaryRemoveOfObjects 23250 23218 -0.1% 1.00x (?)
DictionarySwap 429 429 +0.0% 1.00x
DictionarySwapOfObjects 6863 6911 +0.7% 0.99x (?)
DropFirstAnyCollection 57 56 -1.8% 1.02x
DropFirstAnyCollectionLazy 45076 44999 -0.2% 1.00x (?)
DropFirstAnySeqCRangeIter 26205 26204 -0.0% 1.00x (?)
DropFirstAnySeqCRangeIterLazy 26237 26234 -0.0% 1.00x (?)
DropFirstAnySeqCntRange 50 50 +0.0% 1.00x
DropFirstAnySeqCntRangeLazy 50 50 +0.0% 1.00x
DropFirstAnySequence 5758 5755 -0.1% 1.00x (?)
DropFirstAnySequenceLazy 5749 5749 +0.0% 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 2094 2094 +0.0% 1.00x
DropFirstSequenceLazy 2118 2118 +0.0% 1.00x
DropLastAnyCollection 22 22 +0.0% 1.00x
DropLastAnyCollectionLazy 15028 15075 +0.3% 1.00x
DropLastAnySeqCRangeIter 4568 4579 +0.2% 1.00x (?)
DropLastAnySeqCntRange 16 16 +0.0% 1.00x
DropLastAnySeqCntRangeLazy 16 16 +0.0% 1.00x
DropLastAnySequence 6832 6835 +0.0% 1.00x (?)
DropLastAnySequenceLazy 6502 6497 -0.1% 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 565 566 +0.2% 1.00x
DropLastSequenceLazy 566 565 -0.2% 1.00x (?)
DropWhileAnyCollection 70 70 +0.0% 1.00x
DropWhileAnyCollectionLazy 103 103 +0.0% 1.00x
DropWhileAnySeqCRangeIter 21390 21392 +0.0% 1.00x (?)
DropWhileAnySeqCRangeIterLazy 103 103 +0.0% 1.00x
DropWhileAnySeqCntRange 64 64 +0.0% 1.00x
DropWhileAnySeqCntRangeLazy 103 103 +0.0% 1.00x
DropWhileAnySequence 6563 6561 -0.0% 1.00x (?)
DropWhileAnySequenceLazy 2032 2032 +0.0% 1.00x
DropWhileArray 37 37 +0.0% 1.00x
DropWhileArrayLazy 78 78 +0.0% 1.00x
DropWhileCountableRange 36 36 +0.0% 1.00x
DropWhileCountableRangeLazy 68 68 +0.0% 1.00x
DropWhileSequence 1548 1548 +0.0% 1.00x
DropWhileSequenceLazy 65 65 +0.0% 1.00x
EqualStringSubstring 386 386 +0.0% 1.00x
EqualSubstringString 384 385 +0.3% 1.00x
EqualSubstringSubstring 389 389 +0.0% 1.00x
EqualSubstringSubstringGenericEquatable 389 389 +0.0% 1.00x
ErrorHandling 2914 2835 -2.7% 1.03x (?)
Hanoi 3489 3498 +0.3% 1.00x (?)
HashTest 1665 1666 +0.1% 1.00x (?)
Histogram 301 300 -0.3% 1.00x
Integrate 262 262 +0.0% 1.00x
IterateData 758 758 +0.0% 1.00x
Join 378 388 +2.6% 0.97x (?)
LazilyFilteredArrays 64822 65140 +0.5% 1.00x (?)
LazilyFilteredRange 3889 3885 -0.1% 1.00x (?)
LessSubstringSubstring 384 384 +0.0% 1.00x
LessSubstringSubstringGenericComparable 384 384 +0.0% 1.00x
LinkedList 7102 7101 -0.0% 1.00x (?)
MapReduce 328 328 +0.0% 1.00x
MapReduceAnyCollection 302 306 +1.3% 0.99x (?)
MapReduceAnyCollectionShort 2029 2036 +0.3% 1.00x (?)
MapReduceClass 3073 3067 -0.2% 1.00x (?)
MapReduceClassShort 4572 4591 +0.4% 1.00x (?)
MapReduceLazyCollection 15 15 +0.0% 1.00x
MapReduceLazyCollectionShort 45 45 +0.0% 1.00x
MapReduceLazySequence 90 90 +0.0% 1.00x
MapReduceSequence 456 456 +0.0% 1.00x
MapReduceShort 1927 1929 +0.1% 1.00x (?)
MapReduceShortString 21 21 +0.0% 1.00x
MapReduceString 92 93 +1.1% 0.99x
Memset 234 234 +0.0% 1.00x
MonteCarloE 10198 10200 +0.0% 1.00x (?)
MonteCarloPi 43900 43911 +0.0% 1.00x
NSDictionaryCastToSwift 5604 5499 -1.9% 1.02x
NSError 293 293 +0.0% 1.00x
NSStringConversion 778 775 -0.4% 1.00x (?)
NopDeinit 22923 22913 -0.0% 1.00x
ObjectAllocation 179 179 +0.0% 1.00x
ObjectiveCBridgeFromNSArrayAnyObject 25294 25261 -0.1% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 6151 6174 +0.4% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 52161 52282 +0.2% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 46332 45783 -1.2% 1.01x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 121099 121722 +0.5% 0.99x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 4985 4981 -0.1% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 107559 107297 -0.2% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 108792 111379 +2.4% 0.98x (?)
ObjectiveCBridgeFromNSSetAnyObject 65573 65185 -0.6% 1.01x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 4190 4215 +0.6% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 79272 79759 +0.6% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 79167 78525 -0.8% 1.01x (?)
ObjectiveCBridgeFromNSString 2117 2119 +0.1% 1.00x (?)
ObjectiveCBridgeFromNSStringForced 2949 2950 +0.0% 1.00x (?)
ObjectiveCBridgeStubDataAppend 3823 4004 +4.7% 0.95x (?)
ObjectiveCBridgeStubDateAccess 182 181 -0.5% 1.01x
ObjectiveCBridgeStubDateMutation 272 272 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 31456 31511 +0.2% 1.00x (?)
ObjectiveCBridgeStubFromNSDate 3612 3608 -0.1% 1.00x (?)
ObjectiveCBridgeStubFromNSDateRef 4068 4068 +0.0% 1.00x
ObjectiveCBridgeStubFromNSString 1100 1103 +0.3% 1.00x (?)
ObjectiveCBridgeStubFromNSStringRef 146 146 +0.0% 1.00x
ObjectiveCBridgeStubNSDataAppend 2379 2349 -1.3% 1.01x (?)
ObjectiveCBridgeStubNSDateRefAccess 313 312 -0.3% 1.00x
ObjectiveCBridgeStubToArrayOfNSString 29174 28318 -2.9% 1.03x (?)
ObjectiveCBridgeStubToNSDate 14942 15204 +1.8% 0.98x
ObjectiveCBridgeStubToNSDateRef 3203 3178 -0.8% 1.01x (?)
ObjectiveCBridgeStubToNSString 1524 1517 -0.5% 1.00x
ObjectiveCBridgeStubToNSStringRef 109 109 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 222073 223512 +0.6% 0.99x (?)
ObjectiveCBridgeStubURLAppendPathRef 222428 222838 +0.2% 1.00x (?)
ObjectiveCBridgeToNSArray 28348 28440 +0.3% 1.00x (?)
ObjectiveCBridgeToNSDictionary 47018 46282 -1.6% 1.02x (?)
ObjectiveCBridgeToNSSet 40264 39964 -0.7% 1.01x (?)
ObjectiveCBridgeToNSString 1269 1272 +0.2% 1.00x (?)
ObserverClosure 2280 2285 +0.2% 1.00x
ObserverForwarderStruct 1127 1123 -0.4% 1.00x (?)
ObserverPartiallyAppliedMethod 3777 3771 -0.2% 1.00x (?)
ObserverUnappliedMethod 2659 2691 +1.2% 0.99x (?)
OpenClose 51 51 +0.0% 1.00x
Phonebook 6130 6126 -0.1% 1.00x (?)
PolymorphicCalls 22 22 +0.0% 1.00x
PopFrontArray 1204 1206 +0.2% 1.00x (?)
PopFrontUnsafePointer 9522 9519 -0.0% 1.00x
PrefixAnyCollection 56 56 +0.0% 1.00x
PrefixAnyCollectionLazy 45074 45086 +0.0% 1.00x (?)
PrefixAnySeqCRangeIter 20564 20571 +0.0% 1.00x (?)
PrefixAnySeqCRangeIterLazy 20624 20644 +0.1% 1.00x (?)
PrefixAnySeqCntRange 50 50 +0.0% 1.00x
PrefixAnySeqCntRangeLazy 50 50 +0.0% 1.00x
PrefixAnySequence 5021 5020 -0.0% 1.00x (?)
PrefixAnySequenceLazy 4993 4992 -0.0% 1.00x (?)
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 1579 1578 -0.1% 1.00x (?)
PrefixSequenceLazy 1516 1516 +0.0% 1.00x
PrefixWhileAnyCollection 95 96 +1.1% 0.99x
PrefixWhileAnyCollectionLazy 75 75 +0.0% 1.00x
PrefixWhileAnySeqCRangeIter 12516 12553 +0.3% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 75 75 +0.0% 1.00x
PrefixWhileAnySeqCntRange 90 90 +0.0% 1.00x
PrefixWhileAnySeqCntRangeLazy 75 75 +0.0% 1.00x
PrefixWhileAnySequence 14018 13965 -0.4% 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 294 294 +0.0% 1.00x
PrefixWhileSequenceLazy 28 28 +0.0% 1.00x
Prims 768 765 -0.4% 1.00x (?)
ProtocolDispatch 3535 3530 -0.1% 1.00x (?)
ProtocolDispatch2 160 160 +0.0% 1.00x
RC4 160 160 +0.0% 1.00x
RGBHistogram 2378 2358 -0.8% 1.01x (?)
RGBHistogramOfObjects 24369 24470 +0.4% 1.00x
RangeAssignment 305 304 -0.3% 1.00x (?)
RecursiveOwnedParameter 2331 2330 -0.0% 1.00x
ReversedArray 49 51 +4.1% 0.96x (?)
ReversedBidirectional 29024 29048 +0.1% 1.00x
ReversedDictionary 115 112 -2.6% 1.03x (?)
SetExclusiveOr 3029 3041 +0.4% 1.00x (?)
SetExclusiveOr_OfObjects 9566 9553 -0.1% 1.00x (?)
SetIntersect 941 941 +0.0% 1.00x
SetIntersect_OfObjects 1718 1719 +0.1% 1.00x (?)
SetIsSubsetOf 366 366 +0.0% 1.00x
SetIsSubsetOf_OfObjects 359 359 +0.0% 1.00x
SetUnion 2750 2745 -0.2% 1.00x (?)
SetUnion_OfObjects 8078 8038 -0.5% 1.00x (?)
SevenBoom 1478 1470 -0.5% 1.01x (?)
Sim2DArray 276 276 +0.0% 1.00x
SortLargeExistentials 7792 7782 -0.1% 1.00x (?)
SortLettersInPlace 1147 1144 -0.3% 1.00x (?)
SortSortedStrings 871 871 +0.0% 1.00x
SortStrings 1648 1648 +0.0% 1.00x
SortStringsUnicode 7603 7611 +0.1% 1.00x (?)
StackPromo 22778 22728 -0.2% 1.00x (?)
StaticArray 18 18 +0.0% 1.00x
StrComplexWalk 715 714 -0.1% 1.00x
StrToInt 2058 2057 -0.0% 1.00x (?)
StringAdder 3519 3527 +0.2% 1.00x (?)
StringBuilder 1013 1009 -0.4% 1.00x (?)
StringBuilderLong 941 927 -1.5% 1.02x
StringEdits 115513 115068 -0.4% 1.00x (?)
StringEqualPointerComparison 333 333 +0.0% 1.00x
StringFromLongWholeSubstring 13551 13700 +1.1% 0.99x (?)
StringFromLongWholeSubstringGeneric 21 21 +0.0% 1.00x
StringHasPrefix 16 16 +0.0% 1.00x
StringHasPrefixUnicode 14521 14519 -0.0% 1.00x (?)
StringHasSuffix 16 16 +0.0% 1.00x
StringHasSuffixUnicode 61353 61342 -0.0% 1.00x (?)
StringInterpolation 10730 10919 +1.8% 0.98x (?)
StringMatch 7818 7815 -0.0% 1.00x (?)
StringUTF16Builder 1888 1895 +0.4% 1.00x (?)
StringWalk 1269 1269 +0.0% 1.00x
StringWithCString 53882 53904 +0.0% 1.00x (?)
SubstringComparable 1551 1553 +0.1% 1.00x
SubstringEqualString 1412 1411 -0.1% 1.00x
SubstringEquatable 3402 3404 +0.1% 1.00x
SubstringFromLongString 10 10 +0.0% 1.00x
SubstringFromLongStringGeneric 60 60 +0.0% 1.00x
SuffixAnyCollection 22 22 +0.0% 1.00x
SuffixAnyCollectionLazy 14962 14979 +0.1% 1.00x (?)
SuffixAnySeqCRangeIter 5024 4897 -2.5% 1.03x (?)
SuffixAnySeqCRangeIterLazy 4893 4920 +0.6% 0.99x (?)
SuffixAnySeqCntRange 16 16 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 16 16 +0.0% 1.00x
SuffixAnySequence 6648 6705 +0.9% 0.99x (?)
SuffixAnySequenceLazy 6525 6612 +1.3% 0.99x (?)
SuffixArray 8 8 +0.0% 1.00x
SuffixArrayLazy 8 8 +0.0% 1.00x
SuffixCountableRange 10 10 +0.0% 1.00x
SuffixCountableRangeLazy 11 11 +0.0% 1.00x
SuffixSequence 4385 4462 +1.8% 0.98x (?)
SuffixSequenceLazy 4446 4384 -1.4% 1.01x (?)
SuperChars 79916 79946 +0.0% 1.00x (?)
TwoSum 964 965 +0.1% 1.00x (?)
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode 259 257 -0.8% 1.01x
Walsh 351 349 -0.6% 1.01x (?)
XorLoop 347 347 +0.0% 1.00x
accessGlobal 3 3 +0.0% 1.00x
accessInMatSet 18 18 +0.0% 1.00x
accessIndependent 2 2 +0.0% 1.00x

Unoptimized (Onone)

Regression (1)
TEST OLD NEW DELTA SPEEDUP
ArrayAppendOptionals 1286 1357 +5.5% 0.95x
Improvement (1)
TEST OLD NEW DELTA SPEEDUP
ObjectiveCBridgeStubNSDateMutationRef 16151 15344 -5.0% 1.05x (?)
No Changes (319)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 4931 4926 -0.1% 1.00x (?)
AnyHashableWithAClass 84006 83951 -0.1% 1.00x (?)
Array2D 604112 604086 -0.0% 1.00x (?)
ArrayAppend 3728 3731 +0.1% 1.00x
ArrayAppendArrayOfInt 651 650 -0.2% 1.00x (?)
ArrayAppendAscii 51277 51286 +0.0% 1.00x
ArrayAppendFromGeneric 654 654 +0.0% 1.00x
ArrayAppendGenericStructs 1299 1311 +0.9% 0.99x
ArrayAppendLatin1 74177 73741 -0.6% 1.01x (?)
ArrayAppendLazyMap 209000 209073 +0.0% 1.00x
ArrayAppendRepeatCol 213105 213157 +0.0% 1.00x (?)
ArrayAppendReserved 3241 3241 +0.0% 1.00x
ArrayAppendSequence 75397 75464 +0.1% 1.00x (?)
ArrayAppendStrings 13824 13715 -0.8% 1.01x
ArrayAppendToFromGeneric 654 654 +0.0% 1.00x
ArrayAppendToGeneric 655 656 +0.2% 1.00x (?)
ArrayAppendUTF16 74494 74498 +0.0% 1.00x (?)
ArrayInClass 6285 6285 +0.0% 1.00x
ArrayLiteral 1748 1746 -0.1% 1.00x (?)
ArrayOfGenericPOD 3159 3167 +0.3% 1.00x (?)
ArrayOfGenericRef 10056 10066 +0.1% 1.00x (?)
ArrayOfPOD 1892 1891 -0.1% 1.00x (?)
ArrayOfRef 9049 9050 +0.0% 1.00x (?)
ArrayPlusEqualArrayOfInt 653 653 +0.0% 1.00x
ArrayPlusEqualFiveElementCollection 297124 297083 -0.0% 1.00x (?)
ArrayPlusEqualSingleElementCollection 292655 294458 +0.6% 0.99x (?)
ArrayPlusEqualThreeElements 10718 10724 +0.1% 1.00x (?)
ArraySubscript 4182 4187 +0.1% 1.00x (?)
ArrayValueProp 3537 3540 +0.1% 1.00x (?)
ArrayValueProp2 18483 18501 +0.1% 1.00x (?)
ArrayValueProp3 3906 3905 -0.0% 1.00x (?)
ArrayValueProp4 3840 3848 +0.2% 1.00x (?)
BitCount 1570 1574 +0.3% 1.00x (?)
ByteSwap 4089 4119 +0.7% 0.99x
CStringLongAscii 4389 4411 +0.5% 1.00x (?)
CStringLongNonAscii 2299 2293 -0.3% 1.00x (?)
CStringShortAscii 8640 8722 +0.9% 0.99x (?)
Calculator 1188 1190 +0.2% 1.00x (?)
CaptureProp 108842 108138 -0.6% 1.01x
CharIndexing_ascii_unicodeScalars 489464 471400 -3.7% 1.04x
CharIndexing_ascii_unicodeScalars_Backwards 532335 515143 -3.2% 1.03x (?)
CharIndexing_chinese_unicodeScalars 372109 369857 -0.6% 1.01x (?)
CharIndexing_chinese_unicodeScalars_Backwards 391051 390901 -0.0% 1.00x (?)
CharIndexing_japanese_unicodeScalars 583025 583240 +0.0% 1.00x (?)
CharIndexing_japanese_unicodeScalars_Backwards 617138 632429 +2.5% 0.98x (?)
CharIndexing_korean_unicodeScalars 455851 455869 +0.0% 1.00x (?)
CharIndexing_korean_unicodeScalars_Backwards 522092 522098 +0.0% 1.00x (?)
CharIndexing_punctuatedJapanese_unicodeScalars 81187 81277 +0.1% 1.00x (?)
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 90961 89268 -1.9% 1.02x (?)
CharIndexing_punctuated_unicodeScalars 103698 105021 +1.3% 0.99x (?)
CharIndexing_punctuated_unicodeScalars_Backwards 117680 114348 -2.8% 1.03x (?)
CharIndexing_russian_unicodeScalars 391152 391517 +0.1% 1.00x (?)
CharIndexing_russian_unicodeScalars_Backwards 428636 428770 +0.0% 1.00x (?)
CharIndexing_tweet_unicodeScalars 938627 944515 +0.6% 0.99x (?)
CharIndexing_tweet_unicodeScalars_Backwards 1025444 1036743 +1.1% 0.99x (?)
CharIndexing_utf16_unicodeScalars 527809 529125 +0.2% 1.00x (?)
CharIndexing_utf16_unicodeScalars_Backwards 582725 577591 -0.9% 1.01x (?)
CharIteration_ascii_unicodeScalars 184226 184246 +0.0% 1.00x (?)
CharIteration_ascii_unicodeScalars_Backwards 330823 326116 -1.4% 1.01x
CharIteration_chinese_unicodeScalars 143125 143203 +0.1% 1.00x
CharIteration_chinese_unicodeScalars_Backwards 256840 254098 -1.1% 1.01x
CharIteration_japanese_unicodeScalars 226070 226128 +0.0% 1.00x (?)
CharIteration_japanese_unicodeScalars_Backwards 391854 391937 +0.0% 1.00x (?)
CharIteration_korean_unicodeScalars 178602 178594 -0.0% 1.00x (?)
CharIteration_korean_unicodeScalars_Backwards 320168 315173 -1.6% 1.02x (?)
CharIteration_punctuatedJapanese_unicodeScalars 32680 32682 +0.0% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 57580 57312 -0.5% 1.00x (?)
CharIteration_punctuated_unicodeScalars 41103 41080 -0.1% 1.00x (?)
CharIteration_punctuated_unicodeScalars_Backwards 72368 71570 -1.1% 1.01x (?)
CharIteration_russian_unicodeScalars 152845 152811 -0.0% 1.00x (?)
CharIteration_russian_unicodeScalars_Backwards 270539 275416 +1.8% 0.98x
CharIteration_tweet_unicodeScalars 362779 362623 -0.0% 1.00x (?)
CharIteration_tweet_unicodeScalars_Backwards 644067 644167 +0.0% 1.00x (?)
CharIteration_utf16_unicodeScalars 215897 215970 +0.0% 1.00x
CharIteration_utf16_unicodeScalars_Backwards 428302 428076 -0.1% 1.00x (?)
CharacterLiteralsLarge 6236 6243 +0.1% 1.00x (?)
CharacterLiteralsSmall 628 628 +0.0% 1.00x
Chars 49467 49466 -0.0% 1.00x (?)
ClassArrayGetter 987 987 +0.0% 1.00x
DeadArray 116251 117396 +1.0% 0.99x (?)
Dictionary 3052 3049 -0.1% 1.00x
Dictionary2 3493 3501 +0.2% 1.00x (?)
Dictionary2OfObjects 6083 6197 +1.9% 0.98x
Dictionary3 1315 1319 +0.3% 1.00x (?)
Dictionary3OfObjects 2344 2348 +0.2% 1.00x (?)
DictionaryBridge 2815 2752 -2.2% 1.02x
DictionaryGroup 5041 5039 -0.0% 1.00x (?)
DictionaryGroupOfObjects 8104 8105 +0.0% 1.00x (?)
DictionaryLiteral 8215 8208 -0.1% 1.00x (?)
DictionaryOfObjects 6594 6625 +0.5% 1.00x (?)
DictionaryRemove 21350 21300 -0.2% 1.00x (?)
DictionaryRemoveOfObjects 59430 59468 +0.1% 1.00x (?)
DictionarySwap 5504 5503 -0.0% 1.00x (?)
DictionarySwapOfObjects 22720 23309 +2.6% 0.97x (?)
DropFirstAnyCollection 18927 18927 +0.0% 1.00x
DropFirstAnyCollectionLazy 138959 138201 -0.5% 1.01x (?)
DropFirstAnySeqCRangeIter 28412 28409 -0.0% 1.00x (?)
DropFirstAnySeqCRangeIterLazy 28364 28362 -0.0% 1.00x (?)
DropFirstAnySeqCntRange 18871 18863 -0.0% 1.00x (?)
DropFirstAnySeqCntRangeLazy 18987 18985 -0.0% 1.00x (?)
DropFirstAnySequence 12869 12866 -0.0% 1.00x (?)
DropFirstAnySequenceLazy 12882 12882 +0.0% 1.00x
DropFirstArray 6290 6290 +0.0% 1.00x
DropFirstArrayLazy 44645 44664 +0.0% 1.00x (?)
DropFirstCountableRange 340 340 +0.0% 1.00x
DropFirstCountableRangeLazy 37035 37043 +0.0% 1.00x (?)
DropFirstSequence 11712 11707 -0.0% 1.00x
DropFirstSequenceLazy 11738 11742 +0.0% 1.00x (?)
DropLastAnyCollection 6340 6338 -0.0% 1.00x (?)
DropLastAnyCollectionLazy 46004 45922 -0.2% 1.00x (?)
DropLastAnySeqCRangeIter 43307 43327 +0.0% 1.00x (?)
DropLastAnySeqCRangeIterLazy 43560 43556 -0.0% 1.00x (?)
DropLastAnySeqCntRange 6312 6309 -0.0% 1.00x (?)
DropLastAnySeqCntRangeLazy 6307 6309 +0.0% 1.00x
DropLastAnySequence 28959 28971 +0.0% 1.00x (?)
DropLastAnySequenceLazy 28963 28960 -0.0% 1.00x (?)
DropLastArray 2111 2110 -0.0% 1.00x
DropLastArrayLazy 14972 14983 +0.1% 1.00x (?)
DropLastCountableRange 118 118 +0.0% 1.00x
DropLastCountableRangeLazy 12432 12422 -0.1% 1.00x (?)
DropLastSequence 28594 28599 +0.0% 1.00x (?)
DropLastSequenceLazy 28607 28591 -0.1% 1.00x (?)
DropWhileAnyCollection 24460 24460 +0.0% 1.00x
DropWhileAnyCollectionLazy 26998 26989 -0.0% 1.00x (?)
DropWhileAnySeqCRangeIter 30980 30968 -0.0% 1.00x (?)
DropWhileAnySeqCRangeIterLazy 26857 26873 +0.1% 1.00x (?)
DropWhileAnySeqCntRange 24474 24465 -0.0% 1.00x (?)
DropWhileAnySeqCntRangeLazy 26987 26978 -0.0% 1.00x (?)
DropWhileAnySequence 15099 15088 -0.1% 1.00x (?)
DropWhileAnySequenceLazy 12506 12566 +0.5% 1.00x (?)
DropWhileArray 9795 9793 -0.0% 1.00x (?)
DropWhileArrayLazy 16762 16762 +0.0% 1.00x
DropWhileCountableRange 6019 6018 -0.0% 1.00x (?)
DropWhileCountableRangeLazy 25924 25923 -0.0% 1.00x (?)
DropWhileSequence 13961 13960 -0.0% 1.00x (?)
DropWhileSequenceLazy 11240 11238 -0.0% 1.00x (?)
EqualStringSubstring 663 663 +0.0% 1.00x
EqualSubstringString 661 662 +0.2% 1.00x (?)
EqualSubstringSubstring 774 774 +0.0% 1.00x
EqualSubstringSubstringGenericEquatable 445 445 +0.0% 1.00x
ErrorHandling 6721 6770 +0.7% 0.99x (?)
Hanoi 18364 18334 -0.2% 1.00x (?)
HashTest 18307 18321 +0.1% 1.00x (?)
Histogram 8777 8774 -0.0% 1.00x (?)
Integrate 713 714 +0.1% 1.00x (?)
IterateData 12819 12815 -0.0% 1.00x
Join 1187 1188 +0.1% 1.00x (?)
LazilyFilteredArrays 1690175 1689988 -0.0% 1.00x (?)
LazilyFilteredRange 673446 673483 +0.0% 1.00x (?)
LessSubstringSubstring 776 776 +0.0% 1.00x
LessSubstringSubstringGenericComparable 438 438 +0.0% 1.00x
LinkedList 40510 40520 +0.0% 1.00x (?)
MapReduce 37495 37518 +0.1% 1.00x (?)
MapReduceAnyCollection 37368 37370 +0.0% 1.00x (?)
MapReduceAnyCollectionShort 49737 49866 +0.3% 1.00x (?)
MapReduceClass 42602 43221 +1.5% 0.99x (?)
MapReduceClassShort 55024 54820 -0.4% 1.00x (?)
MapReduceLazyCollection 32259 32273 +0.0% 1.00x (?)
MapReduceLazyCollectionShort 43430 43607 +0.4% 1.00x (?)
MapReduceLazySequence 25480 25437 -0.2% 1.00x (?)
MapReduceSequence 40735 40730 -0.0% 1.00x (?)
MapReduceShort 49768 49290 -1.0% 1.01x
MapReduceShortString 277 279 +0.7% 0.99x (?)
MapReduceString 2636 2639 +0.1% 1.00x (?)
Memset 46052 46046 -0.0% 1.00x (?)
MonteCarloE 132549 132435 -0.1% 1.00x (?)
MonteCarloPi 52682 52681 -0.0% 1.00x (?)
NSDictionaryCastToSwift 6595 6601 +0.1% 1.00x (?)
NSError 705 706 +0.1% 1.00x (?)
NSStringConversion 819 818 -0.1% 1.00x (?)
NopDeinit 182449 182541 +0.1% 1.00x (?)
ObjectAllocation 1440 1441 +0.1% 1.00x
ObjectiveCBridgeFromNSArrayAnyObject 26711 27165 +1.7% 0.98x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 9337 9363 +0.3% 1.00x
ObjectiveCBridgeFromNSArrayAnyObjectToString 53122 53352 +0.4% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 46276 48260 +4.3% 0.96x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 123319 123542 +0.2% 1.00x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 7268 7541 +3.8% 0.96x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 114086 111631 -2.2% 1.02x
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 115798 115620 -0.2% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObject 71020 71053 +0.0% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 7365 7373 +0.1% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 84768 85338 +0.7% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 82730 83151 +0.5% 0.99x (?)
ObjectiveCBridgeFromNSString 5001 4996 -0.1% 1.00x (?)
ObjectiveCBridgeFromNSStringForced 3341 3339 -0.1% 1.00x (?)
ObjectiveCBridgeStubDataAppend 3755 3786 +0.8% 0.99x (?)
ObjectiveCBridgeStubDateAccess 1061 1061 +0.0% 1.00x
ObjectiveCBridgeStubDateMutation 485 485 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 31572 31259 -1.0% 1.01x (?)
ObjectiveCBridgeStubFromNSDate 3951 3935 -0.4% 1.00x (?)
ObjectiveCBridgeStubFromNSDateRef 4372 4387 +0.3% 1.00x (?)
ObjectiveCBridgeStubFromNSString 1146 1155 +0.8% 0.99x (?)
ObjectiveCBridgeStubFromNSStringRef 182 183 +0.5% 0.99x
ObjectiveCBridgeStubNSDataAppend 2780 2652 -4.6% 1.05x (?)
ObjectiveCBridgeStubNSDateRefAccess 1213 1215 +0.2% 1.00x
ObjectiveCBridgeStubToArrayOfNSString 29083 28950 -0.5% 1.00x (?)
ObjectiveCBridgeStubToNSDate 15793 15274 -3.3% 1.03x (?)
ObjectiveCBridgeStubToNSDateRef 3287 3279 -0.2% 1.00x (?)
ObjectiveCBridgeStubToNSString 1562 1562 +0.0% 1.00x
ObjectiveCBridgeStubToNSStringRef 156 155 -0.6% 1.01x (?)
ObjectiveCBridgeStubURLAppendPath 227732 228261 +0.2% 1.00x (?)
ObjectiveCBridgeStubURLAppendPathRef 221180 217241 -1.8% 1.02x (?)
ObjectiveCBridgeToNSArray 28817 28728 -0.3% 1.00x (?)
ObjectiveCBridgeToNSDictionary 47050 47219 +0.4% 1.00x (?)
ObjectiveCBridgeToNSSet 41049 40804 -0.6% 1.01x (?)
ObjectiveCBridgeToNSString 1354 1347 -0.5% 1.01x (?)
ObserverClosure 6722 6707 -0.2% 1.00x (?)
ObserverForwarderStruct 4777 4784 +0.1% 1.00x (?)
ObserverPartiallyAppliedMethod 8138 8160 +0.3% 1.00x (?)
ObserverUnappliedMethod 8527 8557 +0.4% 1.00x (?)
OpenClose 395 395 +0.0% 1.00x
Phonebook 21918 21884 -0.2% 1.00x (?)
PolymorphicCalls 5298 5305 +0.1% 1.00x (?)
PopFrontArray 9908 9906 -0.0% 1.00x (?)
PopFrontArrayGeneric 8827 8831 +0.0% 1.00x (?)
PopFrontUnsafePointer 97091 97183 +0.1% 1.00x (?)
PrefixAnyCollection 18944 18935 -0.0% 1.00x (?)
PrefixAnyCollectionLazy 138331 138778 +0.3% 1.00x (?)
PrefixAnySeqCRangeIter 22674 22694 +0.1% 1.00x (?)
PrefixAnySeqCRangeIterLazy 22571 22594 +0.1% 1.00x
PrefixAnySeqCntRange 18855 18860 +0.0% 1.00x (?)
PrefixAnySeqCntRangeLazy 18876 18871 -0.0% 1.00x (?)
PrefixAnySequence 10658 10654 -0.0% 1.00x (?)
PrefixAnySequenceLazy 10657 10656 -0.0% 1.00x (?)
PrefixArray 6304 6309 +0.1% 1.00x
PrefixArrayLazy 44662 44645 -0.0% 1.00x (?)
PrefixCountableRange 339 339 +0.0% 1.00x
PrefixCountableRangeLazy 37061 37064 +0.0% 1.00x (?)
PrefixSequence 9559 9548 -0.1% 1.00x
PrefixSequenceLazy 9623 9618 -0.1% 1.00x (?)
PrefixWhileAnyCollection 35763 35743 -0.1% 1.00x (?)
PrefixWhileAnyCollectionLazy 22396 22397 +0.0% 1.00x (?)
PrefixWhileAnySeqCRangeIter 40588 40623 +0.1% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 22310 22311 +0.0% 1.00x (?)
PrefixWhileAnySeqCntRange 35763 35748 -0.0% 1.00x (?)
PrefixWhileAnySeqCntRangeLazy 22242 22244 +0.0% 1.00x (?)
PrefixWhileAnySequence 29426 29421 -0.0% 1.00x (?)
PrefixWhileAnySequenceLazy 11229 11225 -0.0% 1.00x (?)
PrefixWhileArray 16794 16793 -0.0% 1.00x (?)
PrefixWhileArrayLazy 14645 14643 -0.0% 1.00x (?)
PrefixWhileCountableRange 17320 17338 +0.1% 1.00x
PrefixWhileCountableRangeLazy 21912 21503 -1.9% 1.02x (?)
PrefixWhileSequence 28324 28323 -0.0% 1.00x (?)
PrefixWhileSequenceLazy 10279 10257 -0.2% 1.00x (?)
Prims 10140 10145 +0.0% 1.00x (?)
ProtocolDispatch 6947 6942 -0.1% 1.00x (?)
ProtocolDispatch2 491 491 +0.0% 1.00x
RC4 19442 19446 +0.0% 1.00x (?)
RGBHistogram 34162 34050 -0.3% 1.00x (?)
RGBHistogramOfObjects 108001 108178 +0.2% 1.00x (?)
RangeAssignment 5764 5757 -0.1% 1.00x (?)
RecursiveOwnedParameter 11190 11182 -0.1% 1.00x (?)
ReversedArray 44291 44269 -0.0% 1.00x (?)
ReversedBidirectional 76335 76355 +0.0% 1.00x (?)
ReversedDictionary 28539 28560 +0.1% 1.00x
SetExclusiveOr 21781 21769 -0.1% 1.00x (?)
SetExclusiveOr_OfObjects 48593 48630 +0.1% 1.00x (?)
SetIntersect 11466 11470 +0.0% 1.00x (?)
SetIntersect_OfObjects 13125 13113 -0.1% 1.00x (?)
SetIsSubsetOf 1748 1748 +0.0% 1.00x
SetIsSubsetOf_OfObjects 1657 1657 +0.0% 1.00x
SetUnion 12289 12294 +0.0% 1.00x (?)
SetUnion_OfObjects 34079 33998 -0.2% 1.00x (?)
SevenBoom 1614 1616 +0.1% 1.00x (?)
Sim2DArray 30022 30020 -0.0% 1.00x (?)
SortLargeExistentials 17868 17868 +0.0% 1.00x
SortLettersInPlace 3163 3167 +0.1% 1.00x (?)
SortSortedStrings 1415 1415 +0.0% 1.00x
SortStrings 2451 2454 +0.1% 1.00x (?)
SortStringsUnicode 8758 8762 +0.0% 1.00x (?)
StackPromo 102583 101683 -0.9% 1.01x (?)
StaticArray 4564 4560 -0.1% 1.00x (?)
StrComplexWalk 6768 6762 -0.1% 1.00x (?)
StrToInt 102234 101956 -0.3% 1.00x (?)
StringAdder 3840 3857 +0.4% 1.00x
StringBuilder 6941 6923 -0.3% 1.00x (?)
StringBuilderLong 1099 1100 +0.1% 1.00x (?)
StringEdits 376856 375922 -0.2% 1.00x (?)
StringEqualPointerComparison 2394 2395 +0.0% 1.00x (?)
StringFromLongWholeSubstring 13220 13226 +0.0% 1.00x (?)
StringFromLongWholeSubstringGeneric 207 208 +0.5% 1.00x
StringHasPrefix 1687 1718 +1.8% 0.98x (?)
StringHasPrefixUnicode 16188 16173 -0.1% 1.00x (?)
StringHasSuffix 1838 1839 +0.1% 1.00x
StringHasSuffixUnicode 63345 63383 +0.1% 1.00x (?)
StringInterpolation 13686 13883 +1.4% 0.99x (?)
StringMatch 31762 31967 +0.6% 0.99x
StringUTF16Builder 7821 7850 +0.4% 1.00x (?)
StringWalk 12544 12545 +0.0% 1.00x (?)
StringWithCString 53935 53878 -0.1% 1.00x (?)
SubstringComparable 4139 4141 +0.0% 1.00x (?)
SubstringEqualString 6392 6443 +0.8% 0.99x
SubstringEquatable 8985 8985 +0.0% 1.00x
SubstringFromLongString 12 12 +0.0% 1.00x
SubstringFromLongStringGeneric 111 111 +0.0% 1.00x
SuffixAnyCollection 6342 6344 +0.0% 1.00x (?)
SuffixAnyCollectionLazy 46253 46359 +0.2% 1.00x (?)
SuffixAnySeqCRangeIter 41252 41251 -0.0% 1.00x (?)
SuffixAnySeqCRangeIterLazy 41225 41222 -0.0% 1.00x (?)
SuffixAnySeqCntRange 6300 6301 +0.0% 1.00x (?)
SuffixAnySeqCntRangeLazy 6312 6306 -0.1% 1.00x
SuffixAnySequence 26677 26682 +0.0% 1.00x (?)
SuffixAnySequenceLazy 26664 26681 +0.1% 1.00x (?)
SuffixArray 2108 2105 -0.1% 1.00x (?)
SuffixArrayLazy 14975 14977 +0.0% 1.00x (?)
SuffixCountableRange 118 118 +0.0% 1.00x
SuffixCountableRangeLazy 12433 12431 -0.0% 1.00x (?)
SuffixSequence 26301 26294 -0.0% 1.00x (?)
SuffixSequenceLazy 26293 26296 +0.0% 1.00x (?)
SuperChars 189522 189594 +0.0% 1.00x (?)
TwoSum 4245 4244 -0.0% 1.00x (?)
TypeFlood 163 167 +2.5% 0.98x (?)
UTF8Decode 37119 37128 +0.0% 1.00x (?)
Walsh 11916 11916 +0.0% 1.00x
XorLoop 23706 23710 +0.0% 1.00x (?)
accessGlobal 181 181 +0.0% 1.00x
accessInMatSet 328 327 -0.3% 1.00x (?)
accessIndependent 133 133 +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

@swift-ci
Copy link
Collaborator

Build failed
Jenkins build - Swift Test OS X Platform
Git Commit - 826f8da
Test requested by - @dabrahams

@lorentey
Copy link
Member Author

D'oh! I'll need to figure out how to run the 32-bit watchOS tests.

We don’t need Words’ members to be @_transparent;
simple conversions use _lowWord instead.
This fixes integer conversion issues on 32-bit platforms.
This adds 8 more collection views, but makes integer definitions
more consistent across all the available bit widths and
between 32-bit and 64-bit platforms.
@lorentey
Copy link
Member Author

I found the bug that broke 32-bit platforms; could you please trigger new builds for me? ☺️

@moiseev
Copy link
Contributor

moiseev commented Jul 11, 2017

@swift-ci Please test

@moiseev
Copy link
Contributor

moiseev commented Jul 11, 2017

@swift-ci Please smoke benchmark

@moiseev
Copy link
Contributor

moiseev commented Jul 11, 2017

@swift-ci Please Test Source Compatibility

@apple apple deleted a comment from swift-ci Jul 11, 2017
@apple apple deleted a comment from swift-ci Jul 11, 2017
@moiseev
Copy link
Contributor

moiseev commented Jul 11, 2017

@swift-ci Please smoke benchmark

@moiseev
Copy link
Contributor

moiseev commented Jul 11, 2017

@swift-ci Please Test Source Compatibility

@swift-ci
Copy link
Collaborator

Build comment file:

Optimized (O)

Regression (3)
TEST OLD NEW DELTA SPEEDUP
ObjectiveCBridgeStubNSDateMutationRef 11627 13198 +13.5% 0.88x
ClassArrayGetter 13 14 +7.7% 0.93x
ReversedArray 49 52 +6.1% 0.94x (?)
Improvement (2)
TEST OLD NEW DELTA SPEEDUP
Array2D 2209 2047 -7.3% 1.08x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 5330 4993 -6.3% 1.07x
No Changes (316)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 3026 3027 +0.0% 1.00x (?)
AnyHashableWithAClass 67604 67539 -0.1% 1.00x (?)
ArrayAppend 774 774 +0.0% 1.00x
ArrayAppendArrayOfInt 597 597 +0.0% 1.00x
ArrayAppendAscii 9989 9989 +0.0% 1.00x
ArrayAppendFromGeneric 597 597 +0.0% 1.00x
ArrayAppendGenericStructs 1242 1228 -1.1% 1.01x
ArrayAppendLatin1 30353 30299 -0.2% 1.00x (?)
ArrayAppendLazyMap 923 957 +3.7% 0.96x (?)
ArrayAppendOptionals 1285 1226 -4.6% 1.05x (?)
ArrayAppendRepeatCol 838 839 +0.1% 1.00x
ArrayAppendReserved 533 534 +0.2% 1.00x (?)
ArrayAppendSequence 945 945 +0.0% 1.00x
ArrayAppendStrings 13652 13649 -0.0% 1.00x (?)
ArrayAppendToFromGeneric 597 597 +0.0% 1.00x
ArrayAppendToGeneric 597 597 +0.0% 1.00x
ArrayAppendUTF16 29244 29040 -0.7% 1.01x (?)
ArrayInClass 65 64 -1.5% 1.02x (?)
ArrayLiteral 1226 1227 +0.1% 1.00x (?)
ArrayOfGenericPOD 219 219 +0.0% 1.00x
ArrayOfGenericRef 4025 4037 +0.3% 1.00x (?)
ArrayOfPOD 166 166 +0.0% 1.00x
ArrayOfRef 3895 3901 +0.2% 1.00x (?)
ArrayPlusEqualArrayOfInt 596 596 +0.0% 1.00x
ArrayPlusEqualFiveElementCollection 4717 4715 -0.0% 1.00x (?)
ArrayPlusEqualSingleElementCollection 775 776 +0.1% 1.00x (?)
ArrayPlusEqualThreeElements 1586 1584 -0.1% 1.00x (?)
ArraySubscript 1478 1477 -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 147 148 +0.7% 0.99x (?)
ByteSwap 118 118 +0.0% 1.00x
CStringLongAscii 4259 4255 -0.1% 1.00x (?)
CStringLongNonAscii 2071 2070 -0.0% 1.00x (?)
CStringShortAscii 4827 4809 -0.4% 1.00x
Calculator 35 34 -2.9% 1.03x
CaptureProp 4656 4656 +0.0% 1.00x
CharIndexing_ascii_unicodeScalars 14620 14621 +0.0% 1.00x (?)
CharIndexing_ascii_unicodeScalars_Backwards 14202 14200 -0.0% 1.00x (?)
CharIndexing_chinese_unicodeScalars 11082 11082 +0.0% 1.00x
CharIndexing_chinese_unicodeScalars_Backwards 10759 10757 -0.0% 1.00x (?)
CharIndexing_japanese_unicodeScalars 17500 17497 -0.0% 1.00x (?)
CharIndexing_japanese_unicodeScalars_Backwards 17027 17024 -0.0% 1.00x (?)
CharIndexing_korean_unicodeScalars 14178 14178 +0.0% 1.00x
CharIndexing_korean_unicodeScalars_Backwards 13786 13786 +0.0% 1.00x
CharIndexing_punctuatedJapanese_unicodeScalars 2671 2670 -0.0% 1.00x
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 2594 2595 +0.0% 1.00x (?)
CharIndexing_punctuated_unicodeScalars 3334 3334 +0.0% 1.00x
CharIndexing_punctuated_unicodeScalars_Backwards 3243 3243 +0.0% 1.00x
CharIndexing_russian_unicodeScalars 12186 12187 +0.0% 1.00x (?)
CharIndexing_russian_unicodeScalars_Backwards 11850 11852 +0.0% 1.00x (?)
CharIndexing_tweet_unicodeScalars 28879 28846 -0.1% 1.00x
CharIndexing_tweet_unicodeScalars_Backwards 28075 28091 +0.1% 1.00x (?)
CharIndexing_utf16_unicodeScalars 83018 83002 -0.0% 1.00x (?)
CharIndexing_utf16_unicodeScalars_Backwards 99408 99372 -0.0% 1.00x (?)
CharIteration_ascii_unicodeScalars 16238 16248 +0.1% 1.00x (?)
CharIteration_ascii_unicodeScalars_Backwards 20137 20136 -0.0% 1.00x (?)
CharIteration_chinese_unicodeScalars 12298 12299 +0.0% 1.00x (?)
CharIteration_chinese_unicodeScalars_Backwards 15238 15239 +0.0% 1.00x (?)
CharIteration_japanese_unicodeScalars 19435 19437 +0.0% 1.00x (?)
CharIteration_japanese_unicodeScalars_Backwards 24118 24122 +0.0% 1.00x (?)
CharIteration_korean_unicodeScalars 15739 15737 -0.0% 1.00x (?)
CharIteration_korean_unicodeScalars_Backwards 19526 19529 +0.0% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars 2963 2963 +0.0% 1.00x
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 3607 3607 +0.0% 1.00x
CharIteration_punctuated_unicodeScalars 3701 3701 +0.0% 1.00x
CharIteration_punctuated_unicodeScalars_Backwards 4526 4526 +0.0% 1.00x
CharIteration_russian_unicodeScalars 13535 13539 +0.0% 1.00x (?)
CharIteration_russian_unicodeScalars_Backwards 16775 16770 -0.0% 1.00x (?)
CharIteration_tweet_unicodeScalars 31969 31947 -0.1% 1.00x (?)
CharIteration_tweet_unicodeScalars_Backwards 39864 39845 -0.0% 1.00x (?)
CharIteration_utf16_unicodeScalars 92009 92039 +0.0% 1.00x
CharIteration_utf16_unicodeScalars_Backwards 150116 150131 +0.0% 1.00x (?)
CharacterLiteralsLarge 6039 6039 +0.0% 1.00x
CharacterLiteralsSmall 403 403 +0.0% 1.00x
Chars 805 806 +0.1% 1.00x (?)
DeadArray 186 186 +0.0% 1.00x
Dictionary 558 557 -0.2% 1.00x (?)
Dictionary2 1828 1828 +0.0% 1.00x
Dictionary2OfObjects 3291 3288 -0.1% 1.00x (?)
Dictionary3 441 441 +0.0% 1.00x
Dictionary3OfObjects 884 884 +0.0% 1.00x
DictionaryBridge 2746 2735 -0.4% 1.00x (?)
DictionaryGroup 276 275 -0.4% 1.00x (?)
DictionaryGroupOfObjects 1787 1786 -0.1% 1.00x (?)
DictionaryLiteral 1474 1478 +0.3% 1.00x (?)
DictionaryOfObjects 2321 2319 -0.1% 1.00x (?)
DictionaryRemove 2420 2412 -0.3% 1.00x (?)
DictionaryRemoveOfObjects 23222 23215 -0.0% 1.00x (?)
DictionarySwap 435 435 +0.0% 1.00x
DictionarySwapOfObjects 6976 6952 -0.3% 1.00x (?)
DropFirstAnyCollection 57 57 +0.0% 1.00x
DropFirstAnyCollectionLazy 46234 46218 -0.0% 1.00x (?)
DropFirstAnySeqCRangeIter 26249 26244 -0.0% 1.00x (?)
DropFirstAnySeqCRangeIterLazy 26255 26252 -0.0% 1.00x (?)
DropFirstAnySeqCntRange 50 50 +0.0% 1.00x
DropFirstAnySeqCntRangeLazy 50 50 +0.0% 1.00x
DropFirstAnySequence 5734 5732 -0.0% 1.00x (?)
DropFirstAnySequenceLazy 5733 5739 +0.1% 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 2094 2094 +0.0% 1.00x
DropFirstSequenceLazy 2118 2119 +0.0% 1.00x
DropLastAnyCollection 22 22 +0.0% 1.00x
DropLastAnyCollectionLazy 15401 15405 +0.0% 1.00x (?)
DropLastAnySeqCRangeIter 4568 4724 +3.4% 0.97x
DropLastAnySeqCRangeIterLazy 4566 4567 +0.0% 1.00x
DropLastAnySeqCntRange 16 16 +0.0% 1.00x
DropLastAnySeqCntRangeLazy 16 16 +0.0% 1.00x
DropLastAnySequence 6656 6639 -0.3% 1.00x (?)
DropLastAnySequenceLazy 6529 6576 +0.7% 0.99x (?)
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 565 -0.2% 1.00x (?)
DropLastSequenceLazy 565 566 +0.2% 1.00x (?)
DropWhileAnyCollection 70 70 +0.0% 1.00x
DropWhileAnyCollectionLazy 103 103 +0.0% 1.00x
DropWhileAnySeqCRangeIter 21169 21182 +0.1% 1.00x (?)
DropWhileAnySeqCRangeIterLazy 103 103 +0.0% 1.00x
DropWhileAnySeqCntRange 64 64 +0.0% 1.00x
DropWhileAnySeqCntRangeLazy 103 103 +0.0% 1.00x
DropWhileAnySequence 6558 6562 +0.1% 1.00x (?)
DropWhileAnySequenceLazy 2032 2032 +0.0% 1.00x
DropWhileArray 37 37 +0.0% 1.00x
DropWhileArrayLazy 78 78 +0.0% 1.00x
DropWhileCountableRange 36 36 +0.0% 1.00x
DropWhileCountableRangeLazy 68 68 +0.0% 1.00x
DropWhileSequence 1548 1548 +0.0% 1.00x
DropWhileSequenceLazy 65 65 +0.0% 1.00x
EqualStringSubstring 386 386 +0.0% 1.00x
EqualSubstringString 384 384 +0.0% 1.00x
EqualSubstringSubstring 389 389 +0.0% 1.00x
EqualSubstringSubstringGenericEquatable 389 389 +0.0% 1.00x
ErrorHandling 2884 2823 -2.1% 1.02x (?)
Hanoi 3468 3503 +1.0% 0.99x (?)
HashTest 1672 1669 -0.2% 1.00x (?)
Histogram 299 299 +0.0% 1.00x
Integrate 262 262 +0.0% 1.00x
IterateData 758 758 +0.0% 1.00x
Join 377 376 -0.3% 1.00x (?)
LazilyFilteredArrays 65166 64975 -0.3% 1.00x (?)
LazilyFilteredRange 3890 3892 +0.1% 1.00x (?)
LessSubstringSubstring 384 384 +0.0% 1.00x
LessSubstringSubstringGenericComparable 384 384 +0.0% 1.00x
LinkedList 7102 7102 +0.0% 1.00x
MapReduce 330 327 -0.9% 1.01x (?)
MapReduceAnyCollection 302 303 +0.3% 1.00x (?)
MapReduceAnyCollectionShort 2032 2025 -0.3% 1.00x (?)
MapReduceClass 3060 3068 +0.3% 1.00x (?)
MapReduceClassShort 4589 4572 -0.4% 1.00x (?)
MapReduceLazyCollection 15 15 +0.0% 1.00x
MapReduceLazyCollectionShort 45 45 +0.0% 1.00x
MapReduceLazySequence 90 90 +0.0% 1.00x
MapReduceSequence 455 455 +0.0% 1.00x
MapReduceShort 1915 1915 +0.0% 1.00x
MapReduceShortString 21 21 +0.0% 1.00x
MapReduceString 93 93 +0.0% 1.00x
Memset 234 234 +0.0% 1.00x
MonteCarloE 10210 10229 +0.2% 1.00x (?)
MonteCarloPi 43900 43896 -0.0% 1.00x (?)
NSDictionaryCastToSwift 5582 5534 -0.9% 1.01x (?)
NSError 289 290 +0.3% 1.00x
NSStringConversion 775 779 +0.5% 0.99x
NopDeinit 22893 22894 +0.0% 1.00x (?)
ObjectAllocation 179 178 -0.6% 1.01x (?)
ObjectiveCBridgeFromNSArrayAnyObject 24828 24648 -0.7% 1.01x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 6139 6137 -0.0% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 51662 51679 +0.0% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 46268 45944 -0.7% 1.01x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 125095 123270 -1.5% 1.01x
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 104479 108096 +3.5% 0.97x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 115133 113091 -1.8% 1.02x
ObjectiveCBridgeFromNSSetAnyObject 64405 64906 +0.8% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 4210 4190 -0.5% 1.00x
ObjectiveCBridgeFromNSSetAnyObjectToString 80067 79675 -0.5% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 79351 78880 -0.6% 1.01x (?)
ObjectiveCBridgeFromNSString 2119 2118 -0.0% 1.00x (?)
ObjectiveCBridgeFromNSStringForced 2949 2946 -0.1% 1.00x (?)
ObjectiveCBridgeStubDataAppend 3878 3834 -1.1% 1.01x (?)
ObjectiveCBridgeStubDateAccess 182 181 -0.5% 1.01x
ObjectiveCBridgeStubDateMutation 272 272 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 31608 31517 -0.3% 1.00x (?)
ObjectiveCBridgeStubFromNSDate 3617 3608 -0.2% 1.00x (?)
ObjectiveCBridgeStubFromNSDateRef 4060 4068 +0.2% 1.00x (?)
ObjectiveCBridgeStubFromNSString 1113 1122 +0.8% 0.99x
ObjectiveCBridgeStubFromNSStringRef 146 146 +0.0% 1.00x
ObjectiveCBridgeStubNSDataAppend 2386 2306 -3.4% 1.03x (?)
ObjectiveCBridgeStubNSDateRefAccess 313 313 +0.0% 1.00x
ObjectiveCBridgeStubToArrayOfNSString 29031 28901 -0.4% 1.00x (?)
ObjectiveCBridgeStubToNSDate 14487 15012 +3.6% 0.97x (?)
ObjectiveCBridgeStubToNSDateRef 3243 3231 -0.4% 1.00x (?)
ObjectiveCBridgeStubToNSString 1517 1516 -0.1% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 109 109 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 225026 228611 +1.6% 0.98x (?)
ObjectiveCBridgeStubURLAppendPathRef 234734 231096 -1.5% 1.02x (?)
ObjectiveCBridgeToNSArray 28578 28322 -0.9% 1.01x (?)
ObjectiveCBridgeToNSDictionary 46768 46615 -0.3% 1.00x (?)
ObjectiveCBridgeToNSSet 40222 41138 +2.3% 0.98x (?)
ObjectiveCBridgeToNSString 1272 1273 +0.1% 1.00x (?)
ObserverClosure 2283 2284 +0.0% 1.00x (?)
ObserverForwarderStruct 1159 1129 -2.6% 1.03x (?)
ObserverPartiallyAppliedMethod 3777 3785 +0.2% 1.00x (?)
ObserverUnappliedMethod 2771 2775 +0.1% 1.00x (?)
OpenClose 51 51 +0.0% 1.00x
Phonebook 6144 6134 -0.2% 1.00x (?)
PolymorphicCalls 22 22 +0.0% 1.00x
PopFrontArray 1206 1205 -0.1% 1.00x (?)
PopFrontArrayGeneric 1207 1207 +0.0% 1.00x
PopFrontUnsafePointer 9521 9517 -0.0% 1.00x (?)
PrefixAnyCollection 56 56 +0.0% 1.00x
PrefixAnyCollectionLazy 45070 45059 -0.0% 1.00x (?)
PrefixAnySeqCRangeIter 20545 20547 +0.0% 1.00x (?)
PrefixAnySeqCRangeIterLazy 20548 20544 -0.0% 1.00x (?)
PrefixAnySeqCntRange 50 50 +0.0% 1.00x
PrefixAnySeqCntRangeLazy 50 50 +0.0% 1.00x
PrefixAnySequence 5017 5017 +0.0% 1.00x
PrefixAnySequenceLazy 4993 4992 -0.0% 1.00x
PrefixArray 25 25 +0.0% 1.00x
PrefixArrayLazy 24 25 +4.2% 0.96x
PrefixCountableRange 32 32 +0.0% 1.00x
PrefixCountableRangeLazy 32 32 +0.0% 1.00x
PrefixSequence 1582 1585 +0.2% 1.00x (?)
PrefixSequenceLazy 1516 1516 +0.0% 1.00x
PrefixWhileAnyCollection 96 95 -1.0% 1.01x
PrefixWhileAnyCollectionLazy 75 75 +0.0% 1.00x
PrefixWhileAnySeqCRangeIter 12419 12437 +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 14085 14054 -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 295 294 -0.3% 1.00x
PrefixWhileSequenceLazy 28 28 +0.0% 1.00x
Prims 765 764 -0.1% 1.00x (?)
ProtocolDispatch 2424 2424 +0.0% 1.00x
ProtocolDispatch2 160 160 +0.0% 1.00x
RC4 160 160 +0.0% 1.00x
RGBHistogram 2356 2375 +0.8% 0.99x (?)
RGBHistogramOfObjects 24309 24296 -0.1% 1.00x (?)
RangeAssignment 306 305 -0.3% 1.00x (?)
RecursiveOwnedParameter 2329 2330 +0.0% 1.00x (?)
ReversedBidirectional 28966 29053 +0.3% 1.00x (?)
ReversedDictionary 122 125 +2.5% 0.98x (?)
SetExclusiveOr 3053 3042 -0.4% 1.00x (?)
SetExclusiveOr_OfObjects 9570 9562 -0.1% 1.00x (?)
SetIntersect 941 941 +0.0% 1.00x
SetIntersect_OfObjects 1720 1724 +0.2% 1.00x (?)
SetIsSubsetOf 366 366 +0.0% 1.00x
SetIsSubsetOf_OfObjects 359 359 +0.0% 1.00x
SetUnion 2748 2764 +0.6% 0.99x
SetUnion_OfObjects 8036 8074 +0.5% 1.00x (?)
SevenBoom 1484 1483 -0.1% 1.00x (?)
Sim2DArray 276 276 +0.0% 1.00x
SortLargeExistentials 7814 7815 +0.0% 1.00x (?)
SortLettersInPlace 1142 1143 +0.1% 1.00x (?)
SortSortedStrings 872 872 +0.0% 1.00x
SortStrings 1650 1650 +0.0% 1.00x
SortStringsUnicode 7598 7637 +0.5% 0.99x
StackPromo 22730 22677 -0.2% 1.00x (?)
StaticArray 18 18 +0.0% 1.00x
StrComplexWalk 715 714 -0.1% 1.00x
StrToInt 2058 2058 +0.0% 1.00x
StringAdder 3538 3526 -0.3% 1.00x (?)
StringBuilder 1014 1015 +0.1% 1.00x (?)
StringBuilderLong 932 938 +0.6% 0.99x (?)
StringEdits 114456 114891 +0.4% 1.00x (?)
StringEqualPointerComparison 333 333 +0.0% 1.00x
StringFromLongWholeSubstring 13521 13512 -0.1% 1.00x (?)
StringFromLongWholeSubstringGeneric 21 21 +0.0% 1.00x
StringHasPrefix 16 16 +0.0% 1.00x
StringHasPrefixUnicode 14547 14527 -0.1% 1.00x (?)
StringHasSuffix 16 16 +0.0% 1.00x
StringHasSuffixUnicode 61237 61236 -0.0% 1.00x (?)
StringInterpolation 10916 10933 +0.2% 1.00x (?)
StringMatch 7823 7818 -0.1% 1.00x (?)
StringUTF16Builder 1915 1913 -0.1% 1.00x (?)
StringWalk 1269 1270 +0.1% 1.00x
StringWithCString 53963 54031 +0.1% 1.00x (?)
SubstringComparable 1553 1553 +0.0% 1.00x
SubstringEqualString 1411 1414 +0.2% 1.00x (?)
SubstringEquatable 3405 3403 -0.1% 1.00x (?)
SubstringFromLongString 10 10 +0.0% 1.00x
SubstringFromLongStringGeneric 60 60 +0.0% 1.00x
SuffixAnyCollection 22 22 +0.0% 1.00x
SuffixAnyCollectionLazy 15095 15066 -0.2% 1.00x (?)
SuffixAnySeqCRangeIter 4970 4895 -1.5% 1.02x (?)
SuffixAnySeqCRangeIterLazy 4890 5147 +5.3% 0.95x (?)
SuffixAnySeqCntRange 16 16 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 16 16 +0.0% 1.00x
SuffixAnySequence 6646 6719 +1.1% 0.99x (?)
SuffixAnySequenceLazy 6559 6542 -0.3% 1.00x
SuffixArray 8 8 +0.0% 1.00x
SuffixArrayLazy 8 8 +0.0% 1.00x
SuffixCountableRange 10 10 +0.0% 1.00x
SuffixCountableRangeLazy 11 11 +0.0% 1.00x
SuffixSequence 4383 4553 +3.9% 0.96x (?)
SuffixSequenceLazy 4401 4401 +0.0% 1.00x
SuperChars 79900 80242 +0.4% 1.00x
TwoSum 964 964 +0.0% 1.00x
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode 257 257 +0.0% 1.00x
Walsh 351 351 +0.0% 1.00x
XorLoop 347 347 +0.0% 1.00x
accessGlobal 3 3 +0.0% 1.00x
accessInMatSet 18 18 +0.0% 1.00x
accessIndependent 2 2 +0.0% 1.00x

Unoptimized (Onone)

Improvement (2)
TEST OLD NEW DELTA SPEEDUP
Memset 49791 44010 -11.6% 1.13x (?)
ArrayAppendGenericStructs 1367 1294 -5.3% 1.06x
No Changes (319)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 4989 4931 -1.2% 1.01x (?)
AnyHashableWithAClass 84127 84163 +0.0% 1.00x (?)
Array2D 604503 604806 +0.1% 1.00x (?)
ArrayAppend 3722 3743 +0.6% 0.99x (?)
ArrayAppendArrayOfInt 650 650 +0.0% 1.00x
ArrayAppendAscii 51121 51124 +0.0% 1.00x (?)
ArrayAppendFromGeneric 654 654 +0.0% 1.00x
ArrayAppendLatin1 73602 74626 +1.4% 0.99x (?)
ArrayAppendLazyMap 209013 208984 -0.0% 1.00x (?)
ArrayAppendOptionals 1340 1299 -3.1% 1.03x (?)
ArrayAppendRepeatCol 213080 213051 -0.0% 1.00x (?)
ArrayAppendReserved 3241 3240 -0.0% 1.00x (?)
ArrayAppendSequence 75246 75253 +0.0% 1.00x (?)
ArrayAppendStrings 13755 13878 +0.9% 0.99x
ArrayAppendToFromGeneric 656 654 -0.3% 1.00x
ArrayAppendToGeneric 656 658 +0.3% 1.00x
ArrayAppendUTF16 74541 74546 +0.0% 1.00x (?)
ArrayInClass 6295 6296 +0.0% 1.00x (?)
ArrayLiteral 1748 1744 -0.2% 1.00x (?)
ArrayOfGenericPOD 3162 3166 +0.1% 1.00x (?)
ArrayOfGenericRef 10051 10046 -0.0% 1.00x (?)
ArrayOfPOD 1893 1892 -0.1% 1.00x
ArrayOfRef 9088 9083 -0.1% 1.00x (?)
ArrayPlusEqualArrayOfInt 653 653 +0.0% 1.00x
ArrayPlusEqualFiveElementCollection 297561 297598 +0.0% 1.00x (?)
ArrayPlusEqualSingleElementCollection 293186 293892 +0.2% 1.00x (?)
ArrayPlusEqualThreeElements 10812 10740 -0.7% 1.01x (?)
ArraySubscript 4199 4214 +0.4% 1.00x (?)
ArrayValueProp 3540 3538 -0.1% 1.00x (?)
ArrayValueProp2 18309 18328 +0.1% 1.00x
ArrayValueProp3 3886 3910 +0.6% 0.99x (?)
ArrayValueProp4 3832 3851 +0.5% 1.00x (?)
BitCount 1578 1571 -0.4% 1.00x (?)
ByteSwap 4094 4096 +0.0% 1.00x (?)
CStringLongAscii 4386 4395 +0.2% 1.00x (?)
CStringLongNonAscii 2310 2295 -0.6% 1.01x (?)
CStringShortAscii 8659 8636 -0.3% 1.00x (?)
Calculator 1185 1191 +0.5% 0.99x (?)
CaptureProp 108804 108516 -0.3% 1.00x (?)
CharIndexing_ascii_unicodeScalars 475359 471721 -0.8% 1.01x (?)
CharIndexing_ascii_unicodeScalars_Backwards 515232 515607 +0.1% 1.00x (?)
CharIndexing_chinese_unicodeScalars 362284 362228 -0.0% 1.00x (?)
CharIndexing_chinese_unicodeScalars_Backwards 399178 395991 -0.8% 1.01x (?)
CharIndexing_japanese_unicodeScalars 574992 574746 -0.0% 1.00x (?)
CharIndexing_japanese_unicodeScalars_Backwards 630533 636919 +1.0% 0.99x (?)
CharIndexing_korean_unicodeScalars 456165 463241 +1.6% 0.98x (?)
CharIndexing_korean_unicodeScalars_Backwards 521638 522102 +0.1% 1.00x (?)
CharIndexing_punctuatedJapanese_unicodeScalars 81003 81132 +0.2% 1.00x (?)
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 91932 89701 -2.4% 1.02x (?)
CharIndexing_punctuated_unicodeScalars 103845 103690 -0.1% 1.00x (?)
CharIndexing_punctuated_unicodeScalars_Backwards 113919 112438 -1.3% 1.01x (?)
CharIndexing_russian_unicodeScalars 393823 391572 -0.6% 1.01x (?)
CharIndexing_russian_unicodeScalars_Backwards 452639 433964 -4.1% 1.04x (?)
CharIndexing_tweet_unicodeScalars 933533 935790 +0.2% 1.00x (?)
CharIndexing_tweet_unicodeScalars_Backwards 1030698 1020836 -1.0% 1.01x (?)
CharIndexing_utf16_unicodeScalars 534595 528688 -1.1% 1.01x
CharIndexing_utf16_unicodeScalars_Backwards 579349 578584 -0.1% 1.00x (?)
CharIteration_ascii_unicodeScalars 185536 185570 +0.0% 1.00x (?)
CharIteration_ascii_unicodeScalars_Backwards 331789 328059 -1.1% 1.01x (?)
CharIteration_chinese_unicodeScalars 140287 140239 -0.0% 1.00x (?)
CharIteration_chinese_unicodeScalars_Backwards 247535 252259 +1.9% 0.98x
CharIteration_japanese_unicodeScalars 221469 221477 +0.0% 1.00x (?)
CharIteration_japanese_unicodeScalars_Backwards 392467 398997 +1.7% 0.98x
CharIteration_korean_unicodeScalars 179964 179971 +0.0% 1.00x (?)
CharIteration_korean_unicodeScalars_Backwards 317585 321126 +1.1% 0.99x (?)
CharIteration_punctuatedJapanese_unicodeScalars 32869 32863 -0.0% 1.00x (?)
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 57279 56737 -0.9% 1.01x (?)
CharIteration_punctuated_unicodeScalars 41319 41329 +0.0% 1.00x (?)
CharIteration_punctuated_unicodeScalars_Backwards 72126 73224 +1.5% 0.99x (?)
CharIteration_russian_unicodeScalars 153948 153979 +0.0% 1.00x (?)
CharIteration_russian_unicodeScalars_Backwards 276832 275527 -0.5% 1.00x (?)
CharIteration_tweet_unicodeScalars 365456 365504 +0.0% 1.00x (?)
CharIteration_tweet_unicodeScalars_Backwards 650054 648785 -0.2% 1.00x (?)
CharIteration_utf16_unicodeScalars 215885 215889 +0.0% 1.00x (?)
CharIteration_utf16_unicodeScalars_Backwards 428340 427443 -0.2% 1.00x
CharacterLiteralsLarge 6234 6238 +0.1% 1.00x (?)
CharacterLiteralsSmall 628 629 +0.2% 1.00x
Chars 49990 49990 +0.0% 1.00x
ClassArrayGetter 987 987 +0.0% 1.00x
DeadArray 115436 114782 -0.6% 1.01x (?)
Dictionary 3053 3052 -0.0% 1.00x (?)
Dictionary2 3486 3493 +0.2% 1.00x (?)
Dictionary2OfObjects 6086 6073 -0.2% 1.00x (?)
Dictionary3 1313 1329 +1.2% 0.99x
Dictionary3OfObjects 2333 2335 +0.1% 1.00x (?)
DictionaryBridge 2768 2776 +0.3% 1.00x (?)
DictionaryGroup 5033 5036 +0.1% 1.00x (?)
DictionaryGroupOfObjects 8086 8090 +0.0% 1.00x (?)
DictionaryLiteral 8225 8216 -0.1% 1.00x (?)
DictionaryOfObjects 6597 6587 -0.2% 1.00x (?)
DictionaryRemove 21258 21296 +0.2% 1.00x (?)
DictionaryRemoveOfObjects 60016 60194 +0.3% 1.00x (?)
DictionarySwap 5504 5508 +0.1% 1.00x (?)
DictionarySwapOfObjects 22937 22788 -0.6% 1.01x
DropFirstAnyCollection 18929 18928 -0.0% 1.00x (?)
DropFirstAnyCollectionLazy 136846 138420 +1.2% 0.99x (?)
DropFirstAnySeqCRangeIter 28731 28465 -0.9% 1.01x
DropFirstAnySeqCRangeIterLazy 28367 28350 -0.1% 1.00x
DropFirstAnySeqCntRange 18937 18922 -0.1% 1.00x
DropFirstAnySeqCntRangeLazy 18968 18981 +0.1% 1.00x
DropFirstAnySequence 12867 12865 -0.0% 1.00x (?)
DropFirstAnySequenceLazy 12894 12897 +0.0% 1.00x (?)
DropFirstArray 6378 6378 +0.0% 1.00x
DropFirstArrayLazy 44953 44931 -0.0% 1.00x (?)
DropFirstCountableRange 340 340 +0.0% 1.00x
DropFirstCountableRangeLazy 37170 37170 +0.0% 1.00x
DropFirstSequence 11698 11704 +0.1% 1.00x (?)
DropFirstSequenceLazy 11741 11740 -0.0% 1.00x (?)
DropLastAnyCollection 6346 6345 -0.0% 1.00x (?)
DropLastAnyCollectionLazy 46089 45983 -0.2% 1.00x (?)
DropLastAnySeqCRangeIter 43290 43309 +0.0% 1.00x (?)
DropLastAnySeqCRangeIterLazy 43578 43614 +0.1% 1.00x (?)
DropLastAnySeqCntRange 6331 6330 -0.0% 1.00x (?)
DropLastAnySeqCntRangeLazy 6302 6301 -0.0% 1.00x (?)
DropLastAnySequence 29125 29176 +0.2% 1.00x (?)
DropLastAnySequenceLazy 29012 29013 +0.0% 1.00x (?)
DropLastArray 2134 2133 -0.0% 1.00x
DropLastArrayLazy 14889 14880 -0.1% 1.00x (?)
DropLastCountableRange 118 118 +0.0% 1.00x
DropLastCountableRangeLazy 12449 12434 -0.1% 1.00x
DropLastSequence 28698 28689 -0.0% 1.00x (?)
DropLastSequenceLazy 28612 28619 +0.0% 1.00x (?)
DropWhileAnyCollection 24509 24517 +0.0% 1.00x (?)
DropWhileAnyCollectionLazy 27058 27077 +0.1% 1.00x
DropWhileAnySeqCRangeIter 30915 30920 +0.0% 1.00x (?)
DropWhileAnySeqCRangeIterLazy 26896 26907 +0.0% 1.00x
DropWhileAnySeqCntRange 24493 24504 +0.0% 1.00x (?)
DropWhileAnySeqCntRangeLazy 26846 26839 -0.0% 1.00x (?)
DropWhileAnySequence 15103 15102 -0.0% 1.00x (?)
DropWhileAnySequenceLazy 12460 12436 -0.2% 1.00x (?)
DropWhileArray 9839 9839 +0.0% 1.00x
DropWhileArrayLazy 16886 16890 +0.0% 1.00x (?)
DropWhileCountableRange 6013 6008 -0.1% 1.00x
DropWhileCountableRangeLazy 25890 25890 +0.0% 1.00x
DropWhileSequence 13957 13955 -0.0% 1.00x (?)
DropWhileSequenceLazy 11255 11256 +0.0% 1.00x (?)
EqualStringSubstring 664 664 +0.0% 1.00x
EqualSubstringString 661 662 +0.2% 1.00x
EqualSubstringSubstring 772 772 +0.0% 1.00x
EqualSubstringSubstringGenericEquatable 445 445 +0.0% 1.00x
ErrorHandling 6716 6792 +1.1% 0.99x
Hanoi 18224 18210 -0.1% 1.00x (?)
HashTest 18287 18290 +0.0% 1.00x (?)
Histogram 8707 8823 +1.3% 0.99x (?)
Integrate 720 719 -0.1% 1.00x
IterateData 12848 12845 -0.0% 1.00x (?)
Join 1189 1194 +0.4% 1.00x (?)
LazilyFilteredArrays 1693362 1693654 +0.0% 1.00x (?)
LazilyFilteredRange 679387 679047 -0.1% 1.00x (?)
LessSubstringSubstring 773 773 +0.0% 1.00x
LessSubstringSubstringGenericComparable 439 438 -0.2% 1.00x
LinkedList 40292 40090 -0.5% 1.01x (?)
MapReduce 37576 37604 +0.1% 1.00x
MapReduceAnyCollection 37384 37362 -0.1% 1.00x (?)
MapReduceAnyCollectionShort 49831 49853 +0.0% 1.00x (?)
MapReduceClass 42654 43183 +1.2% 0.99x (?)
MapReduceClassShort 54615 54538 -0.1% 1.00x (?)
MapReduceLazyCollection 32270 32272 +0.0% 1.00x (?)
MapReduceLazyCollectionShort 43452 43422 -0.1% 1.00x (?)
MapReduceLazySequence 25526 25536 +0.0% 1.00x (?)
MapReduceSequence 40757 40742 -0.0% 1.00x (?)
MapReduceShort 49952 49896 -0.1% 1.00x (?)
MapReduceShortString 276 279 +1.1% 0.99x (?)
MapReduceString 2627 2624 -0.1% 1.00x (?)
MonteCarloE 132521 132506 -0.0% 1.00x (?)
MonteCarloPi 52682 52679 -0.0% 1.00x (?)
NSDictionaryCastToSwift 6643 6647 +0.1% 1.00x (?)
NSError 702 701 -0.1% 1.00x (?)
NSStringConversion 821 821 +0.0% 1.00x
NopDeinit 182518 182679 +0.1% 1.00x (?)
ObjectAllocation 1440 1436 -0.3% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObject 26742 27277 +2.0% 0.98x
ObjectiveCBridgeFromNSArrayAnyObjectForced 9317 9313 -0.0% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 53107 53052 -0.1% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 46588 46845 +0.6% 0.99x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 123080 124645 +1.3% 0.99x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 7175 7101 -1.0% 1.01x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 113055 108200 -4.3% 1.04x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 117275 117857 +0.5% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObject 71025 70642 -0.5% 1.01x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 7365 7359 -0.1% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 84815 86495 +2.0% 0.98x (?)
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 84173 83349 -1.0% 1.01x
ObjectiveCBridgeFromNSString 5012 5099 +1.7% 0.98x (?)
ObjectiveCBridgeFromNSStringForced 3336 3343 +0.2% 1.00x (?)
ObjectiveCBridgeStubDataAppend 3766 3759 -0.2% 1.00x (?)
ObjectiveCBridgeStubDateAccess 1061 1061 +0.0% 1.00x
ObjectiveCBridgeStubDateMutation 485 485 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 33045 33399 +1.1% 0.99x (?)
ObjectiveCBridgeStubFromNSDate 3953 3934 -0.5% 1.00x (?)
ObjectiveCBridgeStubFromNSDateRef 4348 4364 +0.4% 1.00x (?)
ObjectiveCBridgeStubFromNSString 1153 1152 -0.1% 1.00x (?)
ObjectiveCBridgeStubFromNSStringRef 183 184 +0.5% 0.99x
ObjectiveCBridgeStubNSDataAppend 2712 2687 -0.9% 1.01x (?)
ObjectiveCBridgeStubNSDateMutationRef 16022 15634 -2.4% 1.02x (?)
ObjectiveCBridgeStubNSDateRefAccess 1213 1213 +0.0% 1.00x
ObjectiveCBridgeStubToArrayOfNSString 29326 28885 -1.5% 1.02x (?)
ObjectiveCBridgeStubToNSDate 15330 15543 +1.4% 0.99x (?)
ObjectiveCBridgeStubToNSDateRef 3313 3374 +1.8% 0.98x (?)
ObjectiveCBridgeStubToNSString 1567 1568 +0.1% 1.00x
ObjectiveCBridgeStubToNSStringRef 155 155 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 232526 232619 +0.0% 1.00x (?)
ObjectiveCBridgeStubURLAppendPathRef 233793 230622 -1.4% 1.01x (?)
ObjectiveCBridgeToNSArray 28729 28696 -0.1% 1.00x (?)
ObjectiveCBridgeToNSDictionary 46841 47034 +0.4% 1.00x (?)
ObjectiveCBridgeToNSSet 40612 41470 +2.1% 0.98x
ObjectiveCBridgeToNSString 1347 1344 -0.2% 1.00x
ObserverClosure 6734 6765 +0.5% 1.00x (?)
ObserverForwarderStruct 4788 4795 +0.1% 1.00x
ObserverPartiallyAppliedMethod 8162 8171 +0.1% 1.00x (?)
ObserverUnappliedMethod 8587 8586 -0.0% 1.00x (?)
OpenClose 394 394 +0.0% 1.00x
Phonebook 21882 21958 +0.3% 1.00x
PolymorphicCalls 5301 5308 +0.1% 1.00x (?)
PopFrontArray 9906 9908 +0.0% 1.00x (?)
PopFrontArrayGeneric 8829 8830 +0.0% 1.00x (?)
PopFrontUnsafePointer 97098 97298 +0.2% 1.00x
PrefixAnyCollection 18966 18967 +0.0% 1.00x (?)
PrefixAnyCollectionLazy 137906 137947 +0.0% 1.00x (?)
PrefixAnySeqCRangeIter 22734 22656 -0.3% 1.00x (?)
PrefixAnySeqCRangeIterLazy 22613 22588 -0.1% 1.00x (?)
PrefixAnySeqCntRange 18928 18923 -0.0% 1.00x (?)
PrefixAnySeqCntRangeLazy 18858 18858 +0.0% 1.00x
PrefixAnySequence 10657 10656 -0.0% 1.00x (?)
PrefixAnySequenceLazy 10623 10619 -0.0% 1.00x
PrefixArray 6376 6374 -0.0% 1.00x (?)
PrefixArrayLazy 44927 44930 +0.0% 1.00x (?)
PrefixCountableRange 340 339 -0.3% 1.00x
PrefixCountableRangeLazy 37220 37210 -0.0% 1.00x (?)
PrefixSequence 9548 9549 +0.0% 1.00x (?)
PrefixSequenceLazy 9725 9686 -0.4% 1.00x (?)
PrefixWhileAnyCollection 35771 35777 +0.0% 1.00x (?)
PrefixWhileAnyCollectionLazy 22327 22334 +0.0% 1.00x (?)
PrefixWhileAnySeqCRangeIter 40780 40808 +0.1% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 22284 22275 -0.0% 1.00x
PrefixWhileAnySeqCntRange 35789 35774 -0.0% 1.00x (?)
PrefixWhileAnySeqCntRangeLazy 22258 22260 +0.0% 1.00x (?)
PrefixWhileAnySequence 29422 29408 -0.0% 1.00x (?)
PrefixWhileAnySequenceLazy 11218 11220 +0.0% 1.00x (?)
PrefixWhileArray 16837 16837 +0.0% 1.00x
PrefixWhileArrayLazy 14793 14803 +0.1% 1.00x
PrefixWhileCountableRange 17291 17289 -0.0% 1.00x (?)
PrefixWhileCountableRangeLazy 21480 21477 -0.0% 1.00x (?)
PrefixWhileSequence 28310 28322 +0.0% 1.00x (?)
PrefixWhileSequenceLazy 10261 10292 +0.3% 1.00x (?)
Prims 10120 10138 +0.2% 1.00x (?)
ProtocolDispatch 6945 6943 -0.0% 1.00x (?)
ProtocolDispatch2 498 498 +0.0% 1.00x
RC4 19459 19454 -0.0% 1.00x (?)
RGBHistogram 34159 34031 -0.4% 1.00x (?)
RGBHistogramOfObjects 107876 107981 +0.1% 1.00x (?)
RangeAssignment 5764 5769 +0.1% 1.00x (?)
RecursiveOwnedParameter 11185 11188 +0.0% 1.00x (?)
ReversedArray 43775 43878 +0.2% 1.00x
ReversedBidirectional 77362 79207 +2.4% 0.98x
ReversedDictionary 28600 28587 -0.0% 1.00x (?)
SetExclusiveOr 21845 21830 -0.1% 1.00x (?)
SetExclusiveOr_OfObjects 48611 48581 -0.1% 1.00x (?)
SetIntersect 11529 11527 -0.0% 1.00x (?)
SetIntersect_OfObjects 13131 13126 -0.0% 1.00x
SetIsSubsetOf 1742 1742 +0.0% 1.00x
SetIsSubsetOf_OfObjects 1655 1651 -0.2% 1.00x (?)
SetUnion 12340 12295 -0.4% 1.00x
SetUnion_OfObjects 33916 33918 +0.0% 1.00x (?)
SevenBoom 1610 1605 -0.3% 1.00x (?)
Sim2DArray 30021 30016 -0.0% 1.00x (?)
SortLargeExistentials 17856 17842 -0.1% 1.00x (?)
SortLettersInPlace 3163 3157 -0.2% 1.00x (?)
SortSortedStrings 1413 1412 -0.1% 1.00x (?)
SortStrings 2450 2451 +0.0% 1.00x (?)
SortStringsUnicode 8751 8768 +0.2% 1.00x (?)
StackPromo 101769 102403 +0.6% 0.99x (?)
StaticArray 4566 4565 -0.0% 1.00x (?)
StrComplexWalk 6820 6815 -0.1% 1.00x (?)
StrToInt 102052 102332 +0.3% 1.00x (?)
StringAdder 3783 3794 +0.3% 1.00x (?)
StringBuilder 6954 6944 -0.1% 1.00x (?)
StringBuilderLong 1111 1100 -1.0% 1.01x
StringEdits 377532 378493 +0.3% 1.00x (?)
StringEqualPointerComparison 2394 2394 +0.0% 1.00x
StringFromLongWholeSubstring 13221 13227 +0.0% 1.00x
StringFromLongWholeSubstringGeneric 209 206 -1.4% 1.01x
StringHasPrefix 1720 1676 -2.6% 1.03x
StringHasPrefixUnicode 16236 16220 -0.1% 1.00x (?)
StringHasSuffix 1838 1839 +0.1% 1.00x (?)
StringHasSuffixUnicode 63343 63373 +0.0% 1.00x (?)
StringInterpolation 13932 13834 -0.7% 1.01x (?)
StringMatch 31824 31784 -0.1% 1.00x (?)
StringUTF16Builder 7834 7807 -0.3% 1.00x (?)
StringWalk 12560 12567 +0.1% 1.00x
StringWithCString 54012 54013 +0.0% 1.00x (?)
SubstringComparable 4153 4145 -0.2% 1.00x (?)
SubstringEqualString 6316 6488 +2.7% 0.97x (?)
SubstringEquatable 8939 8940 +0.0% 1.00x (?)
SubstringFromLongString 12 12 +0.0% 1.00x
SubstringFromLongStringGeneric 111 111 +0.0% 1.00x
SuffixAnyCollection 6350 6352 +0.0% 1.00x (?)
SuffixAnyCollectionLazy 46407 46064 -0.7% 1.01x
SuffixAnySeqCRangeIter 41243 41231 -0.0% 1.00x (?)
SuffixAnySeqCRangeIterLazy 41250 41247 -0.0% 1.00x (?)
SuffixAnySeqCntRange 6321 6322 +0.0% 1.00x (?)
SuffixAnySeqCntRangeLazy 6304 6303 -0.0% 1.00x (?)
SuffixAnySequence 26836 26896 +0.2% 1.00x (?)
SuffixAnySequenceLazy 26703 26701 -0.0% 1.00x (?)
SuffixArray 2126 2136 +0.5% 1.00x
SuffixArrayLazy 14887 14888 +0.0% 1.00x (?)
SuffixCountableRange 118 118 +0.0% 1.00x
SuffixCountableRangeLazy 12449 12443 -0.0% 1.00x
SuffixSequence 26288 26402 +0.4% 1.00x (?)
SuffixSequenceLazy 26286 26286 +0.0% 1.00x
SuperChars 193558 190195 -1.7% 1.02x
TwoSum 4261 4244 -0.4% 1.00x (?)
TypeFlood 168 171 +1.8% 0.98x (?)
UTF8Decode 37062 37446 +1.0% 0.99x (?)
Walsh 11926 11906 -0.2% 1.00x (?)
XorLoop 23714 23705 -0.0% 1.00x (?)
accessGlobal 181 181 +0.0% 1.00x
accessInMatSet 328 327 -0.3% 1.00x (?)
accessIndependent 128 128 +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

@moiseev moiseev merged commit 7d3627a into apple:master Jul 13, 2017
@lorentey lorentey deleted the binaryinteger-words branch July 13, 2017 20:00
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

6 participants