about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2021-10-29 01:50:08 +0000
committerbors <bors@rust-lang.org>2021-10-29 01:50:08 +0000
commita9f664f37d62fd255827a416482186308b8e8f7d (patch)
tree02feb5691c6a89ddc70454cf5a308a8611bee7f6
parentdf76418f1ee1a1973e862828ae8520abb6c3794a (diff)
parenteb713d272c3f5b53f8bc98775b927d7658ec40b2 (diff)
downloadrust-a9f664f37d62fd255827a416482186308b8e8f7d.tar.gz
rust-a9f664f37d62fd255827a416482186308b8e8f7d.zip
Auto merge of #90363 - camelid:build-impl-perf, r=jyn514
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.
-rw-r--r--src/librustdoc/clean/inline.rs2
-rw-r--r--src/librustdoc/passes/collect_trait_impls.rs4
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);
         }
     }