Get rid of the emitted rustc_query_names and rustc_cached_queries macro

We can avoid these by adding slightly more information to `rustc_query_append` instead.
This commit is contained in:
Joshua Nelson 2022-09-06 21:26:02 -05:00
parent c630c87ceb
commit 3a4e3c7788
4 changed files with 38 additions and 40 deletions

View file

@ -148,19 +148,31 @@ impl<'tcx> QueryCtxt<'tcx> {
encoder: &mut on_disk_cache::CacheEncoder<'_, 'tcx>,
query_result_index: &mut on_disk_cache::EncodedDepNodeIndex,
) {
macro_rules! expand_if_cached {
([] $encode:expr) => {};
([(cache) $($rest:tt)*] $encode:expr) => {
$encode
};
([$other:tt $($modifiers:tt)*] $encode:expr) => {
expand_if_cached!([$($modifiers)*] $encode)
};
}
macro_rules! encode_queries {
($($query:ident,)*) => {
(
$($(#[$attr:meta])*
[$($modifiers:tt)*] fn $query:ident($($K:tt)*) -> $V:ty,)*) => {
$(
on_disk_cache::encode_query_results::<_, super::queries::$query<'_>>(
expand_if_cached!([$($modifiers)*] on_disk_cache::encode_query_results::<_, super::queries::$query<'_>>(
self,
encoder,
query_result_index
);
));
)*
}
}
rustc_cached_queries!(encode_queries!);
rustc_query_append!(encode_queries!);
}
pub fn try_print_query_stack(

View file

@ -307,18 +307,18 @@ pub fn alloc_self_profile_query_strings(tcx: TyCtxt<'_>) {
macro_rules! alloc_once {
(
$( $( #[$attr:meta] )* $name:ident, )+
) => {
$({
$($(#[$attr:meta])*
[$($modifiers:tt)*] fn $name:ident($($K:tt)*) -> $V:ty,)*) => {
$(
alloc_self_profile_query_strings_for_query_cache(
tcx,
stringify!($name),
&tcx.query_caches.$name,
&mut string_cache,
);
})+
)+
}
}
rustc_query_names! { alloc_once! }
rustc_query_append! { alloc_once! }
}