From eb713d272c3f5b53f8bc98775b927d7658ec40b2 Mon Sep 17 00:00:00 2001 From: Noah Lev Date: Wed, 27 Oct 2021 20:06:48 -0700 Subject: [PATCH] Improve perf measurements of `build_extern_trait_impl` Before, it was only measuring one callsite of `build_impl`, and it incremented the call count even if `build_impl` returned early because the `did` was already inlined. Now, it measures all calls, minus calls that return early. --- src/librustdoc/clean/inline.rs | 2 ++ src/librustdoc/passes/collect_trait_impls.rs | 4 +--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/librustdoc/clean/inline.rs b/src/librustdoc/clean/inline.rs index c5e05875819..cb70f465f62 100644 --- a/src/librustdoc/clean/inline.rs +++ b/src/librustdoc/clean/inline.rs @@ -335,6 +335,8 @@ crate fn build_impl( return; } + let _prof_timer = cx.tcx.sess.prof.generic_activity("build_extern_trait_impl"); + let tcx = cx.tcx; let associated_trait = tcx.impl_trait_ref(did); diff --git a/src/librustdoc/passes/collect_trait_impls.rs b/src/librustdoc/passes/collect_trait_impls.rs index 91a0cb413eb..1beb3f2f4ab 100644 --- a/src/librustdoc/passes/collect_trait_impls.rs +++ b/src/librustdoc/passes/collect_trait_impls.rs @@ -31,9 +31,7 @@ crate fn collect_trait_impls(krate: Crate, cx: &mut DocContext<'_>) -> Crate { for &cnum in cx.tcx.crates(()).iter() { for &(did, _) in cx.tcx.all_trait_implementations(cnum).iter() { - cx.tcx.sess.prof.generic_activity("build_extern_trait_impl").run(|| { - inline::build_impl(cx, None, did, None, &mut new_items); - }); + inline::build_impl(cx, None, did, None, &mut new_items); } }