rust/compiler/rustc_query_system/src
bors f5adff6bd8 Auto merge of #109611 - Zoxc:query-engine-rem, r=cjgillot
Remove `QueryEngine` trait

This removes the `QueryEngine` trait and `Queries` from `rustc_query_impl` and replaced them with function pointers and fields in `QuerySystem`. As a side effect `OnDiskCache` is moved back into `rustc_middle` and the `OnDiskCache` trait is also removed.

This has a couple of benefits.
- `TyCtxt` is used in the query system instead of the removed `QueryCtxt` which is larger.
- Function pointers are more flexible to work with. A variant of https://github.com/rust-lang/rust/pull/107802 is included which avoids the double indirection. For https://github.com/rust-lang/rust/pull/108938 we can name entry point `__rust_end_short_backtrace` to avoid some overhead. For https://github.com/rust-lang/rust/pull/108062 it avoids the duplicate `QueryEngine` structs.
- `QueryContext` now implements `DepContext` which avoids many `dep_context()` calls in `rustc_query_system`.
- The `rustc_driver` size is reduced by 0.33%, hopefully that means some bootstrap improvements.
- This avoids the unsafe code around the `QueryEngine` trait.

r? `@cjgillot`
2023-04-29 21:58:13 +00:00
..
dep_graph Rollup merge of #110886 - nnethercote:dep-graph-cleanups, r=cjgillot 2023-04-27 21:34:17 +02:00
ich Remove some unnecessary hash truncations 2023-04-16 20:05:02 -04:00
query Add query accessor functions 2023-04-26 07:46:14 +02:00
cache.rs Remove a fishy Clone impl 2023-04-04 09:01:44 +00:00
error.rs Always evaluate vecs of subdiagnostics eagerly 2022-12-04 01:13:21 +01:00
lib.rs Add rustc_fluent_macro to decouple fluent from rustc_macros 2023-04-18 18:56:22 +00:00
values.rs Use DepKind instead of &str 2022-12-23 18:39:49 +05:30