diff options
| author | John Kåre Alsaker <john.kare.alsaker@gmail.com> | 2023-02-01 04:49:09 +0100 |
|---|---|---|
| committer | John Kåre Alsaker <john.kare.alsaker@gmail.com> | 2023-02-06 15:22:12 +0100 |
| commit | 9539737008852fffc3067dbfaa96a0ca0603b1b3 (patch) | |
| tree | f8fc839f564b28c252ddb3c31103d25925172001 /compiler/rustc_query_system/src | |
| parent | e60ccfc6a9e91a7b26f368c9fee40bd22831450f (diff) | |
| download | rust-9539737008852fffc3067dbfaa96a0ca0603b1b3.tar.gz rust-9539737008852fffc3067dbfaa96a0ca0603b1b3.zip | |
Make an optimal cold path for query_cache_hit
Diffstat (limited to 'compiler/rustc_query_system/src')
| -rw-r--r-- | compiler/rustc_query_system/src/dep_graph/graph.rs | 2 | ||||
| -rw-r--r-- | compiler/rustc_query_system/src/query/plumbing.rs | 16 |
2 files changed, 5 insertions, 13 deletions
diff --git a/compiler/rustc_query_system/src/dep_graph/graph.rs b/compiler/rustc_query_system/src/dep_graph/graph.rs index 47b2fd8f8f4..9443ded704d 100644 --- a/compiler/rustc_query_system/src/dep_graph/graph.rs +++ b/compiler/rustc_query_system/src/dep_graph/graph.rs @@ -47,7 +47,7 @@ impl DepNodeIndex { } impl From<DepNodeIndex> for QueryInvocationId { - #[inline] + #[inline(always)] fn from(dep_node_index: DepNodeIndex) -> Self { QueryInvocationId(dep_node_index.as_u32()) } diff --git a/compiler/rustc_query_system/src/query/plumbing.rs b/compiler/rustc_query_system/src/query/plumbing.rs index 2fde3c6075b..f59d71124ec 100644 --- a/compiler/rustc_query_system/src/query/plumbing.rs +++ b/compiler/rustc_query_system/src/query/plumbing.rs @@ -346,9 +346,7 @@ where { match cache.lookup(&key) { Some((value, index)) => { - if std::intrinsics::unlikely(tcx.profiler().enabled()) { - tcx.profiler().query_cache_hit(index.into()); - } + tcx.profiler().query_cache_hit(index.into()); tcx.dep_graph().read_index(index); Some(value) } @@ -408,9 +406,7 @@ where panic!("value must be in cache after waiting") }; - if std::intrinsics::unlikely(qcx.dep_context().profiler().enabled()) { - qcx.dep_context().profiler().query_cache_hit(index.into()); - } + qcx.dep_context().profiler().query_cache_hit(index.into()); query_blocked_prof_timer.finish_with_query_invocation_id(index.into()); (v, Some(index)) @@ -722,9 +718,7 @@ where } Some((_, dep_node_index)) => { dep_graph.read_index(dep_node_index); - if std::intrinsics::unlikely(qcx.dep_context().profiler().enabled()) { - qcx.dep_context().profiler().query_cache_hit(dep_node_index.into()); - } + qcx.dep_context().profiler().query_cache_hit(dep_node_index.into()); (false, None) } } @@ -778,9 +772,7 @@ where // Ensure that only one of them runs the query. let cache = Q::query_cache(qcx); if let Some((_, index)) = cache.lookup(&key) { - if std::intrinsics::unlikely(qcx.dep_context().profiler().enabled()) { - qcx.dep_context().profiler().query_cache_hit(index.into()); - } + qcx.dep_context().profiler().query_cache_hit(index.into()); return; } |
