Skip to content

Commit

Permalink
Be consistent about deciding whether to print pass data.
Browse files Browse the repository at this point in the history
`print_time_passes_entry` unconditionally prints data about a pass. The
most commonly used call site, in `VerboseTimingGuard::drop`, guards it
with a `should_print_passes` test. But there are a couple of other call
sites that don't do that test.

This commit moves the `should_print_passes` test within
`print_time_passes_entry` so that all passes are treated equally.
  • Loading branch information
nnethercote committed Oct 6, 2022
1 parent 9110d92 commit 4e8faff
Showing 1 changed file with 21 additions and 19 deletions.
40 changes: 21 additions & 19 deletions compiler/rustc_data_structures/src/profiling.rs
Original file line number Diff line number Diff line change
Expand Up @@ -733,27 +733,9 @@ impl Drop for VerboseTimingGuard<'_> {
if let Some((start_time, start_rss, ref message)) = self.start_and_message {
let end_rss = get_resident_set_size();
let dur = start_time.elapsed();

if should_print_passes(dur, start_rss, end_rss) {
print_time_passes_entry(&message, dur, start_rss, end_rss);
}
}
}
}

fn should_print_passes(dur: Duration, start_rss: Option<usize>, end_rss: Option<usize>) -> bool {
if dur.as_millis() > 5 {
return true;
}

if let (Some(start_rss), Some(end_rss)) = (start_rss, end_rss) {
let change_rss = end_rss.abs_diff(start_rss);
if change_rss > 0 {
return true;
print_time_passes_entry(&message, dur, start_rss, end_rss);
}
}

false
}

pub fn print_time_passes_entry(
Expand All @@ -762,6 +744,26 @@ pub fn print_time_passes_entry(
start_rss: Option<usize>,
end_rss: Option<usize>,
) {
// Print the pass if its duration is greater than 5 ms, or it changed the
// measured RSS.
let is_notable = || {
if dur.as_millis() > 5 {
return true;
}

if let (Some(start_rss), Some(end_rss)) = (start_rss, end_rss) {
let change_rss = end_rss.abs_diff(start_rss);
if change_rss > 0 {
return true;
}
}

false
};
if !is_notable() {
return;
}

let rss_to_mb = |rss| (rss as f64 / 1_000_000.0).round() as usize;
let rss_change_to_mb = |rss| (rss as f64 / 1_000_000.0).round() as i128;

Expand Down

0 comments on commit 4e8faff

Please sign in to comment.