Make an optimal cold path for query_cache_hit
This commit is contained in:
parent
e60ccfc6a9
commit
9539737008
4 changed files with 28 additions and 32 deletions
|
@ -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())
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue