diff options
| author | bors <bors@rust-lang.org> | 2023-04-29 21:58:13 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2023-04-29 21:58:13 +0000 |
| commit | f5adff6bd8b29ac7dd173b36f0c8c35bb1c593c5 (patch) | |
| tree | 0af42fdb67cd5ee8e9100915fda59e84efec4029 /compiler/rustc_query_system/src | |
| parent | 87b1f891ea76713462cfc5a15137a8fe2b24ecc2 (diff) | |
| parent | b6943736bd37e0e932089c27dd0638f0a7ddc3fe (diff) | |
| download | rust-f5adff6bd8b29ac7dd173b36f0c8c35bb1c593c5.tar.gz rust-f5adff6bd8b29ac7dd173b36f0c8c35bb1c593c5.zip | |
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`
Diffstat (limited to 'compiler/rustc_query_system/src')
| -rw-r--r-- | compiler/rustc_query_system/src/query/plumbing.rs | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/compiler/rustc_query_system/src/query/plumbing.rs b/compiler/rustc_query_system/src/query/plumbing.rs index bce01debc53..3b17c665fb7 100644 --- a/compiler/rustc_query_system/src/query/plumbing.rs +++ b/compiler/rustc_query_system/src/query/plumbing.rs @@ -236,7 +236,7 @@ pub(crate) struct CycleError<D: DepKind> { /// It returns the shard index and a lock guard to the shard, /// which will be used if the query is not in the cache and we need /// to compute it. -#[inline] +#[inline(always)] pub fn try_get_cached<Tcx, C>(tcx: Tcx, cache: &C, key: &C::Key) -> Option<C::Value> where C: QueryCache, |
