mirror of
https://github.com/rust-lang/rust.git
synced 2025-01-26 14:43:24 +00:00
incr.comp.: Cache generics_of query.
This commit is contained in:
parent
a5d7aae8cf
commit
0a4f347395
@ -617,8 +617,8 @@ impl<'tcx> QueryDescription<'tcx> for queries::optimized_mir<'tcx> {
|
||||
}
|
||||
|
||||
fn try_load_from_disk<'a>(tcx: TyCtxt<'a, 'tcx, 'tcx>,
|
||||
id: SerializedDepNodeIndex)
|
||||
-> Option<Self::Value> {
|
||||
id: SerializedDepNodeIndex)
|
||||
-> Option<Self::Value> {
|
||||
let mir: Option<::mir::Mir<'tcx>> = tcx.on_disk_query_result_cache
|
||||
.try_load_query_result(tcx, id);
|
||||
mir.map(|x| tcx.alloc_mir(x))
|
||||
@ -637,6 +637,21 @@ impl<'tcx> QueryDescription<'tcx> for queries::target_features_whitelist<'tcx> {
|
||||
}
|
||||
}
|
||||
|
||||
impl<'tcx> QueryDescription<'tcx> for queries::generics_of<'tcx> {
|
||||
#[inline]
|
||||
fn cache_on_disk(def_id: Self::Key) -> bool {
|
||||
def_id.is_local()
|
||||
}
|
||||
|
||||
fn try_load_from_disk<'a>(tcx: TyCtxt<'a, 'tcx, 'tcx>,
|
||||
id: SerializedDepNodeIndex)
|
||||
-> Option<Self::Value> {
|
||||
let generics: Option<ty::Generics> = tcx.on_disk_query_result_cache
|
||||
.try_load_query_result(tcx, id);
|
||||
generics.map(|x| tcx.alloc_generics(x))
|
||||
}
|
||||
}
|
||||
|
||||
macro_rules! impl_disk_cacheable_query(
|
||||
($query_name:ident, |$key:tt| $cond:expr) => {
|
||||
impl<'tcx> QueryDescription<'tcx> for queries::$query_name<'tcx> {
|
||||
|
@ -205,6 +205,7 @@ impl<'sess> OnDiskCache<'sess> {
|
||||
let qri = &mut query_result_index;
|
||||
|
||||
encode_query_results::<type_of, _>(tcx, enc, qri)?;
|
||||
encode_query_results::<generics_of, _>(tcx, enc, qri)?;
|
||||
encode_query_results::<predicates_of, _>(tcx, enc, qri)?;
|
||||
encode_query_results::<used_trait_imports, _>(tcx, enc, qri)?;
|
||||
encode_query_results::<typeck_tables_of, _>(tcx, enc, qri)?;
|
||||
|
@ -983,6 +983,7 @@ impl_load_from_cache!(
|
||||
ContainsExternIndicator => contains_extern_indicator,
|
||||
CheckMatch => check_match,
|
||||
TypeOfItem => type_of,
|
||||
GenericsOfItem => generics_of,
|
||||
PredicatesOfItem => predicates_of,
|
||||
UsedTraitImports => used_trait_imports,
|
||||
);
|
||||
|
Loading…
Reference in New Issue
Block a user