diff options
| author | John Kåre Alsaker <john.kare.alsaker@gmail.com> | 2023-09-13 13:05:15 +0200 |
|---|---|---|
| committer | John Kåre Alsaker <john.kare.alsaker@gmail.com> | 2023-09-13 13:41:19 +0200 |
| commit | 9624c30965d768527efd3ca5f52904fb5e763587 (patch) | |
| tree | 7ad1468593180ca2989f0d35036a38188dbeff9f /compiler/rustc_mir_transform/src | |
| parent | f742d8832601080df1ae56c6469da18a917e1f60 (diff) | |
| download | rust-9624c30965d768527efd3ca5f52904fb5e763587.tar.gz rust-9624c30965d768527efd3ca5f52904fb5e763587.zip | |
Generate MIR pass names for profiling on the fly and pass the body DefId as argument
Diffstat (limited to 'compiler/rustc_mir_transform/src')
| -rw-r--r-- | compiler/rustc_mir_transform/src/pass_manager.rs | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/compiler/rustc_mir_transform/src/pass_manager.rs b/compiler/rustc_mir_transform/src/pass_manager.rs index 0aba1bc9685..5abb2f3d041 100644 --- a/compiler/rustc_mir_transform/src/pass_manager.rs +++ b/compiler/rustc_mir_transform/src/pass_manager.rs @@ -94,6 +94,8 @@ fn run_passes_inner<'tcx>( let overridden_passes = &tcx.sess.opts.unstable_opts.mir_enable_passes; trace!(?overridden_passes); + let prof_arg = tcx.sess.prof.enabled().then(|| format!("{:?}", body.source.def_id())); + if !body.should_skip() { for pass in passes { let name = pass.name(); @@ -121,10 +123,14 @@ fn run_passes_inner<'tcx>( validate_body(tcx, body, format!("before pass {name}")); } - tcx.sess - .prof - .generic_activity_with_arg("mir_pass", name) - .run(|| pass.run_pass(tcx, body)); + if let Some(prof_arg) = &prof_arg { + tcx.sess + .prof + .generic_activity_with_arg(pass.profiler_name(), &**prof_arg) + .run(|| pass.run_pass(tcx, body)); + } else { + pass.run_pass(tcx, body); + } if dump_enabled { dump_mir_for_pass(tcx, body, &name, true); |
