Auto merge of #85153 - cjgillot:qresolve, r=Aaron1011
Reduce the amount of untracked state in TyCtxt Access to untracked global state may generate instances of #84970. The GlobalCtxt contains the lowered HIR, the resolver outputs and interners. By wrapping the resolver inside a query, we make sure those accesses are properly tracked. As a no_hash query, all dependent queries essentially become `eval_always`, what they should have been from the beginning.
This commit is contained in:
commit
41278062c8
49 changed files with 234 additions and 255 deletions
|
@ -61,7 +61,7 @@ impl<'p, 'c, 'tcx> QueryKeyStringBuilder<'p, 'c, 'tcx> {
|
|||
|
||||
match def_key.disambiguated_data.data {
|
||||
DefPathData::CrateRoot => {
|
||||
crate_name = self.tcx.original_crate_name(def_id.krate).as_str();
|
||||
crate_name = self.tcx.crate_name(def_id.krate).as_str();
|
||||
name = &*crate_name;
|
||||
dis = "";
|
||||
end_index = 3;
|
||||
|
|
|
@ -108,7 +108,7 @@ pub fn print_stats(tcx: TyCtxt<'_>) {
|
|||
queries.iter().filter(|q| q.local_def_id_keys.is_some()).collect();
|
||||
def_id_density.sort_by_key(|q| q.local_def_id_keys.unwrap());
|
||||
eprintln!("\nLocal DefId density:");
|
||||
let total = tcx.hir().definitions().def_index_count() as f64;
|
||||
let total = tcx.resolutions(()).definitions.def_index_count() as f64;
|
||||
for q in def_id_density.iter().rev() {
|
||||
let local = q.local_def_id_keys.unwrap();
|
||||
eprintln!(" {} - {} = ({}%)", q.name, local, (local as f64 * 100.0) / total);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue