Commit 725bd91
authored
[ConstraintSystem] Revert new disjunction favoring algorithm (#79128)
* Revert "[CSOptimizer] Look through `OptionalEvaluationExpr`s when dealing with unapplied disjunctions"
This reverts commit 72340f3.
* Revert "[CSOptimizer] Don't consider disabled overloads when checking whether disjunction is supported"
This reverts commit 6bc23b5.
* Revert "[CSOptimizer] Disjunctions with IUO overload choices are unsupported"
This reverts commit 471ee21.
* Revert "[CSOptimizer] MemberImportVisibility: Don't consider overloads that come from implicit imports"
This reverts commit aa4a2b9.
* Revert "[CSOptimizer] Don't consider CGFloat widening when explicit initializer is used"
This reverts commit 3cc76ea.
* Revert "[CSOptimizer] Literal arguments should cause score reset only for operators"
This reverts commit e3987be.
* Revert "[CSOptimizer] NFC: check whether a choice is of operator instead of whole disjunction"
This reverts commit 6c82892.
* Revert "[CSOptimizer/Tests] NFC: Add a perf test-case fixed by improved literal array handling"
This reverts commit cfd34e5.
* Revert "[CSOptimizer] Extend candidate/parameter matching to support array literals"
This reverts commit 8a304f8.
* Revert "[CSOptimizer] Favor choices that don't require application"
This reverts commit 0737542.
* Revert "[CSOptimizer] Disable CGFloat -> Double conversion for unary operators"
This reverts commit bc3a15f.
* Revert "[CSOptimizer] Mark bitwise operators as supported"
This reverts commit 860ae08.
* Revert "[CSOptimizer] Simplify handling of non-applied disjunctions"
This reverts commit 43ca7df.
* Revert "[ConstraintSystem] Fix `getEffectiveOverloadType` handling of `mutating` methods"
This reverts commit c767f7a.
* Revert "[CSOptimizer] Reduce overload types before ranking"
This reverts commit 95b47ae.
* Revert "[CSOptimizer] Implement special prioritization rules for result builder contexts"
This reverts commit 56d6635.
* Revert "[CSOptimizer] Allow only widening CGFloat->Double conversions while matching candidate arguments"
This reverts commit bf8ae3b.
* Revert "[CSSimplify] CGFloat-Double: Rank narrowing correctly when result is injected into an optional"
This reverts commit cb876cb.
* Revert "[CSBindings] Prevent `BindingSet::isViable` from dropping viable bindings (v2)"
This reverts commit b7e7493.
* Revert "[CSOptimizer] Add support for chained members without arguments"
This reverts commit 87cd5f8.
* Revert "[CSOptimizer] Mark compiler synthesized disjunctions as optimized"
This reverts commit 867e641.
* Revert "[CSOptimizer] Make a light-weight generic overload check if some requirements are unsatisfiable"
This reverts commit 15c773b.
* Revert "[CSOptimizer] Fix `selectDisjunction` to use favored choices even if disjunction was not optimized"
This reverts commit c2a5588.
* Revert "[CSOptimizer] Limit "old" behavior compatibility to unlabeled unary arguments"
This reverts commit 9fb7314.
* Revert "[Tests] NFC: Update a couple of type-checker tests"
This reverts commit ff8663f.
* Revert "[Tests] NFC: Move simd related test-case from `slow` to `fast`"
This reverts commit 28396a6.
* Revert "[CSGen] NFC: Remove obsolete `ConstraintSystem::{get, set}FavoredType`"
This reverts commit 8bd2884.
* Revert "[CSOptimizer] Allow literal arguments to match parameters that conform to `ExpressibleBy{Integer, Float}Literal`"
This reverts commit 2fdd4b6.
* Revert "[CSOptimizer] Adjust `scoreCandidateMatch` to indicate when match cannot be decided"
This reverts commit 9b62c84.
* Revert "[CSOptimizer] Fix Double<->CGFloat implicit conversion support when arguments are literals"
This reverts commit 6caf1cc.
* Revert "[CSOptimizer] A more comprehensive generic overload checking when candidates are fully resolved"
This reverts commit e30587b.
* Revert "[CSOptimizer] Restore old hack behavior which used to favor overloads based on arity matches"
This reverts commit a3a3ec4.
* Revert "[CSOptimizer] Desugar types before checking for equality"
This reverts commit 802f5cd.
* Revert "[ConstraintSystem] Narrowly disable `tryOptimizeGenericDisjunction` when some of the arguments are number literals"
This reverts commit 8d5cb11.
* Revert "[CSOptimizer] Infer argument candidates from calls to `Double` and CGFloat constructors"
This reverts commit f2a6677.
* Revert "[CSOptimizer] Score all of the overload choices matching on literals uniformly"
This reverts commit 59109c2.
* Revert "[CSOptimizer] Enable ranking of `Int*`, `Float{80}` and `Double` initializers"
This reverts commit 6fb6d1c.
* Revert "[CSOptimizer] Rank disjunctions based on score only if both sides are supported"
This reverts commit 8818d39.
* Revert "[CSOptimizer] Rank results of operators regardless of whether anything is known about parameters"
This reverts commit 3996b25.
* Revert "[Tests] NFC: Add more test-cases that were previously solved due to old hacks behavior"
This reverts commit d0ff6c8.
* Revert "[CSOptimizer] Average score should reflect number of defaulted parameters"
This reverts commit 23589ad.
* Revert "[Tests] NFC: Adjust a couple of improved tests"
This reverts commit 6698136.
* Revert "[CSOptimizer] Don't optimize (implicit) calls with code completion arguments"
This reverts commit 8a918e2.
* Revert "[CSOptimizer] attempt to rank only standard/simd operators and fully concrete overload sets"
This reverts commit deca9b6.
* Revert "[CSOptimizer] Record best scores for each disjunction and use them in `selectDisjunction`"
This reverts commit 3819ddf.
* Revert "[CSOptimizer] Let `determineBestChoicesInContext` return the best disjunction if one is available"
This reverts commit cf05405.
* Revert "[CSOptimizer] Emulate old behavior related to favoring of unary calls to members"
This reverts commit 527de22.
* Revert "[Tests] NFC: Add a test-case for rdar://133340307 which is now fast"
This reverts commit 670127a.
* Revert "[CSOptimizer] Prefer homogeneous arithmetic operator overloads when argument(s) or result match"
This reverts commit d69b6a0.
* Revert "[CSOptimizer] Remove an outdated optimization to compare resolved argument types with all else equal"
This reverts commit 1760bd1.
* Revert "[CSOptimizer] NFC: Switch from llvm::Optional to std::optional post-rebase"
This reverts commit c429f5b.
* Revert "[CSOptimizer] Increase score when type matches opaque type"
This reverts commit 2869dff.
* Revert "[CSOptimizer] NFC: Switch to llvm::Optional"
This reverts commit 0fc6806.
* Revert "[CSOptimizer] NFC: Adjust conformance check to use `ConstraintSystem::lookupConformance`"
This reverts commit da65333.
* Revert "[CSOptimizer] Treat all type parameters equally"
This reverts commit 957a5f4.
* Revert "[CSStep] Remove disjunction pruning logic from DisjunctionStep"
This reverts commit 2c44e37.
* Revert "[CSOptimizer] Relax candidate type requirements from equality to set of no-impact conversions"
This reverts commit 11b897b.
* Revert "[CSOptimizer] Use `matchCallArguments` to establish argument-to-parameter relationships"
This reverts commit cb1cb20.
* Revert "[CSOptimizer] Don't attempt to optimize calls with code completion token(s) in argument position"
This reverts commit 14e2a16.
* Revert "[CSOptimizer] Allow generic operator overloads without associated type parameters"
This reverts commit bc5f70a.
* Revert "[CSOptimizer] Make sure that all parameters without arguments are defaulted"
This reverts commit 7c1c46d.
* Revert "[CSStep] Don't favor choices until the disjunction is picked"
This reverts commit e404ed7.
* Revert "[CSOptimizer] Keep track of mismatches while evaluating candidates"
This reverts commit a094c3e.
* Revert "[CSOptimizer] Favor SIMD related arithmetic operator choices if argument is SIMD<N> type"
This reverts commit c2f7451.
* Revert "[CSOptimizer] Initial implementation of disjunction choice favoring algorithm"
This reverts commit 672ae3d.
* Revert "[ConstraintSystem] Add skeleton of constraint optimizer"
This reverts commit b5f08a4.
* Revert "[CSGen] Remove ConstraintOptimizer and all favoring logic"
This reverts commit 4432c51.
* Revert "[ConstraintSystem] Remove `shrink`"
This reverts commit 757ca24.
* [TypeChecker] NFC: Remove resurrected use of `SolverShrinkUnsolvedThreshold`
* [TypeChecker] Bring back `SolverDisableShrink`
* [Tests] NFC: Mark tests affected by solver-perf revert as slow
* [Tests] NFC: Adjust async tests that are affected by performance hacks1 parent 48a4013 commit 725bd91
File tree
56 files changed
+1729
-2215
lines changed- include/swift
- Basic
- Option
- Sema
- lib
- Frontend
- Sema
- test
- Constraints
- IDE
- expr
- validation-test
- Sema
- type_checker_perf
- fast
- slow
- stdlib
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
56 files changed
+1729
-2215
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
905 | 905 | | |
906 | 906 | | |
907 | 907 | | |
| 908 | + | |
| 909 | + | |
| 910 | + | |
908 | 911 | | |
909 | 912 | | |
910 | 913 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
836 | 836 | | |
837 | 837 | | |
838 | 838 | | |
| 839 | + | |
| 840 | + | |
| 841 | + | |
| 842 | + | |
839 | 843 | | |
840 | 844 | | |
841 | 845 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
840 | 840 | | |
841 | 841 | | |
842 | 842 | | |
| 843 | + | |
| 844 | + | |
| 845 | + | |
| 846 | + | |
| 847 | + | |
843 | 848 | | |
844 | 849 | | |
845 | 850 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
488 | 488 | | |
489 | 489 | | |
490 | 490 | | |
491 | | - | |
492 | | - | |
493 | | - | |
494 | | - | |
495 | | - | |
496 | | - | |
497 | | - | |
498 | | - | |
499 | 491 | | |
500 | 492 | | |
501 | 493 | | |
| |||
2250 | 2242 | | |
2251 | 2243 | | |
2252 | 2244 | | |
| 2245 | + | |
| 2246 | + | |
| 2247 | + | |
| 2248 | + | |
2253 | 2249 | | |
2254 | 2250 | | |
2255 | 2251 | | |
| |||
2462 | 2458 | | |
2463 | 2459 | | |
2464 | 2460 | | |
| 2461 | + | |
| 2462 | + | |
| 2463 | + | |
| 2464 | + | |
| 2465 | + | |
| 2466 | + | |
| 2467 | + | |
| 2468 | + | |
| 2469 | + | |
| 2470 | + | |
| 2471 | + | |
| 2472 | + | |
| 2473 | + | |
| 2474 | + | |
| 2475 | + | |
| 2476 | + | |
| 2477 | + | |
| 2478 | + | |
| 2479 | + | |
| 2480 | + | |
| 2481 | + | |
| 2482 | + | |
| 2483 | + | |
| 2484 | + | |
| 2485 | + | |
| 2486 | + | |
| 2487 | + | |
| 2488 | + | |
| 2489 | + | |
| 2490 | + | |
| 2491 | + | |
| 2492 | + | |
| 2493 | + | |
| 2494 | + | |
| 2495 | + | |
| 2496 | + | |
| 2497 | + | |
| 2498 | + | |
| 2499 | + | |
| 2500 | + | |
| 2501 | + | |
| 2502 | + | |
| 2503 | + | |
| 2504 | + | |
| 2505 | + | |
| 2506 | + | |
| 2507 | + | |
| 2508 | + | |
| 2509 | + | |
| 2510 | + | |
| 2511 | + | |
| 2512 | + | |
| 2513 | + | |
| 2514 | + | |
| 2515 | + | |
| 2516 | + | |
| 2517 | + | |
| 2518 | + | |
| 2519 | + | |
| 2520 | + | |
| 2521 | + | |
| 2522 | + | |
| 2523 | + | |
| 2524 | + | |
| 2525 | + | |
| 2526 | + | |
| 2527 | + | |
| 2528 | + | |
2465 | 2529 | | |
2466 | 2530 | | |
2467 | 2531 | | |
| |||
2985 | 3049 | | |
2986 | 3050 | | |
2987 | 3051 | | |
| 3052 | + | |
| 3053 | + | |
| 3054 | + | |
| 3055 | + | |
| 3056 | + | |
| 3057 | + | |
| 3058 | + | |
| 3059 | + | |
| 3060 | + | |
2988 | 3061 | | |
2989 | 3062 | | |
2990 | 3063 | | |
| |||
5245 | 5318 | | |
5246 | 5319 | | |
5247 | 5320 | | |
| 5321 | + | |
| 5322 | + | |
| 5323 | + | |
| 5324 | + | |
| 5325 | + | |
| 5326 | + | |
| 5327 | + | |
| 5328 | + | |
| 5329 | + | |
5248 | 5330 | | |
5249 | 5331 | | |
5250 | | - | |
5251 | | - | |
5252 | | - | |
| 5332 | + | |
| 5333 | + | |
5253 | 5334 | | |
5254 | 5335 | | |
5255 | 5336 | | |
| |||
5438 | 5519 | | |
5439 | 5520 | | |
5440 | 5521 | | |
| 5522 | + | |
| 5523 | + | |
| 5524 | + | |
| 5525 | + | |
| 5526 | + | |
5441 | 5527 | | |
5442 | 5528 | | |
5443 | 5529 | | |
| |||
6178 | 6264 | | |
6179 | 6265 | | |
6180 | 6266 | | |
6181 | | - | |
6182 | | - | |
| 6267 | + | |
6183 | 6268 | | |
6184 | 6269 | | |
6185 | 6270 | | |
| |||
6189 | 6274 | | |
6190 | 6275 | | |
6191 | 6276 | | |
6192 | | - | |
6193 | | - | |
6194 | | - | |
6195 | | - | |
6196 | | - | |
6197 | 6277 | | |
6198 | 6278 | | |
6199 | 6279 | | |
| |||
6238 | 6318 | | |
6239 | 6319 | | |
6240 | 6320 | | |
6241 | | - | |
6242 | | - | |
6243 | | - | |
| 6321 | + | |
| 6322 | + | |
6244 | 6323 | | |
6245 | 6324 | | |
6246 | 6325 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1856 | 1856 | | |
1857 | 1857 | | |
1858 | 1858 | | |
| 1859 | + | |
| 1860 | + | |
| 1861 | + | |
1859 | 1862 | | |
1860 | 1863 | | |
1861 | 1864 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
16 | | - | |
17 | 16 | | |
18 | 17 | | |
19 | 18 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
| 34 | + | |
34 | 35 | | |
35 | 36 | | |
36 | 37 | | |
37 | 38 | | |
38 | 39 | | |
39 | 40 | | |
40 | 41 | | |
41 | | - | |
42 | | - | |
43 | | - | |
44 | | - | |
45 | | - | |
46 | | - | |
47 | 42 | | |
48 | 43 | | |
49 | 44 | | |
| |||
1338 | 1333 | | |
1339 | 1334 | | |
1340 | 1335 | | |
1341 | | - | |
1342 | | - | |
1343 | | - | |
1344 | | - | |
1345 | | - | |
1346 | | - | |
1347 | | - | |
1348 | | - | |
1349 | | - | |
1350 | | - | |
1351 | | - | |
1352 | | - | |
1353 | | - | |
1354 | | - | |
1355 | | - | |
1356 | | - | |
1357 | | - | |
1358 | | - | |
1359 | | - | |
1360 | | - | |
1361 | | - | |
1362 | | - | |
1363 | | - | |
1364 | | - | |
1365 | | - | |
| 1336 | + | |
1366 | 1337 | | |
1367 | 1338 | | |
1368 | 1339 | | |
| |||
0 commit comments