Skip to content

Commit 2b7659c

Browse files
authored
Rollup merge of #144899 - Kobzol:cgu-reuse, r=saethlin
Print CGU reuse statistics in `-Zprint-mono-items` I'm trying to expose more information about incremental profiling from rustc (https://rust-lang.zulipchat.com/#narrow/channel/131828-t-compiler/topic/Profiling.2Fanalysis.20of.20incremental.20builds/with/531383501). One of the things that would be quite useful to expose is the CGU reuse state, so that when you do a rebuild, you can see all the CGUs (and all the functions) that had to be recompiled. Currently, we have (AFAIK) two ways of outputting monomorphization statistics: 1) `-Zdump-mono-stats` outputs statistics about number of instantiations and expected compilation cost of individual functions in the local crate being compiled. It can be outputted either as Markdown or JSON. 2) `-Zprint-mono-items` outputs a pair (item, CGU) for each monomorphized item. I was thinking about recording CGU statistics in the self-profile output, but I realized that as a simpler step, we could just add CGU reuse data to `-Zprint-mono-items`, as an additional output. That is what this PR does.
2 parents af33da3 + d857d54 commit 2b7659c

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

compiler/rustc_codegen_ssa/src/assert_module_sources.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,15 @@ pub fn assert_module_sources(tcx: TyCtxt<'_>, set_reuse: &dyn Fn(&mut CguReuseTr
6969

7070
set_reuse(&mut ams.cgu_reuse_tracker);
7171

72+
if tcx.sess.opts.unstable_opts.print_mono_items
73+
&& let Some(data) = &ams.cgu_reuse_tracker.data
74+
{
75+
data.actual_reuse.items().all(|(cgu, reuse)| {
76+
println!("CGU_REUSE {cgu} {reuse}");
77+
true
78+
});
79+
}
80+
7281
ams.cgu_reuse_tracker.check_expected_reuse(tcx.sess);
7382
});
7483
}

0 commit comments

Comments
 (0)