self.data.as_ref().and_then(|t| t.dep_node_debug.borrow().get(&dep_node).cloned())
}
+ pub fn edge_deduplication_data(&self) -> (u64, u64) {
+ let current_dep_graph = self.data.as_ref().unwrap().current.borrow();
+
+ (current_dep_graph.total_read_count, current_dep_graph.total_duplicate_read_count)
+ }
+
pub fn serialize(&self) -> SerializedDepGraph {
let fingerprints = self.fingerprints.borrow();
let current_dep_graph = self.data.as_ref().unwrap().current.borrow();
// each anon node. The session-key is just a random number generated when
// the DepGraph is created.
anon_id_seed: Fingerprint,
+
+ total_read_count: u64,
+ total_duplicate_read_count: u64,
}
impl CurrentDepGraph {
anon_id_seed: stable_hasher.finish(),
task_stack: Vec::new(),
forbidden_edge,
+ total_read_count: 0,
+ total_duplicate_read_count: 0,
}
}
ref mut read_set,
node: ref target,
}) => {
+ self.total_read_count += 1;
if read_set.insert(source) {
reads.push(source);
}
}
}
+ } else {
+ self.total_duplicate_read_count += 1;
}
}
Some(&mut OpenTask::Anon {
let total_node_count = serialized_graph.nodes.len();
let total_edge_count = serialized_graph.edge_list_data.len();
+ let (total_edge_reads, total_duplicate_edge_reads) = tcx.dep_graph.edge_deduplication_data();
let mut counts: FxHashMap<_, Stat> = FxHashMap();
println!("[incremental]");
println!("[incremental] Total Node Count: {}", total_node_count);
println!("[incremental] Total Edge Count: {}", total_edge_count);
+ println!("[incremental] Total Edge Reads: {}", total_edge_reads);
+ println!("[incremental] Total Duplicate Edge Reads: {}", total_duplicate_edge_reads);
println!("[incremental]");
println!("[incremental] {:<36}| {:<17}| {:<12}| {:<17}|",
"Node Kind",