about summary refs log tree commit diff
path: root/compiler/rustc_middle/src/query/mod.rs
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 /compiler/rustc_middle/src/query/mod.rs
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 'compiler/rustc_middle/src/query/mod.rs')
-rw-r--r--compiler/rustc_middle/src/query/mod.rs2
1 files changed, 1 insertions, 1 deletions
diff --git a/compiler/rustc_middle/src/query/mod.rs b/compiler/rustc_middle/src/query/mod.rs
index f72e7389fc6..aaceec98b1a 100644
--- a/compiler/rustc_middle/src/query/mod.rs
+++ b/compiler/rustc_middle/src/query/mod.rs
@@ -161,7 +161,7 @@ rustc_queries! {
         separate_provide_extern
     }
 
-    query compare_predicates_and_trait_impl_trait_tys(key: DefId)
+    query collect_trait_impl_trait_tys(key: DefId)
         -> Result<&'tcx FxHashMap<DefId, Ty<'tcx>>, ErrorGuaranteed>
     {
         desc { "better description please" }