Skip to content

Commit

Permalink
Register queries with self profiler in rustc_interface
Browse files Browse the repository at this point in the history
  • Loading branch information
Mark-Simulacrum committed Nov 12, 2019
1 parent f696b21 commit 2fd5454
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 2 deletions.
1 change: 0 additions & 1 deletion src/librustc/session/mod.rs
Expand Up @@ -1099,7 +1099,6 @@ fn build_session_(
);
match profiler {
Ok(profiler) => {
crate::ty::query::QueryName::register_with_profiler(&profiler);
Some(Arc::new(profiler))
},
Err(e) => {
Expand Down
4 changes: 3 additions & 1 deletion src/librustc/ty/query/plumbing.rs
Expand Up @@ -827,7 +827,9 @@ macro_rules! define_queries_inner {
}

impl QueryName {
pub fn register_with_profiler(profiler: &rustc_data_structures::profiling::SelfProfiler) {
pub fn register_with_profiler(
profiler: &rustc_data_structures::profiling::SelfProfiler,
) {
$(profiler.register_query_name(QueryName::$name);)*
}

Expand Down
6 changes: 6 additions & 0 deletions src/librustc_data_structures/profiling.rs
Expand Up @@ -205,6 +205,12 @@ impl SelfProfilerRef {
TimingGuard::none()
}));
}

pub fn register_queries(&self, f: impl FnOnce(&SelfProfiler)) {
if let Some(profiler) = &self.profiler {
f(&profiler)
}
}
}

pub struct SelfProfiler {
Expand Down
4 changes: 4 additions & 0 deletions src/librustc_interface/util.rs
Expand Up @@ -108,6 +108,10 @@ pub fn create_session(
process_configure_mod,
);

sess.prof.register_queries(|profiler| {
rustc::ty::query::QueryName::register_with_profiler(&profiler);
});

let codegen_backend = get_codegen_backend(&sess);

let mut cfg = config::build_configuration(&sess, config::to_crate_config(cfg));
Expand Down

0 comments on commit 2fd5454

Please sign in to comment.