use crate::hir::def_id::{DefId, CrateNum, LOCAL_CRATE};
use crate::hir::HirId;
-use syntax::symbol::{Symbol, InternedString};
+use syntax::symbol::InternedString;
use crate::ty::{Instance, TyCtxt};
use crate::util::nodemap::FxHashMap;
use rustc_data_structures::base_n;
}
}
-#[derive(Clone, Default)]
-pub struct Stats {
- pub n_glues_created: usize,
- pub n_null_glues: usize,
- pub n_real_glues: usize,
- pub n_fns: usize,
- pub n_inlines: usize,
- pub n_closures: usize,
- pub n_llvm_insns: usize,
- pub llvm_insns: FxHashMap<String, usize>,
- // (ident, llvm-instructions)
- pub fn_stats: Vec<(String, usize)>,
-}
-
-impl_stable_hash_for!(struct self::Stats {
- n_glues_created,
- n_null_glues,
- n_real_glues,
- n_fns,
- n_inlines,
- n_closures,
- n_llvm_insns,
- llvm_insns,
- fn_stats
-});
-
-impl Stats {
- pub fn extend(&mut self, stats: Stats) {
- self.n_glues_created += stats.n_glues_created;
- self.n_null_glues += stats.n_null_glues;
- self.n_real_glues += stats.n_real_glues;
- self.n_fns += stats.n_fns;
- self.n_inlines += stats.n_inlines;
- self.n_closures += stats.n_closures;
- self.n_llvm_insns += stats.n_llvm_insns;
-
- for (k, v) in stats.llvm_insns {
- *self.llvm_insns.entry(k).or_insert(0) += v;
- }
- self.fn_stats.extend(stats.fn_stats);
- }
-}
-
pub struct CodegenUnitNameBuilder<'a, 'gcx: 'tcx, 'tcx: 'a> {
tcx: TyCtxt<'a, 'gcx, 'tcx>,
cache: FxHashMap<CrateNum, String>,
cgu_name
} else {
let cgu_name = &cgu_name.as_str()[..];
- Symbol::intern(&CodegenUnit::mangle_name(cgu_name)).as_interned_str()
+ InternedString::intern(&CodegenUnit::mangle_name(cgu_name))
}
}
write!(cgu_name, ".{}", special_suffix).unwrap();
}
- Symbol::intern(&cgu_name[..]).as_interned_str()
+ InternedString::intern(&cgu_name[..])
}
}