1
Fork 0

Also profile finishing the encoding.

This commit is contained in:
Camille GILLOT 2021-03-23 13:19:42 +01:00
parent df24315ddf
commit 8ee9322c10
3 changed files with 9 additions and 4 deletions

View file

@ -49,7 +49,7 @@ pub fn save_dep_graph(tcx: TyCtxt<'_>) {
}, },
move || { move || {
sess.time("incr_comp_persist_dep_graph", || { sess.time("incr_comp_persist_dep_graph", || {
if let Err(err) = tcx.dep_graph.encode() { if let Err(err) = tcx.dep_graph.encode(&tcx.sess.prof) {
sess.err(&format!( sess.err(&format!(
"failed to write dependency graph to `{}`: {}", "failed to write dependency graph to `{}`: {}",
staging_dep_graph_path.display(), staging_dep_graph_path.display(),

View file

@ -789,8 +789,12 @@ impl<K: DepKind> DepGraph<K> {
} }
} }
pub fn encode(&self) -> FileEncodeResult { pub fn encode(&self, profiler: &SelfProfilerRef) -> FileEncodeResult {
if let Some(data) = &self.data { data.current.encoder.steal().finish() } else { Ok(()) } if let Some(data) = &self.data {
data.current.encoder.steal().finish(profiler)
} else {
Ok(())
}
} }
fn next_virtual_depnode_index(&self) -> DepNodeIndex { fn next_virtual_depnode_index(&self) -> DepNodeIndex {

View file

@ -304,7 +304,8 @@ impl<K: DepKind + Encodable<FileEncoder>> GraphEncoder<K> {
self.status.lock().encode_node(&node, &self.record_graph) self.status.lock().encode_node(&node, &self.record_graph)
} }
pub fn finish(self) -> FileEncodeResult { pub fn finish(self, profiler: &SelfProfilerRef) -> FileEncodeResult {
let _prof_timer = profiler.generic_activity("incr_comp_encode_dep_graph");
self.status.into_inner().finish() self.status.into_inner().finish()
} }
} }