Remove try_mark_green_and_read.

This commit is contained in:
Camille GILLOT 2021-05-30 10:48:48 +02:00
parent c3bf3969d4
commit 45d6decc19
2 changed files with 8 additions and 16 deletions

View File

@ -499,22 +499,11 @@ impl<K: DepKind> DepGraph<K> {
None
}
/// Try to read a node index for the node dep_node.
/// Try to mark a node index for the node dep_node.
///
/// A node will have an index, when it's already been marked green, or when we can mark it
/// green. This function will mark the current task as a reader of the specified node, when
/// a node index can be found for that node.
pub fn try_mark_green_and_read<Ctxt: QueryContext<DepKind = K>>(
&self,
tcx: Ctxt,
dep_node: &DepNode<K>,
) -> Option<(SerializedDepNodeIndex, DepNodeIndex)> {
self.try_mark_green(tcx, dep_node).map(|(prev_index, dep_node_index)| {
debug_assert!(self.is_green(&dep_node));
self.read_index(dep_node_index);
(prev_index, dep_node_index)
})
}
pub fn try_mark_green<Ctxt: QueryContext<DepKind = K>>(
&self,
tcx: Ctxt,

View File

@ -523,7 +523,8 @@ where
// We must ensure that this is handled correctly.
let (prev_dep_node_index, dep_node_index) =
tcx.dep_context().dep_graph().try_mark_green_and_read(tcx, &dep_node)?;
tcx.dep_context().dep_graph().try_mark_green(tcx, &dep_node)?;
tcx.dep_context().dep_graph().read_index(dep_node_index);
debug_assert!(tcx.dep_context().dep_graph().is_green(dep_node));
@ -725,9 +726,10 @@ where
let dep_node = query.to_dep_node(*tcx.dep_context(), key);
match tcx.dep_context().dep_graph().try_mark_green_and_read(tcx, &dep_node) {
let dep_graph = tcx.dep_context().dep_graph();
match dep_graph.try_mark_green(tcx, &dep_node) {
None => {
// A None return from `try_mark_green_and_read` means that this is either
// A None return from `try_mark_green` means that this is either
// a new dep node or that the dep node has already been marked red.
// Either way, we can't call `dep_graph.read()` as we don't have the
// DepNodeIndex. We must invoke the query itself. The performance cost
@ -736,6 +738,7 @@ where
true
}
Some((_, dep_node_index)) => {
dep_graph.read_index(dep_node_index);
tcx.dep_context().profiler().query_cache_hit(dep_node_index.into());
false
}