swift
[CSSolver] Implementation of disjunction choice favoring algorithm
#63585
Merged

[CSSolver] Implementation of disjunction choice favoring algorithm #63585

xedin merged 60 commits into swiftlang:main from xedin:solver-perf
xedin
xedin xedin force pushed 2 years ago
xedin
xedin xedin force pushed 2 years ago
xedin xedin force pushed 2 years ago
xedin
xedin
xedin xedin force pushed 2 years ago
xedin
xedin
xedin
xedin
xedin xedin force pushed 2 years ago
xedin xedin changed the title [CSSolver] Initial implementation of disjunction choice favoring algorithm [CSSolver] implementation of disjunction choice favoring algorithm 2 years ago
xedin xedin changed the title [CSSolver] implementation of disjunction choice favoring algorithm [CSSolver] Implementation of disjunction choice favoring algorithm 2 years ago
xedin
xedin xedin force pushed 2 years ago
xedin
xedin xedin force pushed 2 years ago
xedin
xedin
xedin
xedin
xedin xedin force pushed 2 years ago
xedin
xedin
xedin xedin force pushed 2 years ago
xedin
xedin
xedin
xedin xedin force pushed 2 years ago
xedin
xedin
xedin
xedin xedin force pushed 2 years ago
xedin xedin force pushed 2 years ago
xedin
xedin xedin force pushed 2 years ago
glessard
xedin xedin force pushed 2 years ago
xedin
xedin xedin force pushed 2 years ago
xedin
xedin xedin force pushed 2 years ago
xedin
xedin
xedin
xedin
xedin xedin force pushed 2 years ago
xedin xedin force pushed 2 years ago
xedin
xedin xedin force pushed 2 years ago
xedin
xedin xedin force pushed 2 years ago
xedin
xedin xedin force pushed 1 year ago
xedin
xedin xedin force pushed 1 year ago
xedin xedin force pushed 1 year ago
xedin
xedin xedin force pushed 1 year ago
xedin xedin force pushed 1 year ago
xedin
xedin xedin force pushed 1 year ago
xedin
xedin xedin force pushed 1 year ago
xedin
xedin
xedin xedin force pushed 1 year ago
xedin
xedin xedin force pushed 1 year ago
xedin
xedin
xedin
xedin
xedin
xedin xedin force pushed 1 year ago
xedin
xedin
xedin
xedin
xedin
xedin
xedin xedin force pushed 1 year ago
xedin
xedin
xedin xedin force pushed 1 year ago
xedin
xedin
xedin xedin force pushed 1 year ago
xedin xedin force pushed 1 year ago
xedin xedin force pushed 1 year ago
xedin xedin force pushed 1 year ago
xedin
xedin
xedin xedin force pushed 1 year ago
xedin
xedin xedin force pushed 1 year ago
xedin xedin force pushed 1 year ago
xedin
xedin
xedin xedin force pushed 1 year ago
xedin
xedin xedin force pushed 1 year ago
xedin
xedin
xwu
xwu commented on 2024-11-27
xedin
xedin
xedin
xedin xedin force pushed 1 year ago
xedin xedin force pushed 1 year ago
xedin
xedin
xedin
xedin
xedin
xedin
xedin
xedin xedin force pushed 1 year ago
xedin
xedin xedin force pushed 1 year ago
xedin
xedin
xedin xedin force pushed 1 year ago
xedin
xedin
xedin
xedin
xedin xedin force pushed 1 year ago
xedin
xedin [ConstraintSystem] Remove `shrink`
757ca24e
xedin [CSGen] Remove ConstraintOptimizer and all favoring logic
4432c51f
xedin [ConstraintSystem] Add skeleton of constraint optimizer
b5f08a40
xedin [CSOptimizer] Initial implementation of disjunction choice favoring a…
672ae3d2
xedin [CSOptimizer] Favor SIMD related arithmetic operator choices if argum…
c2f7451c
xedin [CSOptimizer] Keep track of mismatches while evaluating candidates
a094c3eb
xedin [CSStep] Don't favor choices until the disjunction is picked
e404ed72
xedin [CSOptimizer] Make sure that all parameters without arguments are def…
7c1c46d4
xedin [CSOptimizer] Allow generic operator overloads without associated typ…
bc5f70a9
xedin [CSOptimizer] Don't attempt to optimize calls with code completion to…
14e2a16f
xedin [CSOptimizer] Use `matchCallArguments` to establish argument-to-param…
cb1cb201
xedin [CSOptimizer] Relax candidate type requirements from equality to set …
11b897b3
xedin [CSStep] Remove disjunction pruning logic from DisjunctionStep
2c44e379
xedin [CSOptimizer] Treat all type parameters equally
957a5f42
xedin [CSOptimizer] NFC: Adjust conformance check to use `ConstraintSystem:…
da65333d
xedin [CSOptimizer] NFC: Switch to llvm::Optional
0fc68069
xedin [CSOptimizer] Increase score when type matches opaque type
2869dff9
xedin [CSOptimizer] NFC: Switch from llvm::Optional to std::optional post-r…
c429f5b9
xedin [CSOptimizer] Remove an outdated optimization to compare resolved arg…
1760bd1f
xedin [CSOptimizer] Prefer homogeneous arithmetic operator overloads when a…
d69b6a05
xedin [Tests] NFC: Add a test-case for rdar://133340307 which is now fast
670127ab
xedin [CSOptimizer] Emulate old behavior related to favoring of unary calls…
527de22b
xedin [CSOptimizer] Let `determineBestChoicesInContext` return the best dis…
cf05405e
xedin [CSOptimizer] Record best scores for each disjunction and use them in…
3819ddfb
xedin [CSOptimizer] attempt to rank only standard/simd operators and fully …
deca9b61
xedin [CSOptimizer] Don't optimize (implicit) calls with code completion ar…
8a918e23
xedin [Tests] NFC: Adjust a couple of improved tests
66981364
xedin [CSOptimizer] Average score should reflect number of defaulted parame…
23589add
xedin [Tests] NFC: Add more test-cases that were previously solved due to o…
d0ff6c81
xedin [CSOptimizer] Rank results of operators regardless of whether anythin…
3996b25f
xedin [CSOptimizer] Rank disjunctions based on score only if both sides are…
8818d399
xedin [CSOptimizer] Enable ranking of `Int*`, `Float{80}` and `Double` init…
6fb6d1cf
xedin [CSOptimizer] Score all of the overload choices matching on literals …
59109c2d
xedin [CSOptimizer] Infer argument candidates from calls to `Double` and CG…
f2a6677a
xedin [ConstraintSystem] Narrowly disable `tryOptimizeGenericDisjunction` w…
8d5cb112
xedin [CSOptimizer] Desugar types before checking for equality
802f5cd1
xedin [CSOptimizer] Restore old hack behavior which used to favor overloads…
a3a3ec4f
xedin [CSOptimizer] A more comprehensive generic overload checking when can…
e30587bd
xedin [CSOptimizer] Fix Double<->CGFloat implicit conversion support when a…
6caf1ccb
xedin [CSOptimizer] Adjust `scoreCandidateMatch` to indicate when match can…
9b62c84a
xedin [CSOptimizer] Allow literal arguments to match parameters that confor…
2fdd4b6c
xedin [CSGen] NFC: Remove obsolete `ConstraintSystem::{get, set}FavoredType`
8bd28844
xedin [Tests] NFC: Move simd related test-case from `slow` to `fast`
28396a6d
xedin [Tests] NFC: Update a couple of type-checker tests
ff8663ff
xedin [CSOptimizer] Limit "old" behavior compatibility to unlabeled unary a…
9fb73143
xedin [CSOptimizer] Fix `selectDisjunction` to use favored choices even if …
c2a55886
xedin [CSOptimizer] Make a light-weight generic overload check if some requ…
15c773b9
xedin [CSOptimizer] Mark compiler synthesized disjunctions as optimized
867e6418
xedin [CSOptimizer] Add support for chained members without arguments
87cd5f87
xedin [CSBindings] Prevent `BindingSet::isViable` from dropping viable bind…
b7e74930
xedin [CSSimplify] CGFloat-Double: Rank narrowing correctly when result is …
cb876cbd
xedin [CSOptimizer] Allow only widening CGFloat->Double conversions while m…
bf8ae3bc
xedin [CSOptimizer] Implement special prioritization rules for result build…
56d6635e
xedin [CSBindings] Don't attempt to strip optional for closure result types
40a41c82
xedin [CSOptimizer] Reduce overload types before ranking
95b47aea
xedin [ConstraintSystem] Fix `getEffectiveOverloadType` handling of `mutati…
c767f7af
xedin [TypeCheckEffects] Downgrade missing `await` to a warning for initial…
f7d81d52
xedin [CSOptimizer] Simplify handling of non-applied disjunctions
43ca7dff
xedin [CSOptimizer] Mark bitwise operators as supported
860ae08d
xedin [CSOptimizer] Disable CGFloat -> Double conversion for unary operators
bc3a15fb
xedin xedin force pushed to bc3a15fb 1 year ago
xedin xedin marked this pull request as ready for review 1 year ago
xedin xedin requested a review 1 year ago
xedin xedin requested a review from hborla hborla 1 year ago
xedin xedin requested a review from slavapestov slavapestov 1 year ago
xedin xedin requested a review from ahoppen ahoppen 1 year ago
xedin xedin requested a review from bnbarham bnbarham 1 year ago
xedin xedin requested a review from hamishknight hamishknight 1 year ago
xedin xedin requested a review from rintaro rintaro 1 year ago
xedin
xedin
xedin xedin merged 19350d97 into main 1 year ago

Login to write a write a comment.

Login via GitHub

Assignees
No one assigned
Labels
Milestone