Skip to content

Commit 5ce29d3

Browse files
committed
metadata: record unused_generic_params
This commit records the results of `unused_generic_params` in crate metadata, hopefully improving performance. Signed-off-by: David Wood <[email protected]>
1 parent f52c729 commit 5ce29d3

File tree

4 files changed

+14
-0
lines changed

4 files changed

+14
-0
lines changed

src/librustc_metadata/rmeta/decoder.rs

+10
Original file line numberDiff line numberDiff line change
@@ -1132,6 +1132,16 @@ impl<'a, 'tcx> CrateMetadataRef<'a> {
11321132
.decode((self, tcx))
11331133
}
11341134

1135+
fn get_unused_generic_params(&self, id: DefIndex) -> u64 {
1136+
self.root
1137+
.tables
1138+
.unused_generic_params
1139+
.get(self, id)
1140+
.filter(|_| !self.is_proc_macro(id))
1141+
.map(|params| params.decode(self))
1142+
.unwrap_or_default()
1143+
}
1144+
11351145
fn get_promoted_mir(&self, tcx: TyCtxt<'tcx>, id: DefIndex) -> IndexVec<Promoted, Body<'tcx>> {
11361146
self.root
11371147
.tables

src/librustc_metadata/rmeta/decoder/cstore_impl.rs

+1
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ provide! { <'tcx> tcx, def_id, other, cdata,
113113
}
114114
optimized_mir => { tcx.arena.alloc(cdata.get_optimized_mir(tcx, def_id.index)) }
115115
promoted_mir => { tcx.arena.alloc(cdata.get_promoted_mir(tcx, def_id.index)) }
116+
unused_generic_params => { cdata.get_unused_generic_params(def_id.index) }
116117
mir_const_qualif => { cdata.mir_const_qualif(def_id.index) }
117118
fn_sig => { cdata.fn_sig(def_id.index, tcx) }
118119
inherent_impls => { cdata.get_inherent_implementations_for_type(tcx, def_id.index) }

src/librustc_metadata/rmeta/encoder.rs

+2
Original file line numberDiff line numberDiff line change
@@ -1065,6 +1065,8 @@ impl EncodeContext<'tcx> {
10651065
debug!("EntryBuilder::encode_mir({:?})", def_id);
10661066
if self.tcx.mir_keys(LOCAL_CRATE).contains(&def_id) {
10671067
record!(self.tables.mir[def_id.to_def_id()] <- self.tcx.optimized_mir(def_id));
1068+
record!(self.tables.unused_generic_params[def_id.to_def_id()] <-
1069+
self.tcx.unused_generic_params(def_id));
10681070
}
10691071
}
10701072

src/librustc_metadata/rmeta/mod.rs

+1
Original file line numberDiff line numberDiff line change
@@ -277,6 +277,7 @@ define_tables! {
277277
super_predicates: Table<DefIndex, Lazy!(ty::GenericPredicates<'tcx>)>,
278278
mir: Table<DefIndex, Lazy!(mir::Body<'tcx>)>,
279279
promoted_mir: Table<DefIndex, Lazy!(IndexVec<mir::Promoted, mir::Body<'tcx>>)>,
280+
unused_generic_params: Table<DefIndex, Lazy<u64>>,
280281
}
281282

282283
#[derive(Copy, Clone, RustcEncodable, RustcDecodable)]

0 commit comments

Comments
 (0)