about summary refs log tree commit diff
path: root/library/std/src
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2022-09-13 15:33:06 +0000
committerbors <bors@rust-lang.org>2022-09-13 15:33:06 +0000
commit1ce51982b8550c782ded466c1abff0d2b2e21c4e (patch)
tree597e3ad33ce315008a6a4579da540eb46ef39ab7 /library/std/src
parent5338f5f1d4ad9c99706e5cb691f8d5bbac341262 (diff)
parentbec079d1a9fe1a9163a0143ff9e1281b4eb09ec9 (diff)
downloadrust-1ce51982b8550c782ded466c1abff0d2b2e21c4e.tar.gz
rust-1ce51982b8550c782ded466c1abff0d2b2e21c4e.zip
Auto merge of #101615 - compiler-errors:rpitit-perf, r=oli-obk
Make `compare_predicate_entailment` no longer a query

Make `compare_predicate_entailment` so it's no longer a query (again), and splits out the new logic (that equates the return types to infer RPITITs) into its own query. This means that this new query (now called `collect_trait_impl_trait_tys`) is no longer executed for non-RPITIT cases.

This should improve perf (https://github.com/rust-lang/rust/pull/101224#issuecomment-1241682203), though in practice we see that these some crates remain from the primary regressions list on the original report... They are all <= 0.43% regression and seemingly only on the incr-full scenario for all of them.

I am at a loss for what might be causing this regression other than what I fixed here, since we don't introduce much new non-RPITIT logic except for some `def_kind` query calls in some places, for example, like projection. Maybe that's it?

----

Originally this PR was opened to test enabling `cache_on_disk` (62164aaaa11) but that didn't turn out to be very useful (https://github.com/rust-lang/rust/pull/101615#issuecomment-1242403205), so that led me to just split the query (and rename the PR).
Diffstat (limited to 'library/std/src')
0 files changed, 0 insertions, 0 deletions