Skip to content

Stricter enforcement of the "large space" heuristic #12818

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

Merged
merged 2 commits into from
Dec 14, 2017

Conversation

CodaFi
Copy link
Contributor

@CodaFi CodaFi commented Nov 8, 2017

The Space Engine includes a heuristic that attempted a combinatorics-
based check to see if a pattern covered an insufficient amount of cases.
In straight-line switches this avoided computing a subspace match that
would have been quite expensive computationally. However, when
expressive patterns (like tuple patterns) are used, it can fool the
check because the covered space is much larger than the actual size of
the space due to pattern overlap that counting like this simply can't detect.

Instead weaken the heuristic to diagnose large spaces as "uncheckable" and suggest a default clause. This requires disabling SILGen's warning for unreachable default clauses which is itself incomplete.

Resolves SR-6316.

I'm concerned about the performance impact of this change, which is what drove us to use the heuristic in the first place.

@CodaFi
Copy link
Contributor Author

CodaFi commented Nov 8, 2017

@swift-ci please smoke test

@CodaFi CodaFi requested a review from jckarter November 8, 2017 18:59
@CodaFi
Copy link
Contributor Author

CodaFi commented Nov 8, 2017

(Tagging Joe because he was the last one I talked to about this)

@jckarter
Copy link
Contributor

jckarter commented Nov 8, 2017

@swift-ci please smoke test compiler performance

@jckarter
Copy link
Contributor

jckarter commented Nov 8, 2017

SGTM. @graydon might be able to help you interpret the compiler performance counters.

@jckarter
Copy link
Contributor

jckarter commented Nov 8, 2017

@swift-ci Please smoke test

@jrose-apple
Copy link
Contributor

The other thing we could do is err on the side of requiring the default. We could even phrase the diagnostic apologetically, i.e. "the compiler was unable to prove that all cases are handled".

@CodaFi
Copy link
Contributor Author

CodaFi commented Nov 8, 2017

Trouble with that is SILOptimizer likes to pop unreachable diagnostics on default clauses.

@jrose-apple
Copy link
Contributor

jrose-apple commented Nov 8, 2017

Yeah…maybe we need a new kind of "unreachable" that says "yes, I know, but Sema can't do better".

@jckarter
Copy link
Contributor

jckarter commented Nov 8, 2017

@jrose-apple That seems reasonable to me too. @CodaFi is there a reason we don't do that already?

@jrose-apple
Copy link
Contributor

Worth noting that Robert and I casually switched to talking about a different problem. This bug is about an uncovered switch that Sema thought was covered, and assuming "you need a default" would have fixed it. However, there are also covered switches that Sema might think are uncovered, but SIL diagnostics later prove to be covered. In this case we'd be back in a "damned if you do, damned if you don't" scenario.

@jckarter
Copy link
Contributor

jckarter commented Nov 8, 2017

The SIL diagnostic behavior pre-dates the space engine. I'd be fine with delegating the problem of exhaustiveness analysis to Sema and suppressing the diagnostic in SIL.

@swift-ci
Copy link
Contributor

swift-ci commented Nov 8, 2017

Build comment file:

Summary for master smoketest

Regressions found (see below)

Debug

PR vs. head (debug)

PR vs. head, changed counters (debug)

Regressed (0)
Improved (8)
Improved in Kingfisher (7)
name old new delta delta_pct
Sema.NumLazyIterableDeclContexts 48591 48571 -20 -0.04% ✅
Sema.NumTypesDeserialized 283038 282826 -212 -0.07% ✅
Sema.NumDeclsDeserialized 343260 342996 -264 -0.08% ✅
Sema.NumLazyGenericEnvironments 50914 50870 -44 -0.09% ✅
Sema.NumGenericSignatureBuilders 9642 9632 -10 -0.1% ✅
Sema.NumLazyGenericEnvironmentsLoaded 5280 5270 -10 -0.19% ✅
Sema.NumConstraintScopes 334228 311964 -22264 -6.66% ✅
Improved in ReactiveCocoa (1)
name old new delta delta_pct
Sema.NumLazyGenericEnvironmentsLoaded 9152 9150 -2 -0.02% ✅
Unchanged (abs(delta) < 0.01% or 100000usec) (107)
Unchanged (abs(delta) < 0.01% or 100000usec) in Alamofire (23)
name old new delta delta_pct
AST.NumImportedExternalDefinitions 5727 5727 0 0.0%
AST.NumLoadedModules 522 522 0 0.0%
AST.NumTotalClangImportedEntities 18092 18092 0 0.0%
AST.NumUsedConformances 427 427 0 0.0%
IRModule.NumIRBasicBlocks 14727 14727 0 0.0%
IRModule.NumIRFunctions 5337 5337 0 0.0%
IRModule.NumIRGlobals 4669 4669 0 0.0%
IRModule.NumIRInsts 130260 130260 0 0.0%
IRModule.NumIRValueSymbols 8625 8625 0 0.0%
LLVM.NumLLVMBytesOutput 3083636 3083636 0 0.0%
SILModule.NumSILGenFunctions 2458 2458 0 0.0%
SILModule.NumSILOptFunctions 4747 4747 0 0.0%
Sema.NumConformancesDeserialized 34854 34854 0 0.0%
Sema.NumConstraintScopes 39318 39318 0 0.0%
Sema.NumDeclsDeserialized 186159 186159 0 0.0%
Sema.NumDeclsValidated 7138 7138 0 0.0%
Sema.NumFunctionsTypechecked 4043 4043 0 0.0%
Sema.NumGenericSignatureBuilders 3306 3306 0 0.0%
Sema.NumLazyGenericEnvironments 27340 27340 0 0.0%
Sema.NumLazyGenericEnvironmentsLoaded 2497 2497 0 0.0%
Sema.NumLazyIterableDeclContexts 18998 18998 0 0.0%
Sema.NumTypesDeserialized 151693 151693 0 0.0%
Sema.NumTypesValidated 6298 6298 0 0.0%
Unchanged (abs(delta) < 0.01% or 100000usec) in Kingfisher (16)
name old new delta delta_pct
AST.NumImportedExternalDefinitions 20024 20024 0 0.0%
AST.NumLoadedModules 1323 1323 0 0.0%
AST.NumTotalClangImportedEntities 56416 56416 0 0.0%
AST.NumUsedConformances 842 842 0 0.0%
IRModule.NumIRBasicBlocks 20357 20357 0 0.0%
IRModule.NumIRFunctions 8139 8139 0 0.0%
IRModule.NumIRGlobals 9045 9045 0 0.0%
IRModule.NumIRInsts 183002 183002 0 0.0%
IRModule.NumIRValueSymbols 14821 14821 0 0.0%
LLVM.NumLLVMBytesOutput 5070868 5070864 -4 -0.0%
SILModule.NumSILGenFunctions 4178 4178 0 0.0%
SILModule.NumSILOptFunctions 8603 8603 0 0.0%
Sema.NumConformancesDeserialized 66935 66935 0 0.0%
Sema.NumDeclsValidated 9306 9306 0 0.0%
Sema.NumFunctionsTypechecked 12594 12594 0 0.0%
Sema.NumTypesValidated 14214 14214 0 0.0%
Unchanged (abs(delta) < 0.01% or 100000usec) in ReactiveCocoa (22)
name old new delta delta_pct
AST.NumImportedExternalDefinitions 32490 32490 0 0.0%
AST.NumLoadedModules 3536 3536 0 0.0%
AST.NumTotalClangImportedEntities 97352 97352 0 0.0%
AST.NumUsedConformances 672 672 0 0.0%
IRModule.NumIRBasicBlocks 12060 12060 0 0.0%
IRModule.NumIRFunctions 7123 7123 0 0.0%
IRModule.NumIRGlobals 9652 9652 0 0.0%
IRModule.NumIRInsts 101268 101268 0 0.0%
IRModule.NumIRValueSymbols 14773 14773 0 0.0%
LLVM.NumLLVMBytesOutput 6575324 6575324 0 0.0%
SILModule.NumSILGenFunctions 2892 2892 0 0.0%
SILModule.NumSILOptFunctions 4369 4369 0 0.0%
Sema.NumConformancesDeserialized 47508 47508 0 0.0%
Sema.NumDeclsValidated 4704 4704 0 0.0%
Sema.NumFunctionsTypechecked 17692 17692 0 0.0%
Sema.NumLazyIterableDeclContexts 94390 94386 -4 -0.0%
Sema.NumTypesValidated 34130 34130 0 0.0%
Sema.NumConstraintScopes 54820 54814 -6 -0.01%
Sema.NumDeclsDeserialized 398813 398787 -26 -0.01%
Sema.NumGenericSignatureBuilders 21664 21662 -2 -0.01%
Sema.NumLazyGenericEnvironments 67026 67020 -6 -0.01%
Sema.NumTypesDeserialized 365806 365776 -30 -0.01%
Unchanged (abs(delta) < 0.01% or 100000usec) in ReactiveSwift (23)
name old new delta delta_pct
AST.NumImportedExternalDefinitions 3394 3394 0 0.0%
AST.NumLoadedModules 880 880 0 0.0%
AST.NumTotalClangImportedEntities 8586 8586 0 0.0%
AST.NumUsedConformances 714 714 0 0.0%
IRModule.NumIRBasicBlocks 21146 21146 0 0.0%
IRModule.NumIRFunctions 10785 10785 0 0.0%
IRModule.NumIRGlobals 12416 12416 0 0.0%
IRModule.NumIRInsts 321703 321703 0 0.0%
IRModule.NumIRValueSymbols 19513 19513 0 0.0%
LLVM.NumLLVMBytesOutput 8411868 8411868 0 0.0%
SILModule.NumSILGenFunctions 4813 4813 0 0.0%
SILModule.NumSILOptFunctions 7721 7721 0 0.0%
Sema.NumConformancesDeserialized 48170 48170 0 0.0%
Sema.NumConstraintScopes 36534 36534 0 0.0%
Sema.NumDeclsDeserialized 244864 244864 0 0.0%
Sema.NumDeclsValidated 20546 20546 0 0.0%
Sema.NumFunctionsTypechecked 3532 3532 0 0.0%
Sema.NumGenericSignatureBuilders 8826 8826 0 0.0%
Sema.NumLazyGenericEnvironments 40444 40444 0 0.0%
Sema.NumLazyGenericEnvironmentsLoaded 5886 5886 0 0.0%
Sema.NumLazyIterableDeclContexts 27672 27672 0 0.0%
Sema.NumTypesDeserialized 209453 209453 0 0.0%
Sema.NumTypesValidated 70786 70786 0 0.0%
Unchanged (abs(delta) < 0.01% or 100000usec) in Result (23)
name old new delta delta_pct
AST.NumImportedExternalDefinitions 334 334 0 0.0%
AST.NumLoadedModules 108 108 0 0.0%
AST.NumTotalClangImportedEntities 1064 1064 0 0.0%
AST.NumUsedConformances 62 62 0 0.0%
IRModule.NumIRBasicBlocks 1392 1392 0 0.0%
IRModule.NumIRFunctions 646 646 0 0.0%
IRModule.NumIRGlobals 754 754 0 0.0%
IRModule.NumIRInsts 16999 16999 0 0.0%
IRModule.NumIRValueSymbols 1182 1182 0 0.0%
LLVM.NumLLVMBytesOutput 405172 405172 0 0.0%
SILModule.NumSILGenFunctions 314 314 0 0.0%
SILModule.NumSILOptFunctions 642 642 0 0.0%
Sema.NumConformancesDeserialized 2062 2062 0 0.0%
Sema.NumConstraintScopes 3738 3738 0 0.0%
Sema.NumDeclsDeserialized 22863 22863 0 0.0%
Sema.NumDeclsValidated 516 516 0 0.0%
Sema.NumFunctionsTypechecked 298 298 0 0.0%
Sema.NumGenericSignatureBuilders 468 468 0 0.0%
Sema.NumLazyGenericEnvironments 3824 3824 0 0.0%
Sema.NumLazyGenericEnvironmentsLoaded 486 486 0 0.0%
Sema.NumLazyIterableDeclContexts 2844 2844 0 0.0%
Sema.NumTypesDeserialized 19880 19880 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 5764840 5745398 -19442 -0.34%
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-Onone.wall 5050574 4996042 -54532 -1.08%
time.swift-driver.Kingfisher-all-arm64_apple_ios8.0-o-Onone.wall 4862824 4695701 -167123 -3.44%
Unchanged (abs(delta) < 0.01% or 1000000usec) in ReactiveCocoa (2)
name old new delta delta_pct
time.swift-driver.ReactiveCocoa-all-arm64_apple_ios8.0-o-Onone.wall 3393702 3396713 3011 0.09%
time.swift-driver.ReactiveCocoa-all-armv7_apple_ios8.0-o-Onone.wall 3468663 3431871 -36792 -1.06%
Unchanged (abs(delta) < 0.01% or 1000000usec) in ReactiveSwift (2)
name old new delta delta_pct
time.swift-driver.ReactiveSwift-all-arm64_apple_ios8.0-o-Onone.wall 3297224 3296963 -261 -0.01%
time.swift-driver.ReactiveSwift-all-armv7_apple_ios8.0-o-Onone.wall 3356231 3344391 -11840 -0.35%
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 1543946 1544438 492 0.03%
time.swift-driver.Result-all-armv7_apple_ios8.0-o-Onone.wall 1550480 1523196 -27284 -1.76%

PR vs. baseline (debug)

PR vs. baseline, changed counters (debug)

Regressed (16)
Regressed in Alamofire (3)
name old new delta delta_pct
SILModule.NumSILOptFunctions 3908 4747 839 21.47% ⛔
Sema.NumConformancesDeserialized 31066 34854 3788 12.19% ⛔
LLVM.NumLLVMBytesOutput 2995540 3083636 88096 2.94% ⛔
Regressed in Kingfisher (3)
name old new delta delta_pct
SILModule.NumSILOptFunctions 7512 8603 1091 14.52% ⛔
LLVM.NumLLVMBytesOutput 4701704 5070864 369160 7.85% ⛔
IRModule.NumIRBasicBlocks 18956 20357 1401 7.39% ⛔
Regressed in ReactiveCocoa (7)
name old new delta delta_pct
LLVM.NumLLVMBytesOutput 4775608 6575324 1799716 37.69% ⛔
Sema.NumConstraintScopes 42990 54814 11824 27.5% ⛔
SILModule.NumSILOptFunctions 4068 4369 301 7.4% ⛔
IRModule.NumIRBasicBlocks 11870 12060 190 1.6% ⛔
IRModule.NumIRGlobals 9536 9652 116 1.22% ⛔
IRModule.NumIRFunctions 7080 7123 43 0.61% ⛔
IRModule.NumIRValueSymbols 14686 14773 87 0.59% ⛔
Regressed in ReactiveSwift (3)
name old new delta delta_pct
SILModule.NumSILOptFunctions 6970 7721 751 10.77% ⛔
LLVM.NumLLVMBytesOutput 8049848 8411868 362020 4.5% ⛔
IRModule.NumIRGlobals 12388 12416 28 0.23% ⛔
Improved (72)
Improved in Alamofire (19)
name old new delta delta_pct
SILModule.NumSILGenFunctions 2463 2458 -5 -0.2% ✅
IRModule.NumIRFunctions 5357 5337 -20 -0.37% ✅
IRModule.NumIRValueSymbols 8767 8625 -142 -1.62% ✅
AST.NumUsedConformances 435 427 -8 -1.84% ✅
IRModule.NumIRGlobals 4765 4669 -96 -2.01% ✅
IRModule.NumIRBasicBlocks 15117 14727 -390 -2.58% ✅
Sema.NumDeclsDeserialized 193026 186159 -6867 -3.56% ✅
Sema.NumTypesDeserialized 158862 151693 -7169 -4.51% ✅
Sema.NumLazyGenericEnvironmentsLoaded 2641 2497 -144 -5.45% ✅
Sema.NumLazyGenericEnvironments 29740 27340 -2400 -8.07% ✅
Sema.NumConstraintScopes 43672 39318 -4354 -9.97% ✅
IRModule.NumIRInsts 145724 130260 -15464 -10.61% ✅
Sema.NumLazyIterableDeclContexts 21455 18998 -2457 -11.45% ✅
Sema.NumFunctionsTypechecked 5545 4043 -1502 -27.09% ✅
AST.NumImportedExternalDefinitions 8501 5727 -2774 -32.63% ✅
AST.NumTotalClangImportedEntities 27881 18092 -9789 -35.11% ✅
Sema.NumTypesValidated 18298 6298 -12000 -65.58% ✅
Sema.NumGenericSignatureBuilders 13996 3306 -10690 -76.38% ✅
Sema.NumDeclsValidated 61341 7138 -54203 -88.36% ✅
Improved in Kingfisher (19)
name old new delta delta_pct
SILModule.NumSILGenFunctions 4186 4178 -8 -0.19% ✅
IRModule.NumIRFunctions 8204 8139 -65 -0.79% ✅
IRModule.NumIRGlobals 9117 9045 -72 -0.79% ✅
IRModule.NumIRValueSymbols 14986 14821 -165 -1.1% ✅
AST.NumUsedConformances 858 842 -16 -1.86% ✅
Sema.NumLazyGenericEnvironmentsLoaded 5480 5270 -210 -3.83% ✅
Sema.NumConformancesDeserialized 70852 66935 -3917 -5.53% ✅
IRModule.NumIRInsts 194978 183002 -11976 -6.14% ✅
Sema.NumLazyIterableDeclContexts 54859 48571 -6288 -11.46% ✅
Sema.NumDeclsDeserialized 406573 342996 -63577 -15.64% ✅
Sema.NumTypesDeserialized 344515 282826 -61689 -17.91% ✅
Sema.NumLazyGenericEnvironments 65900 50870 -15030 -22.81% ✅
AST.NumTotalClangImportedEntities 75188 56416 -18772 -24.97% ✅
Sema.NumFunctionsTypechecked 17534 12594 -4940 -28.17% ✅
AST.NumImportedExternalDefinitions 28988 20024 -8964 -30.92% ✅
Sema.NumConstraintScopes 581970 311964 -270006 -46.4% ✅
Sema.NumTypesValidated 27944 14214 -13730 -49.13% ✅
Sema.NumGenericSignatureBuilders 33750 9632 -24118 -71.46% ✅
Sema.NumDeclsValidated 125016 9306 -115710 -92.56% ✅
Improved in ReactiveCocoa (15)
name old new delta delta_pct
SILModule.NumSILGenFunctions 2904 2892 -12 -0.41% ✅
IRModule.NumIRInsts 102753 101268 -1485 -1.45% ✅
AST.NumTotalClangImportedEntities 101754 97352 -4402 -4.33% ✅
Sema.NumFunctionsTypechecked 18516 17692 -824 -4.45% ✅
AST.NumUsedConformances 704 672 -32 -4.55% ✅
AST.NumImportedExternalDefinitions 34112 32490 -1622 -4.75% ✅
Sema.NumLazyGenericEnvironmentsLoaded 10174 9150 -1024 -10.06% ✅
Sema.NumLazyIterableDeclContexts 105954 94386 -11568 -10.92% ✅
Sema.NumConformancesDeserialized 57916 47508 -10408 -17.97% ✅
Sema.NumTypesDeserialized 447750 365776 -81974 -18.31% ✅
Sema.NumDeclsDeserialized 494670 398787 -95883 -19.38% ✅
Sema.NumLazyGenericEnvironments 90692 67020 -23672 -26.1% ✅
Sema.NumTypesValidated 49050 34130 -14920 -30.42% ✅
Sema.NumGenericSignatureBuilders 49468 21662 -27806 -56.21% ✅
Sema.NumDeclsValidated 106644 4704 -101940 -95.59% ✅
Improved in ReactiveSwift (19)
name old new delta delta_pct
SILModule.NumSILGenFunctions 4833 4813 -20 -0.41% ✅
IRModule.NumIRValueSymbols 19619 19513 -106 -0.54% ✅
IRModule.NumIRFunctions 10863 10785 -78 -0.72% ✅
AST.NumUsedConformances 730 714 -16 -2.19% ✅
IRModule.NumIRBasicBlocks 21814 21146 -668 -3.06% ✅
IRModule.NumIRInsts 332161 321703 -10458 -3.15% ✅
Sema.NumConformancesDeserialized 49822 48170 -1652 -3.32% ✅
Sema.NumConstraintScopes 41650 36534 -5116 -12.28% ✅
Sema.NumDeclsDeserialized 291790 244864 -46926 -16.08% ✅
Sema.NumTypesDeserialized 253286 209453 -43833 -17.31% ✅
Sema.NumLazyGenericEnvironments 50740 40444 -10296 -20.29% ✅
Sema.NumFunctionsTypechecked 4538 3532 -1006 -22.17% ✅
Sema.NumLazyGenericEnvironmentsLoaded 7646 5886 -1760 -23.02% ✅
Sema.NumLazyIterableDeclContexts 37546 27672 -9874 -26.3% ✅
Sema.NumTypesValidated 100770 70786 -29984 -29.75% ✅
AST.NumImportedExternalDefinitions 6434 3394 -3040 -47.25% ✅
AST.NumTotalClangImportedEntities 24796 8586 -16210 -65.37% ✅
Sema.NumGenericSignatureBuilders 31134 8826 -22308 -71.65% ✅
Sema.NumDeclsValidated 75348 20546 -54802 -72.73% ✅
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 (0)
Improved (14)
Improved in Kingfisher (7)
name old new delta delta_pct
Sema.NumLazyIterableDeclContexts 3527 3523 -4 -0.11% ✅
Sema.NumTypesDeserialized 45214 45162 -52 -0.12% ✅
Sema.NumLazyGenericEnvironments 4904 4896 -8 -0.16% ✅
Sema.NumDeclsDeserialized 48404 48324 -80 -0.17% ✅
Sema.NumGenericSignatureBuilders 1087 1085 -2 -0.18% ✅
Sema.NumLazyGenericEnvironmentsLoaded 822 818 -4 -0.49% ✅
Sema.NumConstraintScopes 323218 300954 -22264 -6.89% ✅
Improved in ReactiveCocoa (7)
name old new delta delta_pct
Sema.NumConstraintScopes 37364 37358 -6 -0.02% ✅
Sema.NumDeclsDeserialized 41724 41698 -26 -0.06% ✅
Sema.NumTypesDeserialized 38761 38731 -30 -0.08% ✅
Sema.NumLazyGenericEnvironments 5952 5946 -6 -0.1% ✅
Sema.NumLazyIterableDeclContexts 3778 3774 -4 -0.11% ✅
Sema.NumGenericSignatureBuilders 1282 1280 -2 -0.16% ✅
Sema.NumLazyGenericEnvironmentsLoaded 692 690 -2 -0.29% ✅
Unchanged (abs(delta) < 0.01% or 100000usec) (101)
Unchanged (abs(delta) < 0.01% or 100000usec) in Alamofire (23)
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 427 427 0 0.0%
IRModule.NumIRBasicBlocks 15403 15403 0 0.0%
IRModule.NumIRFunctions 3754 3754 0 0.0%
IRModule.NumIRGlobals 4432 4432 0 0.0%
IRModule.NumIRInsts 107563 107563 0 0.0%
IRModule.NumIRValueSymbols 7057 7057 0 0.0%
LLVM.NumLLVMBytesOutput 3391232 3391232 0 0.0%
SILModule.NumSILGenFunctions 1860 1860 0 0.0%
SILModule.NumSILOptFunctions 3071 3071 0 0.0%
Sema.NumConformancesDeserialized 15607 15607 0 0.0%
Sema.NumConstraintScopes 36195 36195 0 0.0%
Sema.NumDeclsDeserialized 24212 24212 0 0.0%
Sema.NumDeclsValidated 3283 3283 0 0.0%
Sema.NumFunctionsTypechecked 1104 1104 0 0.0%
Sema.NumGenericSignatureBuilders 416 416 0 0.0%
Sema.NumLazyGenericEnvironments 2668 2668 0 0.0%
Sema.NumLazyGenericEnvironmentsLoaded 361 361 0 0.0%
Sema.NumLazyIterableDeclContexts 1655 1655 0 0.0%
Sema.NumTypesDeserialized 22917 22917 0 0.0%
Sema.NumTypesValidated 1592 1592 0 0.0%
Unchanged (abs(delta) < 0.01% or 100000usec) in Kingfisher (16)
name old new delta delta_pct
AST.NumImportedExternalDefinitions 3368 3368 0 0.0%
AST.NumLoadedModules 61 61 0 0.0%
AST.NumTotalClangImportedEntities 9816 9816 0 0.0%
AST.NumUsedConformances 842 842 0 0.0%
IRModule.NumIRBasicBlocks 23372 23372 0 0.0%
IRModule.NumIRFunctions 6116 6116 0 0.0%
IRModule.NumIRGlobals 8552 8552 0 0.0%
IRModule.NumIRInsts 157385 157385 0 0.0%
IRModule.NumIRValueSymbols 13066 13066 0 0.0%
LLVM.NumLLVMBytesOutput 5989652 5989644 -8 -0.0%
SILModule.NumSILGenFunctions 3056 3056 0 0.0%
SILModule.NumSILOptFunctions 5840 5840 0 0.0%
Sema.NumConformancesDeserialized 31642 31642 0 0.0%
Sema.NumDeclsValidated 4144 4144 0 0.0%
Sema.NumFunctionsTypechecked 2848 2848 0 0.0%
Sema.NumTypesValidated 2740 2740 0 0.0%
Unchanged (abs(delta) < 0.01% or 100000usec) in ReactiveCocoa (16)
name old new delta delta_pct
AST.NumImportedExternalDefinitions 3132 3132 0 0.0%
AST.NumLoadedModules 66 66 0 0.0%
AST.NumTotalClangImportedEntities 7434 7434 0 0.0%
AST.NumUsedConformances 672 672 0 0.0%
IRModule.NumIRBasicBlocks 8987 8987 0 0.0%
IRModule.NumIRFunctions 5009 5009 0 0.0%
IRModule.NumIRGlobals 8487 8487 0 0.0%
IRModule.NumIRInsts 65214 65214 0 0.0%
IRModule.NumIRValueSymbols 12230 12230 0 0.0%
LLVM.NumLLVMBytesOutput 8817968 8817968 0 0.0%
SILModule.NumSILGenFunctions 1913 1913 0 0.0%
SILModule.NumSILOptFunctions 3147 3147 0 0.0%
Sema.NumConformancesDeserialized 20644 20644 0 0.0%
Sema.NumDeclsValidated 2398 2398 0 0.0%
Sema.NumFunctionsTypechecked 2482 2482 0 0.0%
Sema.NumTypesValidated 2372 2372 0 0.0%
Unchanged (abs(delta) < 0.01% or 100000usec) in ReactiveSwift (23)
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 720 720 0 0.0%
IRModule.NumIRBasicBlocks 21986 21986 0 0.0%
IRModule.NumIRFunctions 10267 10267 0 0.0%
IRModule.NumIRGlobals 11626 11626 0 0.0%
IRModule.NumIRInsts 259041 259041 0 0.0%
IRModule.NumIRValueSymbols 19591 19591 0 0.0%
LLVM.NumLLVMBytesOutput 10130880 10130880 0 0.0%
SILModule.NumSILGenFunctions 3735 3735 0 0.0%
SILModule.NumSILOptFunctions 6928 6928 0 0.0%
Sema.NumConformancesDeserialized 26629 26629 0 0.0%
Sema.NumConstraintScopes 34928 34928 0 0.0%
Sema.NumDeclsDeserialized 43989 43989 0 0.0%
Sema.NumDeclsValidated 7570 7570 0 0.0%
Sema.NumFunctionsTypechecked 1976 1976 0 0.0%
Sema.NumGenericSignatureBuilders 1515 1515 0 0.0%
Sema.NumLazyGenericEnvironments 4936 4936 0 0.0%
Sema.NumLazyGenericEnvironmentsLoaded 810 810 0 0.0%
Sema.NumLazyIterableDeclContexts 2871 2871 0 0.0%
Sema.NumTypesDeserialized 39471 39471 0 0.0%
Sema.NumTypesValidated 23594 23594 0 0.0%
Unchanged (abs(delta) < 0.01% or 100000usec) in Result (23)
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.NumIRBasicBlocks 2118 2118 0 0.0%
IRModule.NumIRFunctions 644 644 0 0.0%
IRModule.NumIRGlobals 683 683 0 0.0%
IRModule.NumIRInsts 19449 19449 0 0.0%
IRModule.NumIRValueSymbols 1211 1211 0 0.0%
LLVM.NumLLVMBytesOutput 490856 490856 0 0.0%
SILModule.NumSILGenFunctions 292 292 0 0.0%
SILModule.NumSILOptFunctions 813 813 0 0.0%
Sema.NumConformancesDeserialized 4240 4240 0 0.0%
Sema.NumConstraintScopes 3736 3736 0 0.0%
Sema.NumDeclsDeserialized 22894 22894 0 0.0%
Sema.NumDeclsValidated 470 470 0 0.0%
Sema.NumFunctionsTypechecked 296 296 0 0.0%
Sema.NumGenericSignatureBuilders 368 368 0 0.0%
Sema.NumLazyGenericEnvironments 3842 3842 0 0.0%
Sema.NumLazyGenericEnvironmentsLoaded 338 338 0 0.0%
Sema.NumLazyIterableDeclContexts 1962 1962 0 0.0%
Sema.NumTypesDeserialized 19968 19968 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 10521300 10549810 28510 0.27%
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 11211650 11133850 -77800 -0.69%
time.swift-driver.Kingfisher-all-arm64_apple_ios8.0-o-O.wall 11097840 10621480 -476360 -4.29%
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 4956227 5180910 224683 4.53%
time.swift-driver.ReactiveCocoa-all-arm64_apple_ios8.0-o-O.wall 4979341 5201612 222271 4.46%
Unchanged (abs(delta) < 0.01% or 1000000usec) in ReactiveSwift (2)
name old new delta delta_pct
time.swift-driver.ReactiveSwift-all-arm64_apple_ios8.0-o-O.wall 10442090 10493000 50910 0.49%
time.swift-driver.ReactiveSwift-all-armv7_apple_ios8.0-o-O.wall 10649310 10683300 33990 0.32%
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 2732185 2727667 -4518 -0.17%
time.swift-driver.Result-all-armv7_apple_ios8.0-o-O.wall 2779472 2762805 -16667 -0.6%

PR vs. baseline (release)

PR vs. baseline, changed counters (release)

Regressed (13)
Regressed in Alamofire (3)
name old new delta delta_pct
AST.NumTotalClangImportedEntities 2920 3234 314 10.75% ⛔
LLVM.NumLLVMBytesOutput 3172156 3391232 219076 6.91% ⛔
SILModule.NumSILOptFunctions 2991 3071 80 2.67% ⛔
Regressed in Kingfisher (4)
name old new delta delta_pct
LLVM.NumLLVMBytesOutput 5462712 5989644 526932 9.65% ⛔
AST.NumTotalClangImportedEntities 9086 9816 730 8.03% ⛔
Sema.NumConformancesDeserialized 30795 31642 847 2.75% ⛔
SILModule.NumSILOptFunctions 5723 5840 117 2.04% ⛔
Regressed in ReactiveCocoa (4)
name old new delta delta_pct
LLVM.NumLLVMBytesOutput 5480320 8817968 3337648 60.9% ⛔
Sema.NumConstraintScopes 23810 37358 13548 56.9% ⛔
SILModule.NumSILOptFunctions 2915 3147 232 7.96% ⛔
AST.NumTotalClangImportedEntities 7270 7434 164 2.26% ⛔
Regressed in ReactiveSwift (2)
name old new delta delta_pct
LLVM.NumLLVMBytesOutput 9452416 10130880 678464 7.18% ⛔
SILModule.NumSILOptFunctions 6852 6928 76 1.11% ⛔
Improved (69)
Improved in Alamofire (17)
name old new delta delta_pct
SILModule.NumSILGenFunctions 1861 1860 -1 -0.05% ✅
IRModule.NumIRFunctions 3819 3754 -65 -1.7% ✅
AST.NumUsedConformances 435 427 -8 -1.84% ✅
IRModule.NumIRGlobals 4521 4432 -89 -1.97% ✅
IRModule.NumIRValueSymbols 7218 7057 -161 -2.23% ✅
Sema.NumDeclsDeserialized 24875 24212 -663 -2.67% ✅
Sema.NumLazyIterableDeclContexts 1716 1655 -61 -3.55% ✅
Sema.NumTypesDeserialized 23832 22917 -915 -3.84% ✅
Sema.NumConformancesDeserialized 16433 15607 -826 -5.03% ✅
Sema.NumLazyGenericEnvironments 2814 2668 -146 -5.19% ✅
Sema.NumLazyGenericEnvironmentsLoaded 383 361 -22 -5.74% ✅
Sema.NumConstraintScopes 38683 36195 -2488 -6.43% ✅
IRModule.NumIRBasicBlocks 16869 15403 -1466 -8.69% ✅
IRModule.NumIRInsts 123248 107563 -15685 -12.73% ✅
Sema.NumTypesValidated 1977 1592 -385 -19.47% ✅
Sema.NumGenericSignatureBuilders 1595 416 -1179 -73.92% ✅
Sema.NumDeclsValidated 17283 3283 -14000 -81.0% ✅
Improved in Kingfisher (15)
name old new delta delta_pct
IRModule.NumIRGlobals 8627 8552 -75 -0.87% ✅
Sema.NumDeclsDeserialized 48980 48324 -656 -1.34% ✅
IRModule.NumIRValueSymbols 13308 13066 -242 -1.82% ✅
AST.NumUsedConformances 858 842 -16 -1.86% ✅
Sema.NumTypesDeserialized 46208 45162 -1046 -2.26% ✅
IRModule.NumIRFunctions 6265 6116 -149 -2.38% ✅
Sema.NumLazyIterableDeclContexts 3642 3523 -119 -3.27% ✅
Sema.NumLazyGenericEnvironments 5174 4896 -278 -5.37% ✅
Sema.NumLazyGenericEnvironmentsLoaded 876 818 -58 -6.62% ✅
IRModule.NumIRBasicBlocks 25356 23372 -1984 -7.82% ✅
IRModule.NumIRInsts 189828 157385 -32443 -17.09% ✅
Sema.NumTypesValidated 3794 2740 -1054 -27.78% ✅
Sema.NumConstraintScopes 564928 300954 -263974 -46.73% ✅
Sema.NumGenericSignatureBuilders 3925 1085 -2840 -72.36% ✅
Sema.NumDeclsValidated 35702 4144 -31558 -88.39% ✅
Improved in ReactiveCocoa (17)
name old new delta delta_pct
Sema.NumFunctionsTypechecked 2484 2482 -2 -0.08% ✅
AST.NumImportedExternalDefinitions 3138 3132 -6 -0.19% ✅
SILModule.NumSILGenFunctions 1917 1913 -4 -0.21% ✅
IRModule.NumIRValueSymbols 12322 12230 -92 -0.75% ✅
Sema.NumConformancesDeserialized 20926 20644 -282 -1.35% ✅
IRModule.NumIRFunctions 5090 5009 -81 -1.59% ✅
Sema.NumDeclsDeserialized 42739 41698 -1041 -2.44% ✅
Sema.NumTypesDeserialized 39750 38731 -1019 -2.56% ✅
Sema.NumLazyIterableDeclContexts 3880 3774 -106 -2.73% ✅
Sema.NumLazyGenericEnvironments 6210 5946 -264 -4.25% ✅
AST.NumUsedConformances 704 672 -32 -4.55% ✅
IRModule.NumIRBasicBlocks 9437 8987 -450 -4.77% ✅
Sema.NumLazyGenericEnvironmentsLoaded 728 690 -38 -5.22% ✅
IRModule.NumIRInsts 69895 65214 -4681 -6.7% ✅
Sema.NumTypesValidated 4072 2372 -1700 -41.75% ✅
Sema.NumGenericSignatureBuilders 3612 1280 -2332 -64.56% ✅
Sema.NumDeclsValidated 20206 2398 -17808 -88.13% ✅
Improved in ReactiveSwift (20)
name old new delta delta_pct
IRModule.NumIRGlobals 11628 11626 -2 -0.02% ✅
SILModule.NumSILGenFunctions 3755 3735 -20 -0.53% ✅
Sema.NumFunctionsTypechecked 1990 1976 -14 -0.7% ✅
Sema.NumConformancesDeserialized 26845 26629 -216 -0.8% ✅
AST.NumUsedConformances 732 720 -12 -1.64% ✅
IRModule.NumIRValueSymbols 19993 19591 -402 -2.01% ✅
Sema.NumDeclsDeserialized 44930 43989 -941 -2.09% ✅
IRModule.NumIRFunctions 10605 10267 -338 -3.19% ✅
Sema.NumTypesDeserialized 40957 39471 -1486 -3.63% ✅
Sema.NumLazyIterableDeclContexts 2982 2871 -111 -3.72% ✅
IRModule.NumIRInsts 271570 259041 -12529 -4.61% ✅
Sema.NumLazyGenericEnvironments 5196 4936 -260 -5.0% ✅
IRModule.NumIRBasicBlocks 23918 21986 -1932 -8.08% ✅
Sema.NumLazyGenericEnvironmentsLoaded 890 810 -80 -8.99% ✅
Sema.NumConstraintScopes 38598 34928 -3670 -9.51% ✅
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 7570 -21086 -73.58% ✅
Unchanged (abs(delta) < 0.01% or 100000usec) (10)
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 (4)
name old new delta delta_pct
AST.NumImportedExternalDefinitions 3368 3368 0 0.0%
AST.NumLoadedModules 61 61 0 0.0%
SILModule.NumSILGenFunctions 3056 3056 0 0.0%
Sema.NumFunctionsTypechecked 2848 2848 0 0.0%
Unchanged (abs(delta) < 0.01% or 100000usec) in ReactiveCocoa (2)
name old new delta delta_pct
IRModule.NumIRGlobals 8486 8487 1 0.01%
AST.NumLoadedModules 66 66 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)


@CodaFi
Copy link
Contributor Author

CodaFi commented Nov 8, 2017

Compiler perf benchmarks look like noise, which is good. Gonna run some more tests locally to see if I can get it to regress on less common idioms.

@CodaFi
Copy link
Contributor Author

CodaFi commented Nov 8, 2017

Also relevant is SR-3278. I will push another commit here that shows what removing the SIL diagnostic would look like.

@rudkx
Copy link
Contributor

rudkx commented Nov 29, 2017

@CodaFi Is this ready to go in?

@rudkx
Copy link
Contributor

rudkx commented Dec 8, 2017

@swift-ci Please test source compatibility

@CodaFi
Copy link
Contributor Author

CodaFi commented Dec 8, 2017

I want to test it on one more set of inputs. I’ll merge by tomorrow and PR to 4.1 then.

@rudkx
Copy link
Contributor

rudkx commented Dec 8, 2017

@CodaFi Great, thanks!

@@ -3857,6 +3857,10 @@ WARNING(redundant_particular_literal_case,none,
NOTE(redundant_particular_literal_case_here,none,
"first occurrence of identical literal pattern is here", ())

ERROR(cannot_prove_exhaustive_switch,none,
Copy link
Contributor Author

Choose a reason for hiding this comment

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

@jrose-apple Here's the new diagnostic

Copy link
Contributor

Choose a reason for hiding this comment

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

I think the diagnostic should also include a mention of the consequence of the "too large" condition so the user knows what action to take—they just have to provide a default, right?

Copy link
Contributor

Choose a reason for hiding this comment

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

This sounds good, along with what Joe said. We want the user to know immediately what to do next, even if there's some grumbling involved.

Copy link
Contributor

Choose a reason for hiding this comment

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

If it doesn't require too much SourceLoc gymnastics, can we have a fixit insert default: <#fatalError()#> or something like that?

@@ -1031,7 +1031,8 @@ void PatternMatchEmission::emitDispatch(ClauseMatrix &clauses, ArgArray args,
} else {
Loc = clauses[firstRow].getCasePattern()->getStartLoc();
}
SGF.SGM.diagnose(Loc, diag::unreachable_case, isDefault);
if (!isDefault)
SGF.SGM.diagnose(Loc, diag::unreachable_case);
Copy link
Contributor Author

Choose a reason for hiding this comment

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

@jckarter Is this reasonable?

Copy link
Contributor

Choose a reason for hiding this comment

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

I don't recall the history here—why are we diagnosing this in SILGen?

Copy link
Contributor

Choose a reason for hiding this comment

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

Just checking, since I've been out of it: we do diagnose unreachable defaults in Sema when we can, right?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

As of now: no (and I don’t believe we should because of things like SR-3278). default early-exits the current exhaustiveness algorithm.

Copy link
Contributor

Choose a reason for hiding this comment

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

Ah, right. I guess that's on me to put in once we switch to resilient builds with the exhaustive/non-exhaustive distinction on.

The Space Engine includes a heuristic that attempted a combinatorics-
based check to see if a pattern covered an insufficient amount of cases.
In straight-line switches this avoided computing a subspace match that
would have been quite expensive computationally.  However, when
expressive patterns (like tuple patterns) are used, it can fool the
check because the covered space is much larger than the actual size of
the space due to pattern overlap that counting like this simply can't detect.

Instead, just do the right thing and perform a space subtraction after
the existing preconditions for the heuristic are satisfied.

Resolves SR-6316
This presents a regression in diagnostic quality that is definitely
worth it not to lie to SILGen about whether a switch is covered or not.

At the same time, disable SIL’s unreachable diagnostic for ‘default’
clauses which would previously cause a warning to be emitted if the
default was proven to be unreachable.  This analysis is incomplete
anyways and can be done by Sema in the future if we desire.
@CodaFi
Copy link
Contributor Author

CodaFi commented Dec 13, 2017

@swift-ci please smoke test

@CodaFi
Copy link
Contributor Author

CodaFi commented Dec 13, 2017

@swift-ci please test compiler performance

@CodaFi
Copy link
Contributor Author

CodaFi commented Dec 13, 2017

Finally,

@swift-ci please test source compatibility

Copy link
Contributor

@jckarter jckarter left a comment

Choose a reason for hiding this comment

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

LGTM.

@CodaFi
Copy link
Contributor Author

CodaFi commented Dec 14, 2017

⛵️

@CodaFi CodaFi merged commit d2aa82d into swiftlang:master Dec 14, 2017
@CodaFi CodaFi deleted the cover-model branch December 14, 2017 07:01
@swift-ci
Copy link
Contributor

Build comment file:

Summary for master full

Unexpected test results, stats may be off for Kronos, CoreStore, vapor, Dollar, RxDataSources

No regressions above thresholds

Debug

debug brief

Regressed (0)
name old new delta delta_pct
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (2)
name old new delta delta_pct
LLVM.NumLLVMBytesOutput 852,443,272 852,443,174 -98 -0.0%
time.swift-driver.wall 1195.7s 1196.4s 770.6ms 0.06%

debug detailed

Regressed (0)
name old new delta delta_pct
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (23)
name old new delta delta_pct
AST.NumImportedExternalDefinitions 1,424,654 1,424,654 0 0.0%
AST.NumLoadedModules 282,590 282,590 0 0.0%
AST.NumTotalClangImportedEntities 4,498,513 4,498,513 0 0.0%
AST.NumUsedConformances 128,078 128,078 0 0.0%
IRModule.NumIRBasicBlocks 2,662,179 2,662,179 0 0.0%
IRModule.NumIRFunctions 1,274,752 1,274,752 0 0.0%
IRModule.NumIRGlobals 1,215,348 1,215,348 0 0.0%
IRModule.NumIRInsts 27,539,984 27,539,984 0 0.0%
IRModule.NumIRValueSymbols 2,119,044 2,119,044 0 0.0%
LLVM.NumLLVMBytesOutput 852,443,272 852,443,174 -98 -0.0%
SILModule.NumSILGenFunctions 604,556 604,556 0 0.0%
SILModule.NumSILOptFunctions 1,191,943 1,191,943 0 0.0%
Sema.NumConformancesDeserialized 5,151,582 5,151,582 0 0.0%
Sema.NumConstraintScopes 12,024,297 12,024,297 0 0.0%
Sema.NumDeclsDeserialized 42,051,379 42,051,379 0 0.0%
Sema.NumDeclsValidated 1,727,588 1,727,588 0 0.0%
Sema.NumFunctionsTypechecked 851,990 851,990 0 0.0%
Sema.NumGenericSignatureBuilders 1,352,976 1,352,976 0 0.0%
Sema.NumLazyGenericEnvironments 8,499,681 8,499,681 0 0.0%
Sema.NumLazyGenericEnvironmentsLoaded 761,091 761,091 0 0.0%
Sema.NumLazyIterableDeclContexts 6,455,026 6,455,026 0 0.0%
Sema.NumTypesDeserialized 43,954,533 43,954,533 0 0.0%
Sema.NumTypesValidated 3,969,791 3,969,791 0 0.0%

Debug-opt

debug-opt brief

Regressed (0)
name old new delta delta_pct
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (2)
name old new delta delta_pct
LLVM.NumLLVMBytesOutput 818,546,496 818,543,045 -3,451 -0.0%
time.swift-driver.wall 2172.8s 2173.5s 677.1ms 0.03%

debug-opt detailed

Regressed (0)
name old new delta delta_pct
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (23)
name old new delta delta_pct
AST.NumImportedExternalDefinitions 1,424,654 1,424,654 0 0.0%
AST.NumLoadedModules 271,814 271,814 0 0.0%
AST.NumTotalClangImportedEntities 4,747,698 4,747,698 0 0.0%
AST.NumUsedConformances 128,078 128,078 0 0.0%
IRModule.NumIRBasicBlocks 2,458,649 2,458,639 -10 -0.0%
IRModule.NumIRFunctions 993,044 993,045 1 0.0%
IRModule.NumIRGlobals 1,083,359 1,083,359 0 0.0%
IRModule.NumIRInsts 20,691,078 20,690,925 -153 -0.0%
IRModule.NumIRValueSymbols 1,791,981 1,791,982 1 0.0%
LLVM.NumLLVMBytesOutput 818,546,496 818,543,045 -3,451 -0.0%
SILModule.NumSILGenFunctions 603,650 603,650 0 0.0%
SILModule.NumSILOptFunctions 1,691,111 1,691,111 0 0.0%
Sema.NumConformancesDeserialized 9,643,353 9,643,353 0 0.0%
Sema.NumConstraintScopes 12,024,297 12,024,297 0 0.0%
Sema.NumDeclsDeserialized 46,537,988 46,537,988 0 0.0%
Sema.NumDeclsValidated 1,727,588 1,727,588 0 0.0%
Sema.NumFunctionsTypechecked 851,990 851,990 0 0.0%
Sema.NumGenericSignatureBuilders 1,389,681 1,389,681 0 0.0%
Sema.NumLazyGenericEnvironments 9,306,214 9,306,214 0 0.0%
Sema.NumLazyGenericEnvironmentsLoaded 773,431 773,431 0 0.0%
Sema.NumLazyIterableDeclContexts 6,688,091 6,688,091 0 0.0%
Sema.NumTypesDeserialized 50,471,660 50,471,660 0 0.0%
Sema.NumTypesValidated 3,969,791 3,969,791 0 0.0%

Wmo-onone

wmo-onone brief

Regressed (0)
name old new delta delta_pct
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (2)
name old new delta delta_pct
LLVM.NumLLVMBytesOutput 781,476,349 781,476,230 -119 -0.0%
time.swift-driver.wall 1171.7s 1169.3s -2.4s -0.21%

wmo-onone detailed

Regressed (0)
name old new delta delta_pct
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (23)
name old new delta delta_pct
AST.NumImportedExternalDefinitions 163,851 163,851 0 0.0%
AST.NumLoadedModules 9,283 9,283 0 0.0%
AST.NumTotalClangImportedEntities 537,468 537,468 0 0.0%
AST.NumUsedConformances 130,614 130,614 0 0.0%
IRModule.NumIRBasicBlocks 2,320,392 2,320,392 0 0.0%
IRModule.NumIRFunctions 1,135,391 1,135,391 0 0.0%
IRModule.NumIRGlobals 1,064,910 1,064,910 0 0.0%
IRModule.NumIRInsts 25,835,176 25,835,176 0 0.0%
IRModule.NumIRValueSymbols 1,897,516 1,897,516 0 0.0%
LLVM.NumLLVMBytesOutput 781,476,349 781,476,230 -119 -0.0%
SILModule.NumSILGenFunctions 425,759 425,759 0 0.0%
SILModule.NumSILOptFunctions 507,667 507,667 0 0.0%
Sema.NumConformancesDeserialized 1,108,715 1,108,715 0 0.0%
Sema.NumConstraintScopes 11,411,973 11,411,973 0 0.0%
Sema.NumDeclsDeserialized 3,866,813 3,866,813 0 0.0%
Sema.NumDeclsValidated 779,383 779,383 0 0.0%
Sema.NumFunctionsTypechecked 250,635 250,635 0 0.0%
Sema.NumGenericSignatureBuilders 131,583 131,583 0 0.0%
Sema.NumLazyGenericEnvironments 679,280 679,280 0 0.0%
Sema.NumLazyGenericEnvironmentsLoaded 81,928 81,928 0 0.0%
Sema.NumLazyIterableDeclContexts 420,212 420,212 0 0.0%
Sema.NumTypesDeserialized 3,982,141 3,982,141 0 0.0%
Sema.NumTypesValidated 882,641 882,641 0 0.0%

Release

release brief

Regressed (0)
name old new delta delta_pct
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (2)
name old new delta delta_pct
LLVM.NumLLVMBytesOutput 849,245,852 849,245,809 -43 -0.0%
time.swift-driver.wall 2530.6s 2532.1s 1.5s 0.06%

release detailed

Regressed (0)
name old new delta delta_pct
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (23)
name old new delta delta_pct
AST.NumImportedExternalDefinitions 449,142 449,142 0 0.0%
AST.NumLoadedModules 56,869 56,869 0 0.0%
AST.NumTotalClangImportedEntities 1,522,084 1,522,084 0 0.0%
AST.NumUsedConformances 133,846 133,846 0 0.0%
IRModule.NumIRBasicBlocks 2,430,659 2,430,659 0 0.0%
IRModule.NumIRFunctions 1,014,726 1,014,726 0 0.0%
IRModule.NumIRGlobals 1,161,234 1,161,234 0 0.0%
IRModule.NumIRInsts 21,376,971 21,376,971 0 0.0%
IRModule.NumIRValueSymbols 1,876,564 1,876,564 0 0.0%
LLVM.NumLLVMBytesOutput 849,245,852 849,245,809 -43 -0.0%
SILModule.NumSILGenFunctions 463,530 463,530 0 0.0%
SILModule.NumSILOptFunctions 904,573 904,573 0 0.0%
Sema.NumConformancesDeserialized 3,546,276 3,546,276 0 0.0%
Sema.NumConstraintScopes 11,708,225 11,708,225 0 0.0%
Sema.NumDeclsDeserialized 12,789,325 12,789,325 0 0.0%
Sema.NumDeclsValidated 992,139 992,139 0 0.0%
Sema.NumFunctionsTypechecked 384,327 384,327 0 0.0%
Sema.NumGenericSignatureBuilders 443,995 443,995 0 0.0%
Sema.NumLazyGenericEnvironments 2,474,757 2,474,757 0 0.0%
Sema.NumLazyGenericEnvironmentsLoaded 229,630 229,630 0 0.0%
Sema.NumLazyIterableDeclContexts 1,757,612 1,757,612 0 0.0%
Sema.NumTypesDeserialized 14,313,405 14,313,405 0 0.0%
Sema.NumTypesValidated 1,857,832 1,857,832 0 0.0%

@rudkx
Copy link
Contributor

rudkx commented Dec 14, 2017

@CodaFi Were you still planning on opening a 4.1 PR?

@CodaFi
Copy link
Contributor Author

CodaFi commented Dec 14, 2017

@rudkx Done! #13438

@rudkx
Copy link
Contributor

rudkx commented Dec 14, 2017

Thanks!

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

Successfully merging this pull request may close these issues.

5 participants