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