Skip to content

Conversation

swiftix
Copy link
Contributor

@swiftix swiftix commented Oct 13, 2017

Serialize SIL right before the performance inlining. The aim is to serialize a "high-level" SIL, which still contains all the calls of @_semantics functions. This preserves more information and allows for better optimizations of the clients.

This mode of serialization becomes the new default.

@swiftix
Copy link
Contributor Author

swiftix commented Oct 13, 2017

@swift-ci please smoke test

@@ -156,6 +156,13 @@ void SILGenFunction::emitCurryThunk(SILDeclRef thunk) {
SILValue toFn = getNextUncurryLevelRef(*this, vd, thunk,
selfArg, subs);

// A curry thunk is serialized only if the target callee is serialized.
if (auto *FRI = dyn_cast<FunctionRefInst>(toFn)) {
if (FRI->getReferencedFunction()->isSerialized() ==
Copy link
Contributor

Choose a reason for hiding this comment

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

Cn you move this elsewhere into emitCurryThunk() etc?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Sorry, I do not quite understand what you mean. It is in the emitCurryThunk already.

Copy link
Contributor

Choose a reason for hiding this comment

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

What was the bug that prompted this change? I'm not convinced it is correct.

Remember that the serialized flag has three states:

  • not serialized
  • serializable
  • serialized

"Serializable" means that it is serialized only if referenced from another serialized function. Since curry thunks have shared linkage, they need to be serialized if referenced from another serialized function (ie, the caller). It doesn't matter if the callee is serialized or not. Consider the case where the callee is public and not serialized; the thunk has shared linkage, which your change will make not serialized. Then if I use the curry thunk from a serialized caller, it will blow up.

public struct S {
  public func f() {}
}

@_inlineable public func g() {
  print(S.f)
}

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The bug was that the curry thunk was marked serialized but the actual function that it calls was marked as NotSerialized.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I'm all open to suggestions regarding how to fix it in a proper way.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

My naive idea was that if the target function is NotSerialized, then we cannot mark the curry thunk Serialized

Copy link
Contributor

Choose a reason for hiding this comment

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

Can you come up with a reduced test case since this bug is not really related to your PR?

Serialized functions can reference non-serialized functions if they're public. So a curry thunk for anything public should be serializable since it can be serialized.

However, curry thunks for internal things should not be serializable. Was this the problem?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

May be. I need to reproduce it again to come up with a small test-case. I haven't created one when I hit it ;-(


/// Removes [serialized] from all functions. This allows for more
/// optimizations and for a better dead function elimination.
static void removeSerializedFlagFromAllFunctions(SILModule &M) {
Copy link
Contributor

Choose a reason for hiding this comment

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

I would move this into the SIL pass; I would not expect SILModule::serialize() itself to have any side effects on the module's declarations, for example I might call it during debugging in the middle of the pipeline.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

OK. I'll move it back. It was there already ;-)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done

@swiftix swiftix force-pushed the sil-serialization-before-optimizations5 branch from 9a2ee7e to 92f3ae0 Compare October 13, 2017 21:28
@swiftix
Copy link
Contributor Author

swiftix commented Oct 13, 2017

@swift-ci please smoke test

1 similar comment
@swiftix
Copy link
Contributor Author

swiftix commented Oct 13, 2017

@swift-ci please smoke test

@swiftix swiftix force-pushed the sil-serialization-before-optimizations5 branch from 6a8b0c2 to b383185 Compare October 14, 2017 00:05
@swiftix
Copy link
Contributor Author

swiftix commented Oct 14, 2017

@swift-ci please smoke test

1 similar comment
@swiftix
Copy link
Contributor Author

swiftix commented Oct 14, 2017

@swift-ci please smoke test

@swiftix
Copy link
Contributor Author

swiftix commented Oct 14, 2017

@swift-ci please smoke test Linux

2 similar comments
@swiftix
Copy link
Contributor Author

swiftix commented Oct 14, 2017

@swift-ci please smoke test Linux

@swiftix
Copy link
Contributor Author

swiftix commented Oct 14, 2017

@swift-ci please smoke test Linux

@@ -732,12 +732,14 @@ SILFunction *swift::getEligibleFunction(FullApplySite AI,
// A non-fragile function may not be inlined into a fragile function.
if (Caller->isSerialized() &&
!Callee->hasValidLinkageForFragileInline()) {
#if 0
if (!Callee->hasValidLinkageForFragileRef()) {
Copy link
Contributor

Choose a reason for hiding this comment

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

Please don't remove this check. It catches cases where serializable functions reference non-public things.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

It is only for now, to reproduce the failure.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

BTW, this is what fails due to public_external [serialized] functions as I explained in chat.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I have a public_external function from the stdlib which was imported. It calls another public_external function. Both are public_external [serialized]. We specialize the callee and give it a shared linkage. And we don't mark it [serialized]. Now we have a public_external [serialized] function that calls a shared non-serialized function. Later on, we assert in the code snippet above that I disabled temporarily.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@slavapestov What should be the right fix for such a case in your opinion?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Please don't remove this check. It catches cases where serializable functions reference non-public things.

BTW, don't we catch it in SILVerifier anyways?

Copy link
Contributor Author

@swiftix swiftix Oct 14, 2017

Choose a reason for hiding this comment

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

The failure here https://ci.swift.org/job/swift-PR-Linux-smoke-test/1717/ seems to run into a manifestation of the same issue. We specialize and replace the apply in the [serialized] caller function to call the shared non-serialized specialized callee function.

Copy link
Contributor

Choose a reason for hiding this comment

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

Specializations of public serialized functions should always be shared serialized.

Copy link
Contributor

Choose a reason for hiding this comment

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

And yes we will ultimately catch it in the verifier but it's better to catch it sooner, closer to the original problem.

@slavapestov
Copy link
Contributor

@swiftix I suspect there is a bug elsewhere in the optimizer that is causing it to inline something that it shouldn't, and it just happens to involve curry thunks. I would suggest removing the hacks, coming up with a reduced test case and trying to fix the underlying problem.

@slavapestov
Copy link
Contributor

slavapestov commented Oct 14, 2017

@swiftix I see this code in Generics.cpp:

  // If the caller and callee are both fragile, preserve the fragility when
  // cloning the callee. Otherwise, strip it off so that we can optimize
  // the body more.
  IsSerialized_t Serialized = IsNotSerialized;
  if (F->isSerialized() && RefF->isSerialized())
    Serialized = IsSerializable;

Any ideas what's going wrong? If we specialize the same function F from a serialized context and a non-serialized contexts, the two specializations should get different manglings, too. But it might be worth double checking that.

void SpecializationMangler::beginMangling() {
  ASTMangler::beginManglingWithoutPrefix();
  if (Serialized)
    ArgOpBuffer << 'q';
  ArgOpBuffer << char(uint8_t(Pass) + '0');
}

@slavapestov
Copy link
Contributor

_T0s13FloatingPointPsE08floatingB5Classs0aB14ClassificationOvgSd_Tgq5 ---> generic specialization <preserving fragile attribute, Swift.Double> of (extension in Swift):Swift.FloatingPoint.floatingPointClass.getter : Swift.FloatingPointClassification

So it even has q mangled into its name, why wasn't it marked serialized?

Anyway I'm sure you'll figure it out :)

The `serialize` method can be called multiple times, but it will perform the actual serialization only the first time.
By means of this API we get the flexibility to serialize the SILModule not only after all the optimizations, but  e.g. at any time during optimizations.
@swiftix swiftix force-pushed the sil-serialization-before-optimizations5 branch from b383185 to 2423e9e Compare October 14, 2017 06:21
@swiftix
Copy link
Contributor Author

swiftix commented Oct 14, 2017

@swift-ci please smoke test

1 similar comment
@swiftix
Copy link
Contributor Author

swiftix commented Oct 14, 2017

@swift-ci please smoke test

@swiftix
Copy link
Contributor Author

swiftix commented Oct 14, 2017

@swift-ci please test

1 similar comment
@swiftix
Copy link
Contributor Author

swiftix commented Oct 14, 2017

@swift-ci please test

@swiftix
Copy link
Contributor Author

swiftix commented Oct 14, 2017

@swift-ci Please test source compatibility

1 similar comment
@swiftix
Copy link
Contributor Author

swiftix commented Oct 14, 2017

@swift-ci Please test source compatibility

@swiftix
Copy link
Contributor Author

swiftix commented Oct 14, 2017

@swift-ci please smoke test compiler performance

1 similar comment
@swiftix
Copy link
Contributor Author

swiftix commented Oct 14, 2017

@swift-ci please smoke test compiler performance

@swift-ci
Copy link
Contributor

Build comment file:

Summary for master smoketest

Regressions found (see below)

Debug

PR vs. head (debug)

PR vs. head, changed counters (debug)

Regressed (31)
Regressed in Alamofire (11)
name old new delta delta_pct
Sema.NumLazyGenericEnvironments 30212 30397 185 0.61% ⛔
Sema.NumTypesDeserialized 157733 158177 444 0.28% ⛔
Sema.NumLazyIterableDeclContexts 20928 20979 51 0.24% ⛔
SILModule.NumSILOptFunctions 4203 4212 9 0.21% ⛔
Sema.NumConformancesDeserialized 35018 35093 75 0.21% ⛔
IRModule.NumIRFunctions 5106 5115 9 0.18% ⛔
IRModule.NumIRValueSymbols 8420 8433 13 0.15% ⛔
Sema.NumDeclsDeserialized 197757 198023 266 0.13% ⛔
IRModule.NumIRGlobals 4692 4697 5 0.11% ⛔
Sema.NumLazyGenericEnvironmentsLoaded 2492 2493 1 0.04% ⛔
AST.NumTotalClangImportedEntities 24816 24822 6 0.02% ⛔
Regressed in Kingfisher (7)
name old new delta delta_pct
Sema.NumConformancesDeserialized 67110 67388 278 0.41% ⛔
Sema.NumLazyGenericEnvironments 66704 66900 196 0.29% ⛔
Sema.NumTypesDeserialized 336054 336432 378 0.11% ⛔
Sema.NumDeclsDeserialized 410148 410403 255 0.06% ⛔
Sema.NumGenericSignatureBuilders 11064 11068 4 0.04% ⛔
Sema.NumLazyGenericEnvironmentsLoaded 5348 5350 2 0.04% ⛔
AST.NumTotalClangImportedEntities 66550 66562 12 0.02% ⛔
Regressed in ReactiveCocoa (10)
name old new delta delta_pct
SILModule.NumSILOptFunctions 4272 4337 65 1.52% ⛔
IRModule.NumIRFunctions 6866 6954 88 1.28% ⛔
IRModule.NumIRValueSymbols 14444 14594 150 1.04% ⛔
IRModule.NumIRGlobals 9564 9626 62 0.65% ⛔
LLVM.NumLLVMBytesOutput 6504800 6519496 14696 0.23% ⛔
Sema.NumLazyGenericEnvironments 102292 102496 204 0.2% ⛔
Sema.NumTypesDeserialized 462493 462998 505 0.11% ⛔
Sema.NumDeclsDeserialized 536455 536957 502 0.09% ⛔
Sema.NumConformancesDeserialized 52530 52560 30 0.06% ⛔
Sema.NumLazyGenericEnvironmentsLoaded 10098 10104 6 0.06% ⛔
Regressed in ReactiveSwift (2)
name old new delta delta_pct
Sema.NumLazyGenericEnvironments 52998 53212 214 0.4% ⛔
Sema.NumTypesDeserialized 252942 253191 249 0.1% ⛔
Regressed in Result (1)
name old new delta delta_pct
Sema.NumLazyGenericEnvironments 4798 4820 22 0.46% ⛔
Improved (19)
Improved in Alamofire (3)
name old new delta delta_pct
LLVM.NumLLVMBytesOutput 3024032 3020768 -3264 -0.11% ✅
IRModule.NumIRInsts 134059 132822 -1237 -0.92% ✅
IRModule.NumIRBasicBlocks 13904 13625 -279 -2.01% ✅
Improved in Kingfisher (4)
name old new delta delta_pct
LLVM.NumLLVMBytesOutput 4948816 4943960 -4856 -0.1% ✅
IRModule.NumIRInsts 184787 184325 -462 -0.25% ✅
SILModule.NumSILOptFunctions 8030 7983 -47 -0.59% ✅
IRModule.NumIRBasicBlocks 17923 17775 -148 -0.83% ✅
Improved in ReactiveCocoa (2)
name old new delta delta_pct
IRModule.NumIRInsts 99393 98929 -464 -0.47% ✅
IRModule.NumIRBasicBlocks 11458 11068 -390 -3.4% ✅
Improved in ReactiveSwift (5)
name old new delta delta_pct
Sema.NumDeclsDeserialized 302089 302035 -54 -0.02% ✅
IRModule.NumIRInsts 314580 314500 -80 -0.03% ✅
Sema.NumConformancesDeserialized 48634 48604 -30 -0.06% ✅
IRModule.NumIRBasicBlocks 19182 19130 -52 -0.27% ✅
SILModule.NumSILOptFunctions 7161 7139 -22 -0.31% ✅
Improved in Result (5)
name old new delta delta_pct
Sema.NumLazyIterableDeclContexts 2925 2924 -1 -0.03% ✅
Sema.NumTypesDeserialized 22022 21990 -32 -0.15% ✅
Sema.NumDeclsDeserialized 26541 26481 -60 -0.23% ✅
Sema.NumConformancesDeserialized 1946 1928 -18 -0.92% ✅
SILModule.NumSILOptFunctions 567 558 -9 -1.59% ✅
Unchanged (abs(delta) < 0.01% or 100000usec) (65)
Unchanged (abs(delta) < 0.01% or 100000usec) in Alamofire (9)
name old new delta delta_pct
AST.NumImportedExternalDefinitions 7982 7982 0 0.0%
AST.NumLoadedModules 522 522 0 0.0%
AST.NumUsedConformances 432 432 0 0.0%
SILModule.NumSILGenFunctions 2457 2457 0 0.0%
Sema.NumConstraintScopes 41279 41279 0 0.0%
Sema.NumDeclsValidated 38769 38769 0 0.0%
Sema.NumFunctionsTypechecked 5454 5454 0 0.0%
Sema.NumGenericSignatureBuilders 3909 3909 0 0.0%
Sema.NumTypesValidated 14335 14335 0 0.0%
Unchanged (abs(delta) < 0.01% or 100000usec) in Kingfisher (12)
name old new delta delta_pct
AST.NumImportedExternalDefinitions 26842 26842 0 0.0%
AST.NumLoadedModules 1323 1323 0 0.0%
AST.NumUsedConformances 850 850 0 0.0%
IRModule.NumIRFunctions 7748 7748 0 0.0%
IRModule.NumIRGlobals 9063 9063 0 0.0%
IRModule.NumIRValueSymbols 14448 14448 0 0.0%
SILModule.NumSILGenFunctions 4174 4174 0 0.0%
Sema.NumConstraintScopes 316984 316984 0 0.0%
Sema.NumDeclsValidated 83674 83674 0 0.0%
Sema.NumFunctionsTypechecked 16546 16546 0 0.0%
Sema.NumTypesValidated 21490 21490 0 0.0%
Sema.NumLazyIterableDeclContexts 53424 53421 -3 -0.01%
Unchanged (abs(delta) < 0.01% or 100000usec) in ReactiveCocoa (11)
name old new delta delta_pct
AST.NumTotalClangImportedEntities 113598 113610 12 0.01%
Sema.NumLazyIterableDeclContexts 104934 104944 10 0.01%
AST.NumImportedExternalDefinitions 39682 39682 0 0.0%
AST.NumLoadedModules 3536 3536 0 0.0%
AST.NumUsedConformances 700 700 0 0.0%
SILModule.NumSILGenFunctions 2892 2892 0 0.0%
Sema.NumConstraintScopes 63936 63936 0 0.0%
Sema.NumDeclsValidated 91498 91498 0 0.0%
Sema.NumFunctionsTypechecked 23542 23542 0 0.0%
Sema.NumGenericSignatureBuilders 24020 24020 0 0.0%
Sema.NumTypesValidated 41370 41370 0 0.0%
Unchanged (abs(delta) < 0.01% or 100000usec) in ReactiveSwift (16)
name old new delta delta_pct
AST.NumImportedExternalDefinitions 5606 5606 0 0.0%
AST.NumLoadedModules 880 880 0 0.0%
AST.NumTotalClangImportedEntities 18812 18812 0 0.0%
AST.NumUsedConformances 724 724 0 0.0%
IRModule.NumIRFunctions 10541 10541 0 0.0%
IRModule.NumIRGlobals 12432 12432 0 0.0%
IRModule.NumIRValueSymbols 19287 19287 0 0.0%
LLVM.NumLLVMBytesOutput 8305196 8304956 -240 -0.0%
SILModule.NumSILGenFunctions 4813 4813 0 0.0%
Sema.NumConstraintScopes 37766 37766 0 0.0%
Sema.NumDeclsValidated 42648 42648 0 0.0%
Sema.NumFunctionsTypechecked 4398 4398 0 0.0%
Sema.NumGenericSignatureBuilders 10680 10680 0 0.0%
Sema.NumLazyGenericEnvironmentsLoaded 7420 7420 0 0.0%
Sema.NumTypesValidated 81156 81156 0 0.0%
Sema.NumLazyIterableDeclContexts 36283 36278 -5 -0.01%
Unchanged (abs(delta) < 0.01% or 100000usec) in Result (17)
name old new delta delta_pct
AST.NumImportedExternalDefinitions 338 338 0 0.0%
AST.NumLoadedModules 108 108 0 0.0%
AST.NumTotalClangImportedEntities 1098 1098 0 0.0%
AST.NumUsedConformances 62 62 0 0.0%
IRModule.NumIRBasicBlocks 1272 1272 0 0.0%
IRModule.NumIRFunctions 632 632 0 0.0%
IRModule.NumIRGlobals 758 758 0 0.0%
IRModule.NumIRInsts 16546 16546 0 0.0%
IRModule.NumIRValueSymbols 1172 1172 0 0.0%
LLVM.NumLLVMBytesOutput 399732 399732 0 0.0%
SILModule.NumSILGenFunctions 314 314 0 0.0%
Sema.NumConstraintScopes 3738 3738 0 0.0%
Sema.NumDeclsValidated 1538 1538 0 0.0%
Sema.NumFunctionsTypechecked 298 298 0 0.0%
Sema.NumGenericSignatureBuilders 468 468 0 0.0%
Sema.NumLazyGenericEnvironmentsLoaded 486 486 0 0.0%
Sema.NumTypesValidated 1184 1184 0 0.0%

PR vs. head, changed timers (debug)

Regressed (0)
Improved (0)
Unchanged (abs(delta) < 0.01% or 1000000usec) (9)
Unchanged (abs(delta) < 0.01% or 1000000usec) in Alamofire (1)
name old new delta delta_pct
time.swift-driver.Alamofire-all-x86_64_apple_macosx10.10-o-Onone.wall 5946564 5915980 -30584 -0.51%
Unchanged (abs(delta) < 0.01% or 1000000usec) in Kingfisher (2)
name old new delta delta_pct
time.swift-driver.Kingfisher-all-arm64_apple_ios8.0-o-Onone.wall 4907164 4896099 -11065 -0.23%
time.swift-driver.Kingfisher-all-armv7_apple_ios8.0-o-Onone.wall 5108884 5097076 -11808 -0.23%
Unchanged (abs(delta) < 0.01% or 1000000usec) in ReactiveCocoa (2)
name old new delta delta_pct
time.swift-driver.ReactiveCocoa-all-armv7_apple_ios8.0-o-Onone.wall 3662900 3712391 49491 1.35%
time.swift-driver.ReactiveCocoa-all-arm64_apple_ios8.0-o-Onone.wall 3826814 3708224 -118590 -3.1%
Unchanged (abs(delta) < 0.01% or 1000000usec) in ReactiveSwift (2)
name old new delta delta_pct
time.swift-driver.ReactiveSwift-all-armv7_apple_ios8.0-o-Onone.wall 3573413 3563269 -10144 -0.28%
time.swift-driver.ReactiveSwift-all-arm64_apple_ios8.0-o-Onone.wall 3514111 3464659 -49452 -1.41%
Unchanged (abs(delta) < 0.01% or 1000000usec) in Result (2)
name old new delta delta_pct
time.swift-driver.Result-all-arm64_apple_ios8.0-o-Onone.wall 1548433 1552562 4129 0.27%
time.swift-driver.Result-all-armv7_apple_ios8.0-o-Onone.wall 1570308 1568981 -1327 -0.08%

PR vs. baseline (debug)

PR vs. baseline, changed counters (debug)

Regressed (24)
Regressed in Alamofire (5)
name old new delta delta_pct
Sema.NumConformancesDeserialized 31066 35093 4027 12.96% ⛔
SILModule.NumSILOptFunctions 3908 4212 304 7.78% ⛔
Sema.NumDeclsDeserialized 193026 198023 4997 2.59% ⛔
Sema.NumLazyGenericEnvironments 29740 30397 657 2.21% ⛔
LLVM.NumLLVMBytesOutput 2995540 3020768 25228 0.84% ⛔
Regressed in Kingfisher (4)
name old new delta delta_pct
SILModule.NumSILOptFunctions 7512 7983 471 6.27% ⛔
LLVM.NumLLVMBytesOutput 4701704 4943960 242256 5.15% ⛔
Sema.NumLazyGenericEnvironments 65900 66900 1000 1.52% ⛔
Sema.NumDeclsDeserialized 406573 410403 3830 0.94% ⛔
Regressed in ReactiveCocoa (10)
name old new delta delta_pct
Sema.NumConstraintScopes 42990 63936 20946 48.72% ⛔
LLVM.NumLLVMBytesOutput 4775608 6519496 1743888 36.52% ⛔
Sema.NumFunctionsTypechecked 18516 23542 5026 27.14% ⛔
AST.NumImportedExternalDefinitions 34112 39682 5570 16.33% ⛔
Sema.NumLazyGenericEnvironments 90692 102496 11804 13.02% ⛔
AST.NumTotalClangImportedEntities 101754 113610 11856 11.65% ⛔
Sema.NumDeclsDeserialized 494670 536957 42287 8.55% ⛔
SILModule.NumSILOptFunctions 4068 4337 269 6.61% ⛔
Sema.NumTypesDeserialized 447750 462998 15248 3.41% ⛔
IRModule.NumIRGlobals 9536 9626 90 0.94% ⛔
Regressed in ReactiveSwift (5)
name old new delta delta_pct
Sema.NumLazyGenericEnvironments 50740 53212 2472 4.87% ⛔
Sema.NumDeclsDeserialized 291790 302035 10245 3.51% ⛔
LLVM.NumLLVMBytesOutput 8049848 8304956 255108 3.17% ⛔
SILModule.NumSILOptFunctions 6970 7139 169 2.42% ⛔
IRModule.NumIRGlobals 12388 12432 44 0.36% ⛔
Improved (64)
Improved in Alamofire (17)
name old new delta delta_pct
SILModule.NumSILGenFunctions 2463 2457 -6 -0.24% ✅
Sema.NumTypesDeserialized 158862 158177 -685 -0.43% ✅
AST.NumUsedConformances 435 432 -3 -0.69% ✅
IRModule.NumIRGlobals 4765 4697 -68 -1.43% ✅
Sema.NumFunctionsTypechecked 5545 5454 -91 -1.64% ✅
Sema.NumLazyIterableDeclContexts 21455 20979 -476 -2.22% ✅
IRModule.NumIRValueSymbols 8767 8433 -334 -3.81% ✅
IRModule.NumIRFunctions 5357 5115 -242 -4.52% ✅
Sema.NumConstraintScopes 43672 41279 -2393 -5.48% ✅
Sema.NumLazyGenericEnvironmentsLoaded 2641 2493 -148 -5.6% ✅
AST.NumImportedExternalDefinitions 8501 7982 -519 -6.11% ✅
IRModule.NumIRInsts 145724 132822 -12902 -8.85% ✅
IRModule.NumIRBasicBlocks 15117 13625 -1492 -9.87% ✅
AST.NumTotalClangImportedEntities 27881 24822 -3059 -10.97% ✅
Sema.NumTypesValidated 18298 14335 -3963 -21.66% ✅
Sema.NumDeclsValidated 61341 38769 -22572 -36.8% ✅
Sema.NumGenericSignatureBuilders 13996 3909 -10087 -72.07% ✅
Improved in Kingfisher (18)
name old new delta delta_pct
SILModule.NumSILGenFunctions 4186 4174 -12 -0.29% ✅
IRModule.NumIRGlobals 9117 9063 -54 -0.59% ✅
AST.NumUsedConformances 858 850 -8 -0.93% ✅
Sema.NumTypesDeserialized 344515 336432 -8083 -2.35% ✅
Sema.NumLazyGenericEnvironmentsLoaded 5480 5350 -130 -2.37% ✅
Sema.NumLazyIterableDeclContexts 54859 53421 -1438 -2.62% ✅
IRModule.NumIRValueSymbols 14986 14448 -538 -3.59% ✅
Sema.NumConformancesDeserialized 70852 67388 -3464 -4.89% ✅
IRModule.NumIRInsts 194978 184325 -10653 -5.46% ✅
IRModule.NumIRFunctions 8204 7748 -456 -5.56% ✅
Sema.NumFunctionsTypechecked 17534 16546 -988 -5.63% ✅
IRModule.NumIRBasicBlocks 18956 17775 -1181 -6.23% ✅
AST.NumImportedExternalDefinitions 28988 26842 -2146 -7.4% ✅
AST.NumTotalClangImportedEntities 75188 66562 -8626 -11.47% ✅
Sema.NumTypesValidated 27944 21490 -6454 -23.1% ✅
Sema.NumDeclsValidated 125016 83674 -41342 -33.07% ✅
Sema.NumConstraintScopes 581970 316984 -264986 -45.53% ✅
Sema.NumGenericSignatureBuilders 33750 11068 -22682 -67.21% ✅
Improved in ReactiveCocoa (12)
name old new delta delta_pct
SILModule.NumSILGenFunctions 2904 2892 -12 -0.41% ✅
AST.NumUsedConformances 704 700 -4 -0.57% ✅
IRModule.NumIRValueSymbols 14686 14594 -92 -0.63% ✅
Sema.NumLazyGenericEnvironmentsLoaded 10174 10104 -70 -0.69% ✅
Sema.NumLazyIterableDeclContexts 105954 104944 -1010 -0.95% ✅
IRModule.NumIRFunctions 7080 6954 -126 -1.78% ✅
IRModule.NumIRInsts 102753 98929 -3824 -3.72% ✅
IRModule.NumIRBasicBlocks 11870 11068 -802 -6.76% ✅
Sema.NumConformancesDeserialized 57916 52560 -5356 -9.25% ✅
Sema.NumDeclsValidated 106644 91498 -15146 -14.2% ✅
Sema.NumTypesValidated 49050 41370 -7680 -15.66% ✅
Sema.NumGenericSignatureBuilders 49468 24020 -25448 -51.44% ✅
Improved in ReactiveSwift (17)
name old new delta delta_pct
Sema.NumTypesDeserialized 253286 253191 -95 -0.04% ✅
SILModule.NumSILGenFunctions 4833 4813 -20 -0.41% ✅
AST.NumUsedConformances 730 724 -6 -0.82% ✅
IRModule.NumIRValueSymbols 19619 19287 -332 -1.69% ✅
Sema.NumConformancesDeserialized 49822 48604 -1218 -2.44% ✅
IRModule.NumIRFunctions 10863 10541 -322 -2.96% ✅
Sema.NumLazyGenericEnvironmentsLoaded 7646 7420 -226 -2.96% ✅
Sema.NumFunctionsTypechecked 4538 4398 -140 -3.09% ✅
Sema.NumLazyIterableDeclContexts 37546 36278 -1268 -3.38% ✅
IRModule.NumIRInsts 332161 314500 -17661 -5.32% ✅
Sema.NumConstraintScopes 41650 37766 -3884 -9.33% ✅
IRModule.NumIRBasicBlocks 21814 19130 -2684 -12.3% ✅
AST.NumImportedExternalDefinitions 6434 5606 -828 -12.87% ✅
Sema.NumTypesValidated 100770 81156 -19614 -19.46% ✅
AST.NumTotalClangImportedEntities 24796 18812 -5984 -24.13% ✅
Sema.NumDeclsValidated 75348 42648 -32700 -43.4% ✅
Sema.NumGenericSignatureBuilders 31134 10680 -20454 -65.7% ✅
Unchanged (abs(delta) < 0.01% or 100000usec) (4)
Unchanged (abs(delta) < 0.01% or 100000usec) in Alamofire (1)
name old new delta delta_pct
AST.NumLoadedModules 522 522 0 0.0%
Unchanged (abs(delta) < 0.01% or 100000usec) in Kingfisher (1)
name old new delta delta_pct
AST.NumLoadedModules 1323 1323 0 0.0%
Unchanged (abs(delta) < 0.01% or 100000usec) in ReactiveCocoa (1)
name old new delta delta_pct
AST.NumLoadedModules 3536 3536 0 0.0%
Unchanged (abs(delta) < 0.01% or 100000usec) in ReactiveSwift (1)
name old new delta delta_pct
AST.NumLoadedModules 880 880 0 0.0%

PR vs. baseline, changed timers (debug)

Regressed (0)
Improved (0)
Unchanged (abs(delta) < 0.01% or 1000000usec) (0)

Release

PR vs. head (release)

PR vs. head, changed counters (release)

Regressed (31)
Regressed in Alamofire (6)
name old new delta delta_pct
Sema.NumLazyGenericEnvironments 2750 2766 16 0.58% ⛔
SILModule.NumSILOptFunctions 3073 3080 7 0.23% ⛔
IRModule.NumIRFunctions 3577 3583 6 0.17% ⛔
IRModule.NumIRBasicBlocks 15481 15505 24 0.16% ⛔
Sema.NumDeclsDeserialized 24060 24077 17 0.07% ⛔
IRModule.NumIRValueSymbols 6899 6902 3 0.04% ⛔
Regressed in Kingfisher (10)
name old new delta delta_pct
Sema.NumConformancesDeserialized 28128 29202 1074 3.82% ⛔
SILModule.NumSILOptFunctions 5792 5858 66 1.14% ⛔
Sema.NumTypesDeserialized 44868 45115 247 0.55% ⛔
Sema.NumLazyGenericEnvironmentsLoaded 822 826 4 0.49% ⛔
Sema.NumLazyGenericEnvironments 4938 4958 20 0.41% ⛔
Sema.NumDeclsDeserialized 48101 48219 118 0.25% ⛔
Sema.NumGenericSignatureBuilders 1099 1101 2 0.18% ⛔
IRModule.NumIRFunctions 5806 5814 8 0.14% ⛔
IRModule.NumIRValueSymbols 12864 12872 8 0.06% ⛔
Sema.NumLazyIterableDeclContexts 3531 3533 2 0.06% ⛔
Regressed in ReactiveCocoa (6)
name old new delta delta_pct
Sema.NumLazyGenericEnvironments 6144 6172 28 0.46% ⛔
SILModule.NumSILOptFunctions 3086 3099 13 0.42% ⛔
LLVM.NumLLVMBytesOutput 8769844 8784212 14368 0.16% ⛔
IRModule.NumIRFunctions 4879 4886 7 0.14% ⛔
Sema.NumDeclsDeserialized 41780 41820 40 0.1% ⛔
IRModule.NumIRValueSymbols 12104 12111 7 0.06% ⛔
Regressed in ReactiveSwift (4)
name old new delta delta_pct
Sema.NumLazyIterableDeclContexts 2861 2879 18 0.63% ⛔
Sema.NumLazyGenericEnvironments 5122 5148 26 0.51% ⛔
Sema.NumDeclsDeserialized 43803 43886 83 0.19% ⛔
IRModule.NumIRBasicBlocks 21419 21440 21 0.1% ⛔
Regressed in Result (5)
name old new delta delta_pct
Sema.NumLazyGenericEnvironments 4010 4084 74 1.85% ⛔
Sema.NumDeclsDeserialized 23504 23762 258 1.1% ⛔
LLVM.NumLLVMBytesOutput 477824 482740 4916 1.03% ⛔
Sema.NumLazyIterableDeclContexts 1956 1974 18 0.92% ⛔
Sema.NumTypesDeserialized 20293 20396 103 0.51% ⛔
Improved (28)
Improved in Alamofire (7)
name old new delta delta_pct
IRModule.NumIRGlobals 4452 4449 -3 -0.07% ✅
Sema.NumGenericSignatureBuilders 417 416 -1 -0.24% ✅
Sema.NumLazyIterableDeclContexts 1663 1659 -4 -0.24% ✅
Sema.NumTypesDeserialized 22897 22834 -63 -0.28% ✅
Sema.NumConformancesDeserialized 14557 14476 -81 -0.56% ✅
LLVM.NumLLVMBytesOutput 3332084 3305344 -26740 -0.8% ✅
IRModule.NumIRInsts 116164 113113 -3051 -2.63% ✅
Improved in Kingfisher (3)
name old new delta delta_pct
LLVM.NumLLVMBytesOutput 5942272 5925616 -16656 -0.28% ✅
IRModule.NumIRBasicBlocks 22741 22598 -143 -0.63% ✅
IRModule.NumIRInsts 170666 167653 -3013 -1.77% ✅
Improved in ReactiveCocoa (5)
name old new delta delta_pct
Sema.NumTypesDeserialized 38765 38759 -6 -0.02% ✅
IRModule.NumIRBasicBlocks 8809 8795 -14 -0.16% ✅
Sema.NumConformancesDeserialized 19458 19424 -34 -0.17% ✅
Sema.NumLazyIterableDeclContexts 3794 3782 -12 -0.32% ✅
IRModule.NumIRInsts 66750 66255 -495 -0.74% ✅
Improved in ReactiveSwift (7)
name old new delta delta_pct
IRModule.NumIRValueSymbols 19505 19492 -13 -0.07% ✅
IRModule.NumIRFunctions 10155 10142 -13 -0.13% ✅
SILModule.NumSILOptFunctions 6977 6964 -13 -0.19% ✅
Sema.NumTypesDeserialized 39499 39420 -79 -0.2% ✅
LLVM.NumLLVMBytesOutput 10002064 9977272 -24792 -0.25% ✅
Sema.NumConformancesDeserialized 24894 24822 -72 -0.29% ✅
IRModule.NumIRInsts 258231 257171 -1060 -0.41% ✅
Improved in Result (6)
name old new delta delta_pct
IRModule.NumIRValueSymbols 1203 1194 -9 -0.75% ✅
IRModule.NumIRBasicBlocks 2064 2048 -16 -0.78% ✅
Sema.NumConformancesDeserialized 3974 3922 -52 -1.31% ✅
IRModule.NumIRInsts 20650 20376 -274 -1.33% ✅
IRModule.NumIRFunctions 632 623 -9 -1.42% ✅
SILModule.NumSILOptFunctions 833 813 -20 -2.4% ✅
Unchanged (abs(delta) < 0.01% or 100000usec) (56)
Unchanged (abs(delta) < 0.01% or 100000usec) in Alamofire (10)
name old new delta delta_pct
AST.NumImportedExternalDefinitions 881 881 0 0.0%
AST.NumLoadedModules 28 28 0 0.0%
AST.NumTotalClangImportedEntities 3234 3234 0 0.0%
AST.NumUsedConformances 432 432 0 0.0%
SILModule.NumSILGenFunctions 1859 1859 0 0.0%
Sema.NumConstraintScopes 36446 36446 0 0.0%
Sema.NumDeclsValidated 6892 6892 0 0.0%
Sema.NumFunctionsTypechecked 1104 1104 0 0.0%
Sema.NumLazyGenericEnvironmentsLoaded 364 364 0 0.0%
Sema.NumTypesValidated 1592 1592 0 0.0%
Unchanged (abs(delta) < 0.01% or 100000usec) in Kingfisher (10)
name old new delta delta_pct
AST.NumImportedExternalDefinitions 3406 3406 0 0.0%
AST.NumLoadedModules 61 61 0 0.0%
AST.NumTotalClangImportedEntities 9850 9850 0 0.0%
AST.NumUsedConformances 850 850 0 0.0%
IRModule.NumIRGlobals 8662 8662 0 0.0%
SILModule.NumSILGenFunctions 3054 3054 0 0.0%
Sema.NumConstraintScopes 301126 301126 0 0.0%
Sema.NumDeclsValidated 14592 14592 0 0.0%
Sema.NumFunctionsTypechecked 2878 2878 0 0.0%
Sema.NumTypesValidated 2740 2740 0 0.0%
Unchanged (abs(delta) < 0.01% or 100000usec) in ReactiveCocoa (12)
name old new delta delta_pct
AST.NumImportedExternalDefinitions 3138 3138 0 0.0%
AST.NumLoadedModules 66 66 0 0.0%
AST.NumTotalClangImportedEntities 7480 7480 0 0.0%
AST.NumUsedConformances 700 700 0 0.0%
IRModule.NumIRGlobals 8491 8491 0 0.0%
SILModule.NumSILGenFunctions 1913 1913 0 0.0%
Sema.NumConstraintScopes 38104 38104 0 0.0%
Sema.NumDeclsValidated 11068 11068 0 0.0%
Sema.NumFunctionsTypechecked 2484 2484 0 0.0%
Sema.NumGenericSignatureBuilders 1280 1280 0 0.0%
Sema.NumLazyGenericEnvironmentsLoaded 702 702 0 0.0%
Sema.NumTypesValidated 2372 2372 0 0.0%
Unchanged (abs(delta) < 0.01% or 100000usec) in ReactiveSwift (12)
name old new delta delta_pct
AST.NumImportedExternalDefinitions 512 512 0 0.0%
AST.NumLoadedModules 38 38 0 0.0%
AST.NumTotalClangImportedEntities 2102 2102 0 0.0%
AST.NumUsedConformances 730 730 0 0.0%
IRModule.NumIRGlobals 11658 11658 0 0.0%
SILModule.NumSILGenFunctions 3735 3735 0 0.0%
Sema.NumConstraintScopes 34930 34930 0 0.0%
Sema.NumDeclsValidated 9730 9730 0 0.0%
Sema.NumFunctionsTypechecked 1976 1976 0 0.0%
Sema.NumGenericSignatureBuilders 1515 1515 0 0.0%
Sema.NumLazyGenericEnvironmentsLoaded 828 828 0 0.0%
Sema.NumTypesValidated 23594 23594 0 0.0%
Unchanged (abs(delta) < 0.01% or 100000usec) in Result (12)
name old new delta delta_pct
AST.NumImportedExternalDefinitions 316 316 0 0.0%
AST.NumLoadedModules 34 34 0 0.0%
AST.NumTotalClangImportedEntities 1300 1300 0 0.0%
AST.NumUsedConformances 62 62 0 0.0%
IRModule.NumIRGlobals 687 687 0 0.0%
SILModule.NumSILGenFunctions 292 292 0 0.0%
Sema.NumConstraintScopes 3736 3736 0 0.0%
Sema.NumDeclsValidated 1470 1470 0 0.0%
Sema.NumFunctionsTypechecked 296 296 0 0.0%
Sema.NumGenericSignatureBuilders 368 368 0 0.0%
Sema.NumLazyGenericEnvironmentsLoaded 338 338 0 0.0%
Sema.NumTypesValidated 990 990 0 0.0%

PR vs. head, changed timers (release)

Regressed (0)
Improved (0)
Unchanged (abs(delta) < 0.01% or 1000000usec) (9)
Unchanged (abs(delta) < 0.01% or 1000000usec) in Alamofire (1)
name old new delta delta_pct
time.swift-driver.Alamofire-all-x86_64_apple_macosx10.10-o-O.wall 10806560 11062420 255860 2.37%
Unchanged (abs(delta) < 0.01% or 1000000usec) in Kingfisher (2)
name old new delta delta_pct
time.swift-driver.Kingfisher-all-armv7_apple_ios8.0-o-O.wall 11255010 11438810 183800 1.63%
time.swift-driver.Kingfisher-all-arm64_apple_ios8.0-o-O.wall 11120040 11186850 66810 0.6%
Unchanged (abs(delta) < 0.01% or 1000000usec) in ReactiveCocoa (2)
name old new delta delta_pct
time.swift-driver.ReactiveCocoa-all-armv7_apple_ios8.0-o-O.wall 5164934 5265166 100232 1.94%
time.swift-driver.ReactiveCocoa-all-arm64_apple_ios8.0-o-O.wall 5170703 5236885 66182 1.28%
Unchanged (abs(delta) < 0.01% or 1000000usec) in ReactiveSwift (2)
name old new delta delta_pct
time.swift-driver.ReactiveSwift-all-armv7_apple_ios8.0-o-O.wall 10795200 11000010 204810 1.9%
time.swift-driver.ReactiveSwift-all-arm64_apple_ios8.0-o-O.wall 10602130 10798790 196660 1.85%
Unchanged (abs(delta) < 0.01% or 1000000usec) in Result (2)
name old new delta delta_pct
time.swift-driver.Result-all-arm64_apple_ios8.0-o-O.wall 2761226 2861732 100506 3.64%
time.swift-driver.Result-all-armv7_apple_ios8.0-o-O.wall 2815365 2917502 102137 3.63%

PR vs. baseline (release)

PR vs. baseline, changed counters (release)

Regressed (17)
Regressed in Alamofire (3)
name old new delta delta_pct
AST.NumTotalClangImportedEntities 2920 3234 314 10.75% ⛔
LLVM.NumLLVMBytesOutput 3172156 3305344 133188 4.2% ⛔
SILModule.NumSILOptFunctions 2991 3080 89 2.98% ⛔
Regressed in Kingfisher (6)
name old new delta delta_pct
LLVM.NumLLVMBytesOutput 5462712 5925616 462904 8.47% ⛔
AST.NumTotalClangImportedEntities 9086 9850 764 8.41% ⛔
SILModule.NumSILOptFunctions 5723 5858 135 2.36% ⛔
AST.NumImportedExternalDefinitions 3368 3406 38 1.13% ⛔
Sema.NumFunctionsTypechecked 2848 2878 30 1.05% ⛔
IRModule.NumIRGlobals 8627 8662 35 0.41% ⛔
Regressed in ReactiveCocoa (5)
name old new delta delta_pct
LLVM.NumLLVMBytesOutput 5480320 8784212 3303892 60.29% ⛔
Sema.NumConstraintScopes 23810 38104 14294 60.03% ⛔
SILModule.NumSILOptFunctions 2915 3099 184 6.31% ⛔
AST.NumTotalClangImportedEntities 7270 7480 210 2.89% ⛔
IRModule.NumIRGlobals 8486 8491 5 0.06% ⛔
Regressed in ReactiveSwift (3)
name old new delta delta_pct
LLVM.NumLLVMBytesOutput 9452416 9977272 524856 5.55% ⛔
SILModule.NumSILOptFunctions 6852 6964 112 1.63% ⛔
IRModule.NumIRGlobals 11628 11658 30 0.26% ⛔
Improved (67)
Improved in Alamofire (17)
name old new delta delta_pct
SILModule.NumSILGenFunctions 1861 1859 -2 -0.11% ✅
AST.NumUsedConformances 435 432 -3 -0.69% ✅
IRModule.NumIRGlobals 4521 4449 -72 -1.59% ✅
Sema.NumLazyGenericEnvironments 2814 2766 -48 -1.71% ✅
Sema.NumDeclsDeserialized 24875 24077 -798 -3.21% ✅
Sema.NumLazyIterableDeclContexts 1716 1659 -57 -3.32% ✅
Sema.NumTypesDeserialized 23832 22834 -998 -4.19% ✅
IRModule.NumIRValueSymbols 7218 6902 -316 -4.38% ✅
Sema.NumLazyGenericEnvironmentsLoaded 383 364 -19 -4.96% ✅
Sema.NumConstraintScopes 38683 36446 -2237 -5.78% ✅
IRModule.NumIRFunctions 3819 3583 -236 -6.18% ✅
IRModule.NumIRBasicBlocks 16869 15505 -1364 -8.09% ✅
IRModule.NumIRInsts 123248 113113 -10135 -8.22% ✅
Sema.NumConformancesDeserialized 16433 14476 -1957 -11.91% ✅
Sema.NumTypesValidated 1977 1592 -385 -19.47% ✅
Sema.NumDeclsValidated 17283 6892 -10391 -60.12% ✅
Sema.NumGenericSignatureBuilders 1595 416 -1179 -73.92% ✅
Improved in Kingfisher (16)
name old new delta delta_pct
SILModule.NumSILGenFunctions 3056 3054 -2 -0.07% ✅
AST.NumUsedConformances 858 850 -8 -0.93% ✅
Sema.NumDeclsDeserialized 48980 48219 -761 -1.55% ✅
Sema.NumTypesDeserialized 46208 45115 -1093 -2.37% ✅
Sema.NumLazyIterableDeclContexts 3642 3533 -109 -2.99% ✅
IRModule.NumIRValueSymbols 13308 12872 -436 -3.28% ✅
Sema.NumLazyGenericEnvironments 5174 4958 -216 -4.17% ✅
Sema.NumConformancesDeserialized 30795 29202 -1593 -5.17% ✅
Sema.NumLazyGenericEnvironmentsLoaded 876 826 -50 -5.71% ✅
IRModule.NumIRFunctions 6265 5814 -451 -7.2% ✅
IRModule.NumIRBasicBlocks 25356 22598 -2758 -10.88% ✅
IRModule.NumIRInsts 189828 167653 -22175 -11.68% ✅
Sema.NumTypesValidated 3794 2740 -1054 -27.78% ✅
Sema.NumConstraintScopes 564928 301126 -263802 -46.7% ✅
Sema.NumDeclsValidated 35702 14592 -21110 -59.13% ✅
Sema.NumGenericSignatureBuilders 3925 1101 -2824 -71.95% ✅
Improved in ReactiveCocoa (15)
name old new delta delta_pct
SILModule.NumSILGenFunctions 1917 1913 -4 -0.21% ✅
AST.NumUsedConformances 704 700 -4 -0.57% ✅
Sema.NumLazyGenericEnvironments 6210 6172 -38 -0.61% ✅
IRModule.NumIRValueSymbols 12322 12111 -211 -1.71% ✅
Sema.NumDeclsDeserialized 42739 41820 -919 -2.15% ✅
Sema.NumTypesDeserialized 39750 38759 -991 -2.49% ✅
Sema.NumLazyIterableDeclContexts 3880 3782 -98 -2.53% ✅
Sema.NumLazyGenericEnvironmentsLoaded 728 702 -26 -3.57% ✅
IRModule.NumIRFunctions 5090 4886 -204 -4.01% ✅
IRModule.NumIRInsts 69895 66255 -3640 -5.21% ✅
IRModule.NumIRBasicBlocks 9437 8795 -642 -6.8% ✅
Sema.NumConformancesDeserialized 20926 19424 -1502 -7.18% ✅
Sema.NumTypesValidated 4072 2372 -1700 -41.75% ✅
Sema.NumDeclsValidated 20206 11068 -9138 -45.22% ✅
Sema.NumGenericSignatureBuilders 3612 1280 -2332 -64.56% ✅
Improved in ReactiveSwift (19)
name old new delta delta_pct
AST.NumUsedConformances 732 730 -2 -0.27% ✅
SILModule.NumSILGenFunctions 3755 3735 -20 -0.53% ✅
Sema.NumFunctionsTypechecked 1990 1976 -14 -0.7% ✅
Sema.NumLazyGenericEnvironments 5196 5148 -48 -0.92% ✅
Sema.NumDeclsDeserialized 44930 43886 -1044 -2.32% ✅
IRModule.NumIRValueSymbols 19993 19492 -501 -2.51% ✅
Sema.NumLazyIterableDeclContexts 2982 2879 -103 -3.45% ✅
Sema.NumTypesDeserialized 40957 39420 -1537 -3.75% ✅
IRModule.NumIRFunctions 10605 10142 -463 -4.37% ✅
IRModule.NumIRInsts 271570 257171 -14399 -5.3% ✅
Sema.NumLazyGenericEnvironmentsLoaded 890 828 -62 -6.97% ✅
Sema.NumConformancesDeserialized 26845 24822 -2023 -7.54% ✅
Sema.NumConstraintScopes 38598 34930 -3668 -9.5% ✅
IRModule.NumIRBasicBlocks 23918 21440 -2478 -10.36% ✅
Sema.NumTypesValidated 26352 23594 -2758 -10.47% ✅
AST.NumImportedExternalDefinitions 592 512 -80 -13.51% ✅
AST.NumTotalClangImportedEntities 2670 2102 -568 -21.27% ✅
Sema.NumGenericSignatureBuilders 4390 1515 -2875 -65.49% ✅
Sema.NumDeclsValidated 28656 9730 -18926 -66.05% ✅
Unchanged (abs(delta) < 0.01% or 100000usec) (8)
Unchanged (abs(delta) < 0.01% or 100000usec) in Alamofire (3)
name old new delta delta_pct
AST.NumImportedExternalDefinitions 881 881 0 0.0%
AST.NumLoadedModules 28 28 0 0.0%
Sema.NumFunctionsTypechecked 1104 1104 0 0.0%
Unchanged (abs(delta) < 0.01% or 100000usec) in Kingfisher (1)
name old new delta delta_pct
AST.NumLoadedModules 61 61 0 0.0%
Unchanged (abs(delta) < 0.01% or 100000usec) in ReactiveCocoa (3)
name old new delta delta_pct
AST.NumImportedExternalDefinitions 3138 3138 0 0.0%
AST.NumLoadedModules 66 66 0 0.0%
Sema.NumFunctionsTypechecked 2484 2484 0 0.0%
Unchanged (abs(delta) < 0.01% or 100000usec) in ReactiveSwift (1)
name old new delta delta_pct
AST.NumLoadedModules 38 38 0 0.0%

PR vs. baseline, changed timers (release)

Regressed (0)
Improved (0)
Unchanged (abs(delta) < 0.01% or 1000000usec) (0)
Last baseline commit on smoketest-master-debug.csv
commit 051207462e73c88493bbf2e49795efb88cb6c1ec
Author: Graydon Hoare 
Date:   Tue Oct 10 12:33:02 2017 -0700

    Update smoketest baselines for Swift version 4.0.1-dev (LLVM 2dedb62a0b, Clang ab7472e733, Swift 866e511daa)

Last baseline commit on smoketest-master-release.csv

commit 051207462e73c88493bbf2e49795efb88cb6c1ec
Author: Graydon Hoare 
Date:   Tue Oct 10 12:33:02 2017 -0700

    Update smoketest baselines for Swift version 4.0.1-dev (LLVM 2dedb62a0b, Clang ab7472e733, Swift 866e511daa)


@swiftix swiftix force-pushed the sil-serialization-before-optimizations5 branch from 2423e9e to 53754a7 Compare October 14, 2017 14:35
@swiftix
Copy link
Contributor Author

swiftix commented Oct 14, 2017

@swift-ci please test

1 similar comment
@swiftix
Copy link
Contributor Author

swiftix commented Oct 14, 2017

@swift-ci please test

@swiftix
Copy link
Contributor Author

swiftix commented Oct 14, 2017

@swift-ci please benchmark

1 similar comment
@swiftix
Copy link
Contributor Author

swiftix commented Oct 14, 2017

@swift-ci please benchmark

@swift-ci
Copy link
Contributor

Build failed
Swift Test OS X Platform
Git Sha - 2423e9e86264a3a4d67acb25404796fc4adefff1

@swift-ci
Copy link
Contributor

Build comment file:

Optimized (O)

Regression (9)
TEST OLD NEW DELTA SPEEDUP
Chars 417 608 +45.8% 0.69x
SubstringFromLongStringGeneric 62 73 +17.7% 0.85x
SetUnion 2457 2682 +9.2% 0.92x
RC4 157 170 +8.3% 0.92x
ArraySetElement 424 455 +7.3% 0.93x
Histogram 276 295 +6.9% 0.94x
ArrayAppendSequence 911 971 +6.6% 0.94x
DictionarySwap 414 441 +6.5% 0.94x
Calculator 34 36 +5.9% 0.94x
Improvement (19)
TEST OLD NEW DELTA SPEEDUP
MapReduceLazyCollectionShort 36 4 -88.9% 9.00x
DropLastArray 10 7 -30.0% 1.43x
SuffixArrayLazy 10 7 -30.0% 1.43x
DropLastArrayLazy 10 7 -30.0% 1.43x
SuffixArray 10 7 -30.0% 1.43x
Sim2DArray 450 342 -24.0% 1.32x
ObserverForwarderStruct 1136 885 -22.1% 1.28x (?)
PopFrontUnsafePointer 6090 5241 -13.9% 1.16x (?)
StringWithCString 66193 59170 -10.6% 1.12x
RangeAssignment 371 332 -10.5% 1.12x
ObserverUnappliedMethod 2651 2429 -8.4% 1.09x
PrefixWhileArray 74 68 -8.1% 1.09x
MapReduce 391 360 -7.9% 1.09x
LazilyFilteredArrayContains 90737 84409 -7.0% 1.07x
NopDeinit 22892 21361 -6.7% 1.07x
ArrayAppendLazyMap 988 922 -6.7% 1.07x (?)
ArrayOfPOD 176 165 -6.2% 1.07x
ObjectiveCBridgeStubNSDateMutationRef 12659 12051 -4.8% 1.05x (?)
ArrayOfGenericPOD 230 219 -4.8% 1.05x
No Changes (306)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 2935 2925 -0.3% 1.00x (?)
AnyHashableWithAClass 66747 66451 -0.4% 1.00x (?)
Array2D 1941 1890 -2.6% 1.03x (?)
ArrayAppend 1077 1080 +0.3% 1.00x (?)
ArrayAppendArrayOfInt 598 598 +0.0% 1.00x
ArrayAppendAscii 20140 20176 +0.2% 1.00x (?)
ArrayAppendFromGeneric 599 599 +0.0% 1.00x
ArrayAppendGenericStructs 1228 1227 -0.1% 1.00x (?)
ArrayAppendLatin1 40920 41635 +1.7% 0.98x (?)
ArrayAppendOptionals 1219 1217 -0.2% 1.00x (?)
ArrayAppendRepeatCol 997 998 +0.1% 1.00x (?)
ArrayAppendReserved 846 845 -0.1% 1.00x (?)
ArrayAppendStrings 15012 15040 +0.2% 1.00x (?)
ArrayAppendToFromGeneric 599 597 -0.3% 1.00x (?)
ArrayAppendToGeneric 599 597 -0.3% 1.00x (?)
ArrayAppendUTF16 40606 41590 +2.4% 0.98x (?)
ArrayInClass 61 61 +0.0% 1.00x
ArrayLiteral 0 0 +0.0% 1.00x
ArrayOfGenericRef 4004 3963 -1.0% 1.01x (?)
ArrayOfRef 3901 3900 -0.0% 1.00x (?)
ArrayPlusEqualArrayOfInt 597 598 +0.2% 1.00x (?)
ArrayPlusEqualFiveElementCollection 4733 4751 +0.4% 1.00x (?)
ArrayPlusEqualSingleElementCollection 1076 1080 +0.4% 1.00x (?)
ArrayPlusEqualThreeElements 1630 1638 +0.5% 1.00x (?)
ArraySubscript 1487 1496 +0.6% 0.99x (?)
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 145 144 -0.7% 1.01x (?)
ByteSwap 113 116 +2.7% 0.97x
CStringLongAscii 4882 4715 -3.4% 1.04x (?)
CStringLongNonAscii 2193 2249 +2.6% 0.98x
CStringShortAscii 4836 4791 -0.9% 1.01x (?)
CaptureProp 4254 4429 +4.1% 0.96x (?)
CharIndexing_ascii_unicodeScalars 13833 13461 -2.7% 1.03x
CharIndexing_ascii_unicodeScalars_Backwards 11062 11283 +2.0% 0.98x
CharIndexing_chinese_unicodeScalars 10485 10212 -2.6% 1.03x
CharIndexing_chinese_unicodeScalars_Backwards 8395 8571 +2.1% 0.98x
CharIndexing_japanese_unicodeScalars 16555 16104 -2.7% 1.03x
CharIndexing_japanese_unicodeScalars_Backwards 13238 13494 +1.9% 0.98x (?)
CharIndexing_korean_unicodeScalars 13413 13057 -2.7% 1.03x
CharIndexing_korean_unicodeScalars_Backwards 10727 10943 +2.0% 0.98x
CharIndexing_punctuatedJapanese_unicodeScalars 2549 2520 -1.1% 1.01x
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 2052 2112 +2.9% 0.97x
CharIndexing_punctuated_unicodeScalars 3170 3110 -1.9% 1.02x
CharIndexing_punctuated_unicodeScalars_Backwards 2563 2626 +2.5% 0.98x
CharIndexing_russian_unicodeScalars 11531 11236 -2.6% 1.03x
CharIndexing_russian_unicodeScalars_Backwards 9236 9405 +1.8% 0.98x
CharIndexing_tweet_unicodeScalars 27241 26487 -2.8% 1.03x (?)
CharIndexing_tweet_unicodeScalars_Backwards 21807 22169 +1.7% 0.98x
CharIndexing_utf16_unicodeScalars 81006 81056 +0.1% 1.00x (?)
CharIndexing_utf16_unicodeScalars_Backwards 60383 60418 +0.1% 1.00x (?)
CharIteration_ascii_unicodeScalars 15426 15228 -1.3% 1.01x (?)
CharIteration_ascii_unicodeScalars_Backwards 16384 16569 +1.1% 0.99x
CharIteration_chinese_unicodeScalars 11679 11540 -1.2% 1.01x
CharIteration_chinese_unicodeScalars_Backwards 12406 12545 +1.1% 0.99x
CharIteration_japanese_unicodeScalars 18443 18218 -1.2% 1.01x
CharIteration_japanese_unicodeScalars_Backwards 19615 19840 +1.1% 0.99x
CharIteration_korean_unicodeScalars 14959 14766 -1.3% 1.01x (?)
CharIteration_korean_unicodeScalars_Backwards 15887 16067 +1.1% 0.99x
CharIteration_punctuatedJapanese_unicodeScalars 2810 2764 -1.6% 1.02x
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 2962 2985 +0.8% 0.99x (?)
CharIteration_punctuated_unicodeScalars 3505 3457 -1.4% 1.01x (?)
CharIteration_punctuated_unicodeScalars_Backwards 3707 3739 +0.9% 0.99x (?)
CharIteration_russian_unicodeScalars 12855 12691 -1.3% 1.01x
CharIteration_russian_unicodeScalars_Backwards 13649 13805 +1.1% 0.99x
CharIteration_tweet_unicodeScalars 30395 30015 -1.3% 1.01x
CharIteration_tweet_unicodeScalars_Backwards 32377 32763 +1.2% 0.99x (?)
CharIteration_utf16_unicodeScalars 79682 78417 -1.6% 1.02x
CharIteration_utf16_unicodeScalars_Backwards 97604 97544 -0.1% 1.00x (?)
CharacterLiteralsLarge 5944 5955 +0.2% 1.00x (?)
CharacterLiteralsSmall 404 403 -0.2% 1.00x (?)
ClassArrayGetter 13 13 +0.0% 1.00x
DeadArray 184 181 -1.6% 1.02x
Dictionary 571 557 -2.5% 1.03x
Dictionary2 1893 1821 -3.8% 1.04x
Dictionary2OfObjects 3296 3190 -3.2% 1.03x
Dictionary3 467 469 +0.4% 1.00x (?)
Dictionary3OfObjects 840 831 -1.1% 1.01x (?)
DictionaryBridge 2487 2489 +0.1% 1.00x (?)
DictionaryGroup 274 276 +0.7% 0.99x
DictionaryGroupOfObjects 1807 1796 -0.6% 1.01x (?)
DictionaryLiteral 1487 1473 -0.9% 1.01x (?)
DictionaryOfObjects 2267 2202 -2.9% 1.03x (?)
DictionaryRemove 2510 2458 -2.1% 1.02x (?)
DictionaryRemoveOfObjects 23824 22858 -4.1% 1.04x
DictionarySwapOfObjects 7377 7369 -0.1% 1.00x (?)
DropFirstAnyCollection 55 55 +0.0% 1.00x
DropFirstAnyCollectionLazy 75141 78132 +4.0% 0.96x (?)
DropFirstAnySeqCRangeIter 28060 28621 +2.0% 0.98x (?)
DropFirstAnySeqCRangeIterLazy 28084 28621 +1.9% 0.98x (?)
DropFirstAnySeqCntRange 50 50 +0.0% 1.00x
DropFirstAnySeqCntRangeLazy 50 50 +0.0% 1.00x
DropFirstAnySequence 6243 6212 -0.5% 1.00x (?)
DropFirstAnySequenceLazy 6238 6207 -0.5% 1.00x (?)
DropFirstArray 30 30 +0.0% 1.00x
DropFirstArrayLazy 30 30 +0.0% 1.00x
DropFirstCountableRange 18 18 +0.0% 1.00x
DropFirstCountableRangeLazy 18 18 +0.0% 1.00x
DropFirstSequence 2018 2018 +0.0% 1.00x
DropFirstSequenceLazy 1944 1944 +0.0% 1.00x
DropLastAnyCollection 21 21 +0.0% 1.00x
DropLastAnyCollectionLazy 25047 26008 +3.8% 0.96x
DropLastAnySeqCRangeIter 4719 4718 -0.0% 1.00x (?)
DropLastAnySeqCRangeIterLazy 4716 4716 +0.0% 1.00x
DropLastAnySeqCntRange 16 16 +0.0% 1.00x
DropLastAnySeqCntRangeLazy 16 16 +0.0% 1.00x
DropLastAnySequence 6727 6728 +0.0% 1.00x (?)
DropLastAnySequenceLazy 6673 6693 +0.3% 1.00x (?)
DropLastCountableRange 6 6 +0.0% 1.00x
DropLastCountableRangeLazy 6 6 +0.0% 1.00x
DropLastSequence 602 616 +2.3% 0.98x
DropLastSequenceLazy 604 616 +2.0% 0.98x (?)
DropWhileAnyCollection 68 68 +0.0% 1.00x
DropWhileAnyCollectionLazy 89 90 +1.1% 0.99x (?)
DropWhileAnySeqCRangeIter 22828 22856 +0.1% 1.00x (?)
DropWhileAnySeqCRangeIterLazy 90 89 -1.1% 1.01x
DropWhileAnySeqCntRange 63 63 +0.0% 1.00x
DropWhileAnySeqCntRangeLazy 90 88 -2.2% 1.02x
DropWhileAnySequence 7273 7288 +0.2% 1.00x (?)
DropWhileAnySequenceLazy 1933 1932 -0.1% 1.00x (?)
DropWhileArray 43 43 +0.0% 1.00x
DropWhileArrayLazy 82 82 +0.0% 1.00x
DropWhileCountableRange 19 19 +0.0% 1.00x
DropWhileCountableRangeLazy 70 70 +0.0% 1.00x
DropWhileSequence 1615 1623 +0.5% 1.00x (?)
DropWhileSequenceLazy 47 46 -2.1% 1.02x
EqualStringSubstring 388 389 +0.3% 1.00x
EqualSubstringString 388 389 +0.3% 1.00x (?)
EqualSubstringSubstring 391 391 +0.0% 1.00x
EqualSubstringSubstringGenericEquatable 392 392 +0.0% 1.00x
ErrorHandling 2032 2034 +0.1% 1.00x (?)
ExclusivityGlobal 3 3 +0.0% 1.00x
ExclusivityInMatSet 18 18 +0.0% 1.00x
ExclusivityIndependent 2 2 +0.0% 1.00x
FilterEvenUsingReduce 1288 1302 +1.1% 0.99x (?)
FilterEvenUsingReduceInto 146 146 +0.0% 1.00x
FrequenciesUsingReduce 7463 7530 +0.9% 0.99x (?)
FrequenciesUsingReduceInto 4132 4146 +0.3% 1.00x (?)
Hanoi 3545 3624 +2.2% 0.98x
HashTest 1634 1717 +5.1% 0.95x
Integrate 259 253 -2.3% 1.02x
IterateData 1360 1393 +2.4% 0.98x
Join 382 376 -1.6% 1.02x (?)
LazilyFilteredArrays 65608 65644 +0.1% 1.00x (?)
LazilyFilteredRange 3752 3618 -3.6% 1.04x
LessSubstringSubstring 389 390 +0.3% 1.00x (?)
LessSubstringSubstringGenericComparable 388 390 +0.5% 0.99x
LinkedList 7038 6957 -1.2% 1.01x
MapReduceAnyCollection 362 362 +0.0% 1.00x
MapReduceAnyCollectionShort 2101 2077 -1.1% 1.01x
MapReduceClass 3064 3063 -0.0% 1.00x (?)
MapReduceClassShort 4568 4534 -0.7% 1.01x (?)
MapReduceLazyCollection 12 12 +0.0% 1.00x
MapReduceLazySequence 90 90 +0.0% 1.00x
MapReduceSequence 440 440 +0.0% 1.00x
MapReduceShort 1971 1984 +0.7% 0.99x
MapReduceShortString 21 21 +0.0% 1.00x
MapReduceString 99 102 +3.0% 0.97x
Memset 235 235 +0.0% 1.00x
MonteCarloE 10376 10315 -0.6% 1.01x
MonteCarloPi 43975 43942 -0.1% 1.00x
NSDictionaryCastToSwift 5249 5289 +0.8% 0.99x (?)
NSError 289 298 +3.1% 0.97x (?)
NSStringConversion 369 359 -2.7% 1.03x
ObjectAllocation 178 178 +0.0% 1.00x
ObjectiveCBridgeFromNSArrayAnyObject 22426 22528 +0.5% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 3458 3439 -0.5% 1.01x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 39252 39188 -0.2% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 33353 33546 +0.6% 0.99x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 120590 121209 +0.5% 0.99x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 5024 5080 +1.1% 0.99x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 91264 92288 +1.1% 0.99x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 100033 100852 +0.8% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObject 64430 64331 -0.2% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 4247 4204 -1.0% 1.01x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 67623 67000 -0.9% 1.01x (?)
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 68008 70215 +3.2% 0.97x (?)
ObjectiveCBridgeFromNSString 987 987 +0.0% 1.00x
ObjectiveCBridgeFromNSStringForced 1834 1825 -0.5% 1.00x (?)
ObjectiveCBridgeStubDataAppend 3827 3815 -0.3% 1.00x (?)
ObjectiveCBridgeStubDateAccess 181 181 +0.0% 1.00x
ObjectiveCBridgeStubDateMutation 272 272 +0.0% 1.00x
ObjectiveCBridgeStubFromArrayOfNSString 24978 24850 -0.5% 1.01x (?)
ObjectiveCBridgeStubFromNSDate 3610 3777 +4.6% 0.96x (?)
ObjectiveCBridgeStubFromNSDateRef 4190 4274 +2.0% 0.98x (?)
ObjectiveCBridgeStubFromNSString 546 544 -0.4% 1.00x (?)
ObjectiveCBridgeStubFromNSStringRef 146 149 +2.1% 0.98x
ObjectiveCBridgeStubNSDataAppend 2379 2402 +1.0% 0.99x (?)
ObjectiveCBridgeStubNSDateRefAccess 372 372 +0.0% 1.00x
ObjectiveCBridgeStubToArrayOfNSString 28705 28766 +0.2% 1.00x (?)
ObjectiveCBridgeStubToNSDate 14351 14553 +1.4% 0.99x (?)
ObjectiveCBridgeStubToNSDateRef 3269 3282 +0.4% 1.00x (?)
ObjectiveCBridgeStubToNSString 1492 1495 +0.2% 1.00x (?)
ObjectiveCBridgeStubToNSStringRef 116 116 +0.0% 1.00x
ObjectiveCBridgeStubURLAppendPath 211539 211888 +0.2% 1.00x (?)
ObjectiveCBridgeStubURLAppendPathRef 211719 213055 +0.6% 0.99x (?)
ObjectiveCBridgeToNSArray 29433 29208 -0.8% 1.01x (?)
ObjectiveCBridgeToNSDictionary 46122 46030 -0.2% 1.00x (?)
ObjectiveCBridgeToNSSet 39722 39550 -0.4% 1.00x (?)
ObjectiveCBridgeToNSString 1275 1272 -0.2% 1.00x (?)
ObserverClosure 2311 2314 +0.1% 1.00x (?)
ObserverPartiallyAppliedMethod 3791 3778 -0.3% 1.00x (?)
OpenClose 3 3 +0.0% 1.00x
Phonebook 6192 6263 +1.1% 0.99x
PolymorphicCalls 17 17 +0.0% 1.00x
PopFrontArray 1276 1272 -0.3% 1.00x (?)
PopFrontArrayGeneric 1277 1277 +0.0% 1.00x
PrefixAnyCollection 55 55 +0.0% 1.00x
PrefixAnyCollectionLazy 74998 77896 +3.9% 0.96x
PrefixAnySeqCRangeIter 22128 22114 -0.1% 1.00x (?)
PrefixAnySeqCRangeIterLazy 22126 22115 -0.0% 1.00x (?)
PrefixAnySeqCntRange 50 50 +0.0% 1.00x
PrefixAnySeqCntRangeLazy 50 50 +0.0% 1.00x
PrefixAnySequence 5411 5418 +0.1% 1.00x (?)
PrefixAnySequenceLazy 5415 5414 -0.0% 1.00x (?)
PrefixArray 30 30 +0.0% 1.00x
PrefixArrayLazy 30 30 +0.0% 1.00x
PrefixCountableRange 18 18 +0.0% 1.00x
PrefixCountableRangeLazy 18 18 +0.0% 1.00x
PrefixSequence 1515 1515 +0.0% 1.00x
PrefixSequenceLazy 1459 1460 +0.1% 1.00x
PrefixWhileAnyCollection 93 93 +0.0% 1.00x
PrefixWhileAnyCollectionLazy 66 66 +0.0% 1.00x
PrefixWhileAnySeqCRangeIter 12938 12910 -0.2% 1.00x (?)
PrefixWhileAnySeqCRangeIterLazy 66 66 +0.0% 1.00x
PrefixWhileAnySeqCntRange 88 88 +0.0% 1.00x
PrefixWhileAnySeqCntRangeLazy 66 66 +0.0% 1.00x
PrefixWhileAnySequence 14397 14332 -0.5% 1.00x (?)
PrefixWhileAnySequenceLazy 1436 1436 +0.0% 1.00x
PrefixWhileArrayLazy 37 37 +0.0% 1.00x
PrefixWhileCountableRange 29 29 +0.0% 1.00x
PrefixWhileCountableRangeLazy 18 18 +0.0% 1.00x
PrefixWhileSequence 362 366 +1.1% 0.99x (?)
PrefixWhileSequenceLazy 28 28 +0.0% 1.00x
Prims 775 785 +1.3% 0.99x (?)
PrimsSplit 762 774 +1.6% 0.98x (?)
ProtocolDispatch 3030 3031 +0.0% 1.00x (?)
ProtocolDispatch2 138 137 -0.7% 1.01x (?)
RGBHistogram 2175 2177 +0.1% 1.00x (?)
RGBHistogramOfObjects 23326 23268 -0.2% 1.00x (?)
RangeIterationSigned 135 134 -0.7% 1.01x (?)
RangeIterationSigned64 151 151 +0.0% 1.00x
RangeIterationUnsigned 153 151 -1.3% 1.01x (?)
RecursiveOwnedParameter 2318 2315 -0.1% 1.00x (?)
ReversedArray 44 45 +2.3% 0.98x (?)
ReversedBidirectional 29646 29753 +0.4% 1.00x (?)
ReversedDictionary 105 103 -1.9% 1.02x (?)
SetExclusiveOr 2740 2821 +3.0% 0.97x (?)
SetExclusiveOr_OfObjects 8282 8163 -1.4% 1.01x (?)
SetIntersect 269 270 +0.4% 1.00x (?)
SetIntersect_OfObjects 1709 1713 +0.2% 1.00x (?)
SetIsSubsetOf 293 293 +0.0% 1.00x
SetIsSubsetOf_OfObjects 366 374 +2.2% 0.98x
SetUnion_OfObjects 6876 6856 -0.3% 1.00x (?)
SevenBoom 1485 1484 -0.1% 1.00x (?)
SortLargeExistentials 8370 8308 -0.7% 1.01x
SortLettersInPlace 1142 1141 -0.1% 1.00x (?)
SortSortedStrings 906 895 -1.2% 1.01x
SortStrings 1700 1670 -1.8% 1.02x
SortStringsUnicode 8292 8187 -1.3% 1.01x
StackPromo 22758 22689 -0.3% 1.00x
StaticArray 5 5 +0.0% 1.00x
StrComplexWalk 1590 1589 -0.1% 1.00x (?)
StrToInt 1878 1886 +0.4% 1.00x (?)
StringAdder 3487 3485 -0.1% 1.00x (?)
StringBuilder 1003 990 -1.3% 1.01x (?)
StringBuilderLong 927 922 -0.5% 1.01x (?)
StringEdits 169071 170919 +1.1% 0.99x (?)
StringEnumRawValueInitialization 803 804 +0.1% 1.00x
StringEqualPointerComparison 363 363 +0.0% 1.00x
StringFromLongWholeSubstring 177 173 -2.3% 1.02x (?)
StringFromLongWholeSubstringGeneric 86 85 -1.2% 1.01x
StringHasPrefix 9 9 +0.0% 1.00x
StringHasPrefixUnicode 14964 14675 -1.9% 1.02x
StringHasSuffix 9 9 +0.0% 1.00x
StringHasSuffixUnicode 61294 61543 +0.4% 1.00x
StringInterpolation 10860 10849 -0.1% 1.00x (?)
StringMatch 7400 7723 +4.4% 0.96x
StringUTF16Builder 1872 1880 +0.4% 1.00x (?)
StringWalk 1490 1494 +0.3% 1.00x
SubstringComparable 1615 1639 +1.5% 0.99x (?)
SubstringEqualString 1434 1447 +0.9% 0.99x (?)
SubstringEquatable 3700 3761 +1.6% 0.98x (?)
SubstringFromLongString 10 10 +0.0% 1.00x
SuffixAnyCollection 21 21 +0.0% 1.00x
SuffixAnyCollectionLazy 25082 26129 +4.2% 0.96x (?)
SuffixAnySeqCRangeIter 5045 5045 +0.0% 1.00x
SuffixAnySeqCRangeIterLazy 5044 5046 +0.0% 1.00x (?)
SuffixAnySeqCntRange 16 16 +0.0% 1.00x
SuffixAnySeqCntRangeLazy 16 16 +0.0% 1.00x
SuffixAnySequence 6711 6708 -0.0% 1.00x (?)
SuffixAnySequenceLazy 6703 6722 +0.3% 1.00x (?)
SuffixCountableRange 6 6 +0.0% 1.00x
SuffixCountableRangeLazy 6 6 +0.0% 1.00x
SuffixSequence 4670 4653 -0.4% 1.00x
SuffixSequenceLazy 4671 4654 -0.4% 1.00x
SumUsingReduce 97 97 +0.0% 1.00x
SumUsingReduceInto 97 97 +0.0% 1.00x
SuperChars 84636 85736 +1.3% 0.99x (?)
TwoSum 940 970 +3.2% 0.97x
TypeFlood 0 0 +0.0% 1.00x
UTF8Decode 257 257 +0.0% 1.00x
Walsh 396 392 -1.0% 1.01x
XorLoop 346 345 -0.3% 1.00x (?)

Unoptimized (Onone)

Regression (34)
TEST OLD NEW DELTA SPEEDUP
DropFirstCountableRange 340 472 +38.8% 0.72x
PrefixCountableRange 340 471 +38.5% 0.72x
SuffixCountableRange 119 163 +37.0% 0.73x
DropLastCountableRange 119 163 +37.0% 0.73x
ObjectiveCBridgeStubDateMutation 536 667 +24.4% 0.80x
ObjectiveCBridgeStubNSDateRefAccess 1210 1423 +17.6% 0.85x
ObjectiveCBridgeStubToNSStringRef 148 171 +15.5% 0.87x
ArrayOfGenericPOD 1205 1382 +14.7% 0.87x
ObjectiveCBridgeStubDateAccess 1091 1226 +12.4% 0.89x
ArrayOfPOD 712 793 +11.4% 0.90x
ObjectiveCBridgeStubFromNSStringRef 177 197 +11.3% 0.90x
CharIndexing_utf16_unicodeScalars_Backwards 570870 632475 +10.8% 0.90x
ObjectiveCBridgeStubFromNSDate 3835 4244 +10.7% 0.90x
Array2D 635998 700823 +10.2% 0.91x
StringHasPrefix 1755 1922 +9.5% 0.91x
ArrayAppendReserved 4135 4518 +9.3% 0.92x
StringHasSuffix 1905 2081 +9.2% 0.92x
ArrayAppend 4372 4767 +9.0% 0.92x (?)
CharIndexing_tweet_unicodeScalars_Backwards 1020687 1111986 +8.9% 0.92x
ObjectiveCBridgeStubToNSDateRef 3317 3577 +7.8% 0.93x
CharIndexing_korean_unicodeScalars_Backwards 498610 537109 +7.7% 0.93x
StringFromLongWholeSubstring 209 225 +7.7% 0.93x
CharIndexing_chinese_unicodeScalars_Backwards 388852 417999 +7.5% 0.93x
CharIndexing_ascii_unicodeScalars_Backwards 519442 558216 +7.5% 0.93x
CharIndexing_punctuatedJapanese_unicodeScalars_Backwards 89956 96538 +7.3% 0.93x
StringEqualPointerComparison 2503 2686 +7.3% 0.93x
CharIndexing_russian_unicodeScalars_Backwards 432589 463801 +7.2% 0.93x
ObjectiveCBridgeStubToNSDate 14158 15175 +7.2% 0.93x (?)
CharIndexing_punctuated_unicodeScalars_Backwards 112517 120573 +7.2% 0.93x
CharIndexing_japanese_unicodeScalars_Backwards 624006 663861 +6.4% 0.94x
CharIndexing_tweet_unicodeScalars 946856 999800 +5.6% 0.95x
ObjectiveCBridgeToNSString 1305 1377 +5.5% 0.95x
SubstringFromLongStringGeneric 112 118 +5.4% 0.95x
ReversedDictionary 29476 31029 +5.3% 0.95x
Improvement (2)
TEST OLD NEW DELTA SPEEDUP
ProtocolDispatch 8594 7556 -12.1% 1.14x
BitCount 1607 1463 -9.0% 1.10x
No Changes (298)
TEST OLD NEW DELTA SPEEDUP
AngryPhonebook 4980 5014 +0.7% 0.99x (?)
AnyHashableWithAClass 84292 84760 +0.6% 0.99x (?)
ArrayAppendArrayOfInt 657 657 +0.0% 1.00x
ArrayAppendAscii 53133 55015 +3.5% 0.97x
ArrayAppendFromGeneric 659 660 +0.2% 1.00x (?)
ArrayAppendGenericStructs 1309 1326 +1.3% 0.99x (?)
ArrayAppendLatin1 82120 81665 -0.6% 1.01x (?)
ArrayAppendLazyMap 230317 229300 -0.4% 1.00x
ArrayAppendOptionals 1332 1303 -2.2% 1.02x (?)
ArrayAppendRepeatCol 233511 227601 -2.5% 1.03x
ArrayAppendSequence 76261 75800 -0.6% 1.01x (?)
ArrayAppendStrings 15208 15236 +0.2% 1.00x (?)
ArrayAppendToFromGeneric 657 659 +0.3% 1.00x (?)
ArrayAppendToGeneric 660 661 +0.2% 1.00x (?)
ArrayAppendUTF16 76487 78035 +2.0% 0.98x (?)
ArrayInClass 6378 6616 +3.7% 0.96x
ArrayLiteral 1750 1747 -0.2% 1.00x
ArrayOfGenericRef 10027 9982 -0.4% 1.00x (?)
ArrayOfRef 9252 9209 -0.5% 1.00x (?)
ArrayPlusEqualArrayOfInt 658 657 -0.2% 1.00x (?)
ArrayPlusEqualFiveElementCollection 307943 305568 -0.8% 1.01x (?)
ArrayPlusEqualSingleElementCollection 306534 303899 -0.9% 1.01x (?)
ArrayPlusEqualThreeElements 10986 11479 +4.5% 0.96x
ArraySetElement 4581 4788 +4.5% 0.96x
ArraySubscript 85832 87188 +1.6% 0.98x (?)
ArrayValueProp 3599 3596 -0.1% 1.00x (?)
ArrayValueProp2 18884 18921 +0.2% 1.00x
ArrayValueProp3 4058 4244 +4.6% 0.96x (?)
ArrayValueProp4 4012 4199 +4.7% 0.96x
ByteSwap 4156 3983 -4.2% 1.04x
CStringLongAscii 4922 4761 -3.3% 1.03x
CStringLongNonAscii 2453 2395 -2.4% 1.02x
CStringShortAscii 8756 8827 +0.8% 0.99x
Calculator 1163 1173 +0.9% 0.99x (?)
CaptureProp 125535 125518 -0.0% 1.00x (?)
CharIndexing_ascii_unicodeScalars 485849 489810 +0.8% 0.99x (?)
CharIndexing_chinese_unicodeScalars 364290 369272 +1.4% 0.99x (?)
CharIndexing_japanese_unicodeScalars 573870 586369 +2.2% 0.98x
CharIndexing_korean_unicodeScalars 464879 472406 +1.6% 0.98x (?)
CharIndexing_punctuatedJapanese_unicodeScalars 83191 85180 +2.4% 0.98x (?)
CharIndexing_punctuated_unicodeScalars 105619 108101 +2.3% 0.98x (?)
CharIndexing_russian_unicodeScalars 398238 417843 +4.9% 0.95x
CharIndexing_utf16_unicodeScalars 530357 537219 +1.3% 0.99x (?)
CharIteration_ascii_unicodeScalars 191317 190323 -0.5% 1.01x
CharIteration_ascii_unicodeScalars_Backwards 334161 327207 -2.1% 1.02x (?)
CharIteration_chinese_unicodeScalars 141286 142250 +0.7% 0.99x (?)
CharIteration_chinese_unicodeScalars_Backwards 247466 245223 -0.9% 1.01x (?)
CharIteration_japanese_unicodeScalars 223377 224729 +0.6% 0.99x (?)
CharIteration_japanese_unicodeScalars_Backwards 390649 389078 -0.4% 1.00x (?)
CharIteration_korean_unicodeScalars 185380 184786 -0.3% 1.00x
CharIteration_korean_unicodeScalars_Backwards 324599 315136 -2.9% 1.03x (?)
CharIteration_punctuatedJapanese_unicodeScalars 33835 33290 -1.6% 1.02x
CharIteration_punctuatedJapanese_unicodeScalars_Backwards 57986 56918 -1.8% 1.02x (?)
CharIteration_punctuated_unicodeScalars 42783 42579 -0.5% 1.00x
CharIteration_punctuated_unicodeScalars_Backwards 73089 71453 -2.2% 1.02x
CharIteration_russian_unicodeScalars 159436 158966 -0.3% 1.00x (?)
CharIteration_russian_unicodeScalars_Backwards 275898 270931 -1.8% 1.02x (?)
CharIteration_tweet_unicodeScalars 368790 370447 +0.4% 1.00x (?)
CharIteration_tweet_unicodeScalars_Backwards 651937 646051 -0.9% 1.01x (?)
CharIteration_utf16_unicodeScalars 206093 207470 +0.7% 0.99x
CharIteration_utf16_unicodeScalars_Backwards 403524 406763 +0.8% 0.99x (?)
CharacterLiteralsLarge 6186 6178 -0.1% 1.00x (?)
CharacterLiteralsSmall 703 711 +1.1% 0.99x
Chars 50869 50629 -0.5% 1.00x
ClassArrayGetter 994 1046 +5.2% 0.95x
DeadArray 114577 113167 -1.2% 1.01x (?)
Dictionary 3080 3067 -0.4% 1.00x (?)
Dictionary2 3487 3474 -0.4% 1.00x (?)
Dictionary2OfObjects 6037 6051 +0.2% 1.00x (?)
Dictionary3 1327 1320 -0.5% 1.01x (?)
Dictionary3OfObjects 2309 2301 -0.3% 1.00x (?)
DictionaryBridge 2602 2564 -1.5% 1.01x (?)
DictionaryGroup 5426 5407 -0.4% 1.00x (?)
DictionaryGroupOfObjects 8281 8256 -0.3% 1.00x (?)
DictionaryLiteral 8596 8560 -0.4% 1.00x (?)
DictionaryOfObjects 6745 6680 -1.0% 1.01x (?)
DictionaryRemove 21568 21896 +1.5% 0.99x
DictionaryRemoveOfObjects 59890 59573 -0.5% 1.01x (?)
DictionarySwap 5307 5338 +0.6% 0.99x (?)
DictionarySwapOfObjects 23160 23123 -0.2% 1.00x (?)
DropFirstAnyCollection 20384 20532 +0.7% 0.99x (?)
DropFirstAnyCollectionLazy 141540 142426 +0.6% 0.99x (?)
DropFirstAnySeqCRangeIter 30931 30967 +0.1% 1.00x (?)
DropFirstAnySeqCRangeIterLazy 30864 30769 -0.3% 1.00x (?)
DropFirstAnySeqCntRange 20629 20894 +1.3% 0.99x
DropFirstAnySeqCntRangeLazy 20202 20586 +1.9% 0.98x
DropFirstAnySequence 15755 15843 +0.6% 0.99x
DropFirstAnySequenceLazy 15812 15792 -0.1% 1.00x (?)
DropFirstArray 6451 6703 +3.9% 0.96x
DropFirstArrayLazy 45278 44520 -1.7% 1.02x
DropFirstCountableRangeLazy 40581 41315 +1.8% 0.98x
DropFirstSequence 14664 14709 +0.3% 1.00x
DropFirstSequenceLazy 14626 14726 +0.7% 0.99x
DropLastAnyCollection 6809 6912 +1.5% 0.99x (?)
DropLastAnyCollectionLazy 47352 46727 -1.3% 1.01x (?)
DropLastAnySeqCRangeIter 47626 47624 -0.0% 1.00x (?)
DropLastAnySeqCRangeIterLazy 47183 47755 +1.2% 0.99x
DropLastAnySeqCntRange 6808 6855 +0.7% 0.99x
DropLastAnySeqCntRangeLazy 6767 6849 +1.2% 0.99x (?)
DropLastAnySequence 33604 33542 -0.2% 1.00x (?)
DropLastAnySequenceLazy 33621 33621 +0.0% 1.00x
DropLastArray 2159 2137 -1.0% 1.01x
DropLastArrayLazy 15105 14876 -1.5% 1.02x (?)
DropLastCountableRangeLazy 13526 13864 +2.5% 0.98x
DropLastSequence 33444 33179 -0.8% 1.01x
DropLastSequenceLazy 33233 33209 -0.1% 1.00x (?)
DropWhileAnyCollection 26268 26751 +1.8% 0.98x
DropWhileAnyCollectionLazy 28700 29253 +1.9% 0.98x (?)
DropWhileAnySeqCRangeIter 33063 32967 -0.3% 1.00x (?)
DropWhileAnySeqCRangeIterLazy 28727 29088 +1.3% 0.99x
DropWhileAnySeqCntRange 26709 26827 +0.4% 1.00x
DropWhileAnySeqCntRangeLazy 28774 29340 +2.0% 0.98x
DropWhileAnySequence 18746 18720 -0.1% 1.00x (?)
DropWhileAnySequenceLazy 15040 15028 -0.1% 1.00x (?)
DropWhileArray 10064 10066 +0.0% 1.00x (?)
DropWhileArrayLazy 17426 17602 +1.0% 0.99x
DropWhileCountableRange 6489 6675 +2.9% 0.97x
DropWhileCountableRangeLazy 27686 27885 +0.7% 0.99x (?)
DropWhileSequence 17628 17627 -0.0% 1.00x (?)
DropWhileSequenceLazy 13699 13720 +0.2% 1.00x
EqualStringSubstring 681 678 -0.4% 1.00x (?)
EqualSubstringString 681 676 -0.7% 1.01x
EqualSubstringSubstring 799 792 -0.9% 1.01x
EqualSubstringSubstringGenericEquatable 426 428 +0.5% 1.00x (?)
ErrorHandling 6782 6836 +0.8% 0.99x (?)
ExclusivityGlobal 172 172 +0.0% 1.00x
ExclusivityInMatSet 327 324 -0.9% 1.01x
ExclusivityIndependent 128 125 -2.3% 1.02x
FilterEvenUsingReduce 4291 4293 +0.0% 1.00x (?)
FilterEvenUsingReduceInto 2503 2519 +0.6% 0.99x
FrequenciesUsingReduce 15904 15854 -0.3% 1.00x (?)
FrequenciesUsingReduceInto 9030 8898 -1.5% 1.01x (?)
Hanoi 19276 19338 +0.3% 1.00x (?)
HashTest 17285 17999 +4.1% 0.96x
Histogram 8988 9030 +0.5% 1.00x (?)
Integrate 686 683 -0.4% 1.00x (?)
IterateData 13440 13579 +1.0% 0.99x
Join 1514 1557 +2.8% 0.97x
LazilyFilteredArrayContains 4968519 4976361 +0.2% 1.00x (?)
LazilyFilteredArrays 1758281 1768469 +0.6% 0.99x (?)
LazilyFilteredRange 714788 744452 +4.2% 0.96x
LessSubstringSubstring 790 797 +0.9% 0.99x (?)
LessSubstringSubstringGenericComparable 449 444 -1.1% 1.01x
LinkedList 40660 40390 -0.7% 1.01x
MapReduce 38973 38833 -0.4% 1.00x (?)
MapReduceAnyCollection 38661 38565 -0.2% 1.00x (?)
MapReduceAnyCollectionShort 51824 51101 -1.4% 1.01x (?)
MapReduceClass 43676 43759 +0.2% 1.00x (?)
MapReduceClassShort 55464 55055 -0.7% 1.01x (?)
MapReduceLazyCollection 34803 34777 -0.1% 1.00x (?)
MapReduceLazyCollectionShort 45992 46134 +0.3% 1.00x (?)
MapReduceLazySequence 29802 29796 -0.0% 1.00x (?)
MapReduceSequence 45429 45260 -0.4% 1.00x
MapReduceShort 50710 51088 +0.7% 0.99x (?)
MapReduceShortString 283 283 +0.0% 1.00x
MapReduceString 2689 2684 -0.2% 1.00x (?)
Memset 45174 47290 +4.7% 0.96x
MonteCarloE 931883 972789 +4.4% 0.96x
MonteCarloPi 4202515 4319900 +2.8% 0.97x (?)
NSDictionaryCastToSwift 6486 6603 +1.8% 0.98x (?)
NSError 731 735 +0.5% 0.99x (?)
NSStringConversion 408 406 -0.5% 1.00x (?)
NopDeinit 170156 169989 -0.1% 1.00x (?)
ObjectAllocation 1463 1460 -0.2% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObject 24964 25015 +0.2% 1.00x (?)
ObjectiveCBridgeFromNSArrayAnyObjectForced 6879 6825 -0.8% 1.01x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToString 41463 40615 -2.0% 1.02x (?)
ObjectiveCBridgeFromNSArrayAnyObjectToStringForced 34942 34760 -0.5% 1.01x (?)
ObjectiveCBridgeFromNSDictionaryAnyObject 122331 123097 +0.6% 0.99x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectForced 7575 7851 +3.6% 0.96x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToString 95158 98331 +3.3% 0.97x (?)
ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced 106717 109783 +2.9% 0.97x (?)
ObjectiveCBridgeFromNSSetAnyObject 69001 69122 +0.2% 1.00x (?)
ObjectiveCBridgeFromNSSetAnyObjectForced 7595 7637 +0.6% 0.99x (?)
ObjectiveCBridgeFromNSSetAnyObjectToString 73553 72450 -1.5% 1.02x (?)
ObjectiveCBridgeFromNSSetAnyObjectToStringForced 72474 75830 +4.6% 0.96x
ObjectiveCBridgeFromNSString 4080 3966 -2.8% 1.03x (?)
ObjectiveCBridgeFromNSStringForced 2217 2226 +0.4% 1.00x
ObjectiveCBridgeStubDataAppend 4508 4600 +2.0% 0.98x
ObjectiveCBridgeStubFromArrayOfNSString 25229 25119 -0.4% 1.00x (?)
ObjectiveCBridgeStubFromNSDateRef 4458 4653 +4.4% 0.96x
ObjectiveCBridgeStubFromNSString 591 607 +2.7% 0.97x (?)
ObjectiveCBridgeStubNSDataAppend 2845 2923 +2.7% 0.97x (?)
ObjectiveCBridgeStubNSDateMutationRef 15843 15976 +0.8% 0.99x (?)
ObjectiveCBridgeStubToArrayOfNSString 29794 29439 -1.2% 1.01x (?)
ObjectiveCBridgeStubToNSString 1553 1561 +0.5% 0.99x
ObjectiveCBridgeStubURLAppendPath 217028 221598 +2.1% 0.98x (?)
ObjectiveCBridgeStubURLAppendPathRef 216206 223353 +3.3% 0.97x (?)
ObjectiveCBridgeToNSArray 29730 29520 -0.7% 1.01x (?)
ObjectiveCBridgeToNSDictionary 46770 46937 +0.4% 1.00x (?)
ObjectiveCBridgeToNSSet 40692 41244 +1.4% 0.99x (?)
ObserverClosure 6950 6983 +0.5% 1.00x (?)
ObserverForwarderStruct 5103 5142 +0.8% 0.99x
ObserverPartiallyAppliedMethod 8377 8419 +0.5% 1.00x (?)
ObserverUnappliedMethod 8815 8818 +0.0% 1.00x (?)
OpenClose 393 393 +0.0% 1.00x
Phonebook 21614 21578 -0.2% 1.00x (?)
PolymorphicCalls 5212 5276 +1.2% 0.99x (?)
PopFrontArray 10267 10202 -0.6% 1.01x (?)
PopFrontArrayGeneric 9214 9183 -0.3% 1.00x
PopFrontUnsafePointer 7627 7726 +1.3% 0.99x
PrefixAnyCollection 20382 20567 +0.9% 0.99x (?)
PrefixAnyCollectionLazy 141225 141256 +0.0% 1.00x (?)
PrefixAnySeqCRangeIter 24587 24972 +1.6% 0.98x (?)
PrefixAnySeqCRangeIterLazy 24541 24495 -0.2% 1.00x (?)
PrefixAnySeqCntRange 20696 20861 +0.8% 0.99x
PrefixAnySeqCntRangeLazy 20408 20531 +0.6% 0.99x (?)
PrefixAnySequence 12850 12890 +0.3% 1.00x (?)
PrefixAnySequenceLazy 12895 12895 +0.0% 1.00x
PrefixArray 6448 6699 +3.9% 0.96x
PrefixArrayLazy 45267 44497 -1.7% 1.02x (?)
PrefixCountableRangeLazy 40555 41280 +1.8% 0.98x (?)
PrefixSequence 11834 11850 +0.1% 1.00x
PrefixSequenceLazy 11893 11846 -0.4% 1.00x
PrefixWhileAnyCollection 38582 39530 +2.5% 0.98x
PrefixWhileAnyCollectionLazy 23469 23694 +1.0% 0.99x (?)
PrefixWhileAnySeqCRangeIter 43600 42977 -1.4% 1.01x (?)
PrefixWhileAnySeqCRangeIterLazy 23446 23754 +1.3% 0.99x
PrefixWhileAnySeqCntRange 39144 39376 +0.6% 0.99x (?)
PrefixWhileAnySeqCntRangeLazy 23681 23973 +1.2% 0.99x (?)
PrefixWhileAnySequence 32740 32831 +0.3% 1.00x (?)
PrefixWhileAnySequenceLazy 13423 13353 -0.5% 1.01x (?)
PrefixWhileArray 17402 17370 -0.2% 1.00x (?)
PrefixWhileArrayLazy 15254 15379 +0.8% 0.99x
PrefixWhileCountableRange 18901 18980 +0.4% 1.00x
PrefixWhileCountableRangeLazy 22890 23005 +0.5% 1.00x
PrefixWhileSequence 31572 31692 +0.4% 1.00x (?)
PrefixWhileSequenceLazy 12404 12381 -0.2% 1.00x (?)
Prims 10597 10623 +0.2% 1.00x (?)
PrimsSplit 10576 10572 -0.0% 1.00x (?)
ProtocolDispatch2 500 499 -0.2% 1.00x
RC4 18761 19265 +2.7% 0.97x
RGBHistogram 34559 34308 -0.7% 1.01x (?)
RGBHistogramOfObjects 106807 105958 -0.8% 1.01x
RangeAssignment 5717 5768 +0.9% 0.99x
RangeIterationSigned 17678 17979 +1.7% 0.98x
RangeIterationSigned64 51865 53041 +2.3% 0.98x (?)
RangeIterationUnsigned 47361 48124 +1.6% 0.98x (?)
RecursiveOwnedParameter 11004 11056 +0.5% 1.00x
ReversedArray 43847 45333 +3.4% 0.97x (?)
ReversedBidirectional 76589 75391 -1.6% 1.02x
SetExclusiveOr 23014 22953 -0.3% 1.00x
SetExclusiveOr_OfObjects 48517 47943 -1.2% 1.01x
SetIntersect 12693 12590 -0.8% 1.01x
SetIntersect_OfObjects 12679 12395 -2.2% 1.02x (?)
SetIsSubsetOf 1910 1896 -0.7% 1.01x
SetIsSubsetOf_OfObjects 1574 1563 -0.7% 1.01x
SetUnion 12206 11995 -1.7% 1.02x
SetUnion_OfObjects 33954 33676 -0.8% 1.01x
SevenBoom 1658 1649 -0.5% 1.01x (?)
Sim2DArray 44107 45176 +2.4% 0.98x
SortLargeExistentials 17566 17360 -1.2% 1.01x
SortLettersInPlace 3053 3069 +0.5% 0.99x (?)
SortSortedStrings 1453 1448 -0.3% 1.00x
SortStrings 2641 2566 -2.8% 1.03x
SortStringsUnicode 9396 9194 -2.1% 1.02x
StackPromo 103013 103712 +0.7% 0.99x (?)
StaticArray 4596 4578 -0.4% 1.00x
StrComplexWalk 6977 6997 +0.3% 1.00x (?)
StrToInt 126969 127095 +0.1% 1.00x (?)
StringAdder 3807 3791 -0.4% 1.00x (?)
StringBuilder 7113 7326 +3.0% 0.97x
StringBuilderLong 1113 1099 -1.3% 1.01x (?)
StringEdits 379667 382252 +0.7% 0.99x (?)
StringEnumRawValueInitialization 12777 12343 -3.4% 1.04x (?)
StringFromLongWholeSubstringGeneric 213 216 +1.4% 0.99x (?)
StringHasPrefixUnicode 16646 16762 +0.7% 0.99x (?)
StringHasSuffixUnicode 63222 63596 +0.6% 0.99x (?)
StringInterpolation 13693 13621 -0.5% 1.01x (?)
StringMatch 34821 34664 -0.5% 1.00x (?)
StringUTF16Builder 7918 8206 +3.6% 0.96x
StringWalk 11855 12383 +4.5% 0.96x
StringWithCString 58970 56642 -3.9% 1.04x
SubstringComparable 4352 4280 -1.7% 1.02x
SubstringEqualString 6787 6518 -4.0% 1.04x
SubstringEquatable 8401 8486 +1.0% 0.99x
SubstringFromLongString 17 17 +0.0% 1.00x
SuffixAnyCollection 6815 6863 +0.7% 0.99x
SuffixAnyCollectionLazy 47396 47152 -0.5% 1.01x (?)
SuffixAnySeqCRangeIter 44940 44756 -0.4% 1.00x (?)
SuffixAnySeqCRangeIterLazy 44921 45374 +1.0% 0.99x (?)
SuffixAnySeqCntRange 6802 6849 +0.7% 0.99x (?)
SuffixAnySeqCntRangeLazy 6807 6858 +0.7% 0.99x
SuffixAnySequence 31128 31111 -0.1% 1.00x (?)
SuffixAnySequenceLazy 31133 31135 +0.0% 1.00x (?)
SuffixArray 2159 2136 -1.1% 1.01x
SuffixArrayLazy 15103 14849 -1.7% 1.02x
SuffixCountableRangeLazy 13539 13817 +2.1% 0.98x
SuffixSequence 30794 30749 -0.1% 1.00x
SuffixSequenceLazy 30780 30755 -0.1% 1.00x (?)
SumUsingReduce 229969 230212 +0.1% 1.00x (?)
SumUsingReduceInto 226037 227448 +0.6% 0.99x
SuperChars 192845 193274 +0.2% 1.00x (?)
TwoSum 4336 4379 +1.0% 0.99x
TypeFlood 169 165 -2.4% 1.02x (?)
UTF8Decode 38929 38620 -0.8% 1.01x
Walsh 12152 12463 +2.6% 0.98x
XorLoop 23575 24617 +4.4% 0.96x
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

@swiftix
Copy link
Contributor Author

swiftix commented Oct 14, 2017

@slavapestov This version of the PR seems to pass all tests and does not contain any unrelated changes for thunks, etc. OK to merge?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants