diff options
| author | Niko Matsakis <niko@alum.mit.edu> | 2017-05-02 06:08:13 -0400 |
|---|---|---|
| committer | Niko Matsakis <niko@alum.mit.edu> | 2017-05-02 16:21:57 -0400 |
| commit | 393fa4f1b715234bfb8a80699668dada8a3880c7 (patch) | |
| tree | 43144ee5381faa17de3382e1b0d29d4304ce1120 /src | |
| parent | c7023d1c2fbb9e136084b0d35164aff5eb2071ae (diff) | |
| download | rust-393fa4f1b715234bfb8a80699668dada8a3880c7.tar.gz rust-393fa4f1b715234bfb8a80699668dada8a3880c7.zip | |
rename from `item_mir` to `optimized_mir`
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustc/ty/maps.rs | 4 | ||||
| -rw-r--r-- | src/librustc/ty/mod.rs | 21 | ||||
| -rw-r--r-- | src/librustc_metadata/cstore_impl.rs | 6 | ||||
| -rw-r--r-- | src/librustc_metadata/decoder.rs | 8 | ||||
| -rw-r--r-- | src/librustc_metadata/encoder.rs | 22 | ||||
| -rw-r--r-- | src/librustc_mir/queries.rs | 4 | ||||
| -rw-r--r-- | src/librustc_mir/transform/inline.rs | 2 | ||||
| -rw-r--r-- | src/librustc_mir/util/graphviz.rs | 2 | ||||
| -rw-r--r-- | src/librustc_mir/util/pretty.rs | 2 | ||||
| -rw-r--r-- | src/librustc_passes/mir_stats.rs | 2 | ||||
| -rw-r--r-- | src/librustc_trans/collector.rs | 2 |
11 files changed, 33 insertions, 42 deletions
diff --git a/src/librustc/ty/maps.rs b/src/librustc/ty/maps.rs index cec157b03ac..385abbd039e 100644 --- a/src/librustc/ty/maps.rs +++ b/src/librustc/ty/maps.rs @@ -333,7 +333,7 @@ impl<'tcx> QueryDescription for queries::const_is_rvalue_promotable_to_static<'t } } -impl<'tcx> QueryDescription for queries::is_item_mir_available<'tcx> { +impl<'tcx> QueryDescription for queries::is_mir_available<'tcx> { fn describe(tcx: TyCtxt, def_id: DefId) -> String { format!("checking if item is mir available: `{}`", tcx.item_path_str(def_id)) @@ -770,7 +770,7 @@ define_maps! { <'tcx> [] item_body_nested_bodies: metadata_dep_node(DefId) -> Rc<BTreeMap<hir::BodyId, hir::Body>>, [] const_is_rvalue_promotable_to_static: metadata_dep_node(DefId) -> bool, - [] is_item_mir_available: metadata_dep_node(DefId) -> bool, + [] is_mir_available: metadata_dep_node(DefId) -> bool, } fn coherent_trait_dep_node((_, def_id): (CrateNum, DefId)) -> DepNode<DefId> { diff --git a/src/librustc/ty/mod.rs b/src/librustc/ty/mod.rs index 537846bc0f4..8191b392de5 100644 --- a/src/librustc/ty/mod.rs +++ b/src/librustc/ty/mod.rs @@ -2324,18 +2324,13 @@ impl<'a, 'gcx, 'tcx> TyCtxt<'a, 'gcx, 'tcx> { } } - /// Given the did of an item, returns its (optimized) MIR, borrowed immutably. - pub fn item_mir(self, did: DefId) -> &'gcx Mir<'gcx> { - self.optimized_mir(did) - } - /// Return the possibly-auto-generated MIR of a (DefId, Subst) pair. pub fn instance_mir(self, instance: ty::InstanceDef<'gcx>) -> &'gcx Mir<'gcx> { match instance { ty::InstanceDef::Item(did) => { - self.item_mir(did) + self.optimized_mir(did) } ty::InstanceDef::Intrinsic(..) | ty::InstanceDef::FnPtrShim(..) | @@ -2349,16 +2344,12 @@ impl<'a, 'gcx, 'tcx> TyCtxt<'a, 'gcx, 'tcx> { /// Given the DefId of an item, returns its MIR, borrowed immutably. /// Returns None if there is no MIR for the DefId - pub fn maybe_item_mir(self, did: DefId) -> Option<&'gcx Mir<'gcx>> { - if did.is_local() && !self.mir_keys(LOCAL_CRATE).contains(&did) { - return None; - } - - if !did.is_local() && !self.is_item_mir_available(did) { - return None; + pub fn maybe_optimized_mir(self, did: DefId) -> Option<&'gcx Mir<'gcx>> { + if self.is_mir_available(did) { + Some(self.optimized_mir(did)) + } else { + None } - - Some(self.item_mir(did)) } /// Get the attributes of a definition. diff --git a/src/librustc_metadata/cstore_impl.rs b/src/librustc_metadata/cstore_impl.rs index 7bc27596e40..872b2eb6f71 100644 --- a/src/librustc_metadata/cstore_impl.rs +++ b/src/librustc_metadata/cstore_impl.rs @@ -95,8 +95,8 @@ provide! { <'tcx> tcx, def_id, cdata }) } optimized_mir => { - let mir = cdata.maybe_get_item_mir(tcx, def_id.index).unwrap_or_else(|| { - bug!("get_item_mir: missing MIR for `{:?}`", def_id) + let mir = cdata.maybe_get_optimized_mir(tcx, def_id.index).unwrap_or_else(|| { + bug!("get_optimized_mir: missing MIR for `{:?}`", def_id) }); let mir = tcx.alloc_mir(mir); @@ -122,7 +122,7 @@ provide! { <'tcx> tcx, def_id, cdata cdata.entry(def_id.index).ast.expect("const item missing `ast`") .decode(cdata).rvalue_promotable_to_static } - is_item_mir_available => { + is_mir_available => { !cdata.is_proc_macro(def_id.index) && cdata.maybe_entry(def_id.index).and_then(|item| item.decode(cdata).mir).is_some() } diff --git a/src/librustc_metadata/decoder.rs b/src/librustc_metadata/decoder.rs index 5d0e78da2f8..ae755adcf5f 100644 --- a/src/librustc_metadata/decoder.rs +++ b/src/librustc_metadata/decoder.rs @@ -779,10 +779,10 @@ impl<'a, 'tcx> CrateMetadata { tcx.alloc_tables(ast.tables.decode((self, tcx))) } - pub fn maybe_get_item_mir(&self, - tcx: TyCtxt<'a, 'tcx, 'tcx>, - id: DefIndex) - -> Option<Mir<'tcx>> { + pub fn maybe_get_optimized_mir(&self, + tcx: TyCtxt<'a, 'tcx, 'tcx>, + id: DefIndex) + -> Option<Mir<'tcx>> { match self.is_proc_macro(id) { true => None, false => self.entry(id).mir.map(|mir| mir.decode((self, tcx))), diff --git a/src/librustc_metadata/encoder.rs b/src/librustc_metadata/encoder.rs index 2160a56257b..125026b799c 100644 --- a/src/librustc_metadata/encoder.rs +++ b/src/librustc_metadata/encoder.rs @@ -295,7 +295,7 @@ impl<'a, 'b: 'a, 'tcx: 'b> EntryBuilder<'a, 'b, 'tcx> { predicates: Some(self.encode_predicates(def_id)), ast: None, - mir: self.encode_mir(def_id), + mir: self.encode_optimized_mir(def_id), } } @@ -433,7 +433,7 @@ impl<'a, 'b: 'a, 'tcx: 'b> EntryBuilder<'a, 'b, 'tcx> { predicates: Some(self.encode_predicates(def_id)), ast: None, - mir: self.encode_mir(def_id), + mir: self.encode_optimized_mir(def_id), } } @@ -528,7 +528,7 @@ impl<'a, 'b: 'a, 'tcx: 'b> EntryBuilder<'a, 'b, 'tcx> { } else { None }, - mir: self.encode_mir(def_id), + mir: self.encode_optimized_mir(def_id), } } @@ -598,7 +598,7 @@ impl<'a, 'b: 'a, 'tcx: 'b> EntryBuilder<'a, 'b, 'tcx> { predicates: Some(self.encode_predicates(def_id)), ast: ast.map(|body| self.encode_body(body)), - mir: if mir { self.encode_mir(def_id) } else { None }, + mir: if mir { self.encode_optimized_mir(def_id) } else { None }, } } @@ -619,10 +619,10 @@ impl<'a, 'b: 'a, 'tcx: 'b> EntryBuilder<'a, 'b, 'tcx> { self.lazy_seq(names.iter().map(|name| name.node)) } - fn encode_mir(&mut self, def_id: DefId) -> Option<Lazy<mir::Mir<'tcx>>> { + fn encode_optimized_mir(&mut self, def_id: DefId) -> Option<Lazy<mir::Mir<'tcx>>> { debug!("EntryBuilder::encode_mir({:?})", def_id); if self.tcx.mir_keys(LOCAL_CRATE).contains(&def_id) { - let mir = self.tcx.item_mir(def_id); + let mir = self.tcx.optimized_mir(def_id); Some(self.lazy(&mir)) } else { None @@ -861,15 +861,15 @@ impl<'a, 'b: 'a, 'tcx: 'b> EntryBuilder<'a, 'b, 'tcx> { }, mir: match item.node { hir::ItemStatic(..) if self.tcx.sess.opts.debugging_opts.always_encode_mir => { - self.encode_mir(def_id) + self.encode_optimized_mir(def_id) } - hir::ItemConst(..) => self.encode_mir(def_id), + hir::ItemConst(..) => self.encode_optimized_mir(def_id), hir::ItemFn(_, _, constness, _, ref generics, _) => { let tps_len = generics.ty_params.len(); let needs_inline = tps_len > 0 || attr::requests_inline(&item.attrs); let always_encode_mir = self.tcx.sess.opts.debugging_opts.always_encode_mir; if needs_inline || constness == hir::Constness::Const || always_encode_mir { - self.encode_mir(def_id) + self.encode_optimized_mir(def_id) } else { None } @@ -1166,7 +1166,7 @@ impl<'a, 'b: 'a, 'tcx: 'b> EntryBuilder<'a, 'b, 'tcx> { predicates: None, ast: None, - mir: self.encode_mir(def_id), + mir: self.encode_optimized_mir(def_id), } } @@ -1192,7 +1192,7 @@ impl<'a, 'b: 'a, 'tcx: 'b> EntryBuilder<'a, 'b, 'tcx> { predicates: Some(self.encode_predicates(def_id)), ast: Some(self.encode_body(body)), - mir: self.encode_mir(def_id), + mir: self.encode_optimized_mir(def_id), } } diff --git a/src/librustc_mir/queries.rs b/src/librustc_mir/queries.rs index 947b6df4bf0..3e12221f852 100644 --- a/src/librustc_mir/queries.rs +++ b/src/librustc_mir/queries.rs @@ -38,12 +38,12 @@ pub fn provide(providers: &mut Providers) { mir_const, mir_validated, optimized_mir, - is_item_mir_available, + is_mir_available, ..*providers }; } -fn is_item_mir_available<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, def_id: DefId) -> bool { +fn is_mir_available<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, def_id: DefId) -> bool { tcx.mir_keys(def_id.krate).contains(&def_id) } diff --git a/src/librustc_mir/transform/inline.rs b/src/librustc_mir/transform/inline.rs index 614b5e2cc3f..3f6ce9c9446 100644 --- a/src/librustc_mir/transform/inline.rs +++ b/src/librustc_mir/transform/inline.rs @@ -104,7 +104,7 @@ impl<'a, 'tcx> Inliner<'a, 'tcx> { loop { local_change = false; while let Some(callsite) = callsites.pop_front() { - if !self.tcx.is_item_mir_available(callsite.callee) { + if !self.tcx.is_mir_available(callsite.callee) { continue; } diff --git a/src/librustc_mir/util/graphviz.rs b/src/librustc_mir/util/graphviz.rs index d3d3977a934..cf13a80e677 100644 --- a/src/librustc_mir/util/graphviz.rs +++ b/src/librustc_mir/util/graphviz.rs @@ -29,7 +29,7 @@ pub fn write_mir_graphviz<'a, 'tcx, W>(tcx: TyCtxt<'a, 'tcx, 'tcx>, { for def_id in dump_mir_def_ids(tcx, single) { let nodeid = tcx.hir.as_local_node_id(def_id).unwrap(); - let mir = &tcx.item_mir(def_id); + let mir = &tcx.optimized_mir(def_id); writeln!(w, "digraph Mir_{} {{", nodeid)?; diff --git a/src/librustc_mir/util/pretty.rs b/src/librustc_mir/util/pretty.rs index 4f94c4d122b..5f51888019b 100644 --- a/src/librustc_mir/util/pretty.rs +++ b/src/librustc_mir/util/pretty.rs @@ -127,7 +127,7 @@ pub fn write_mir_pretty<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, let mut first = true; for def_id in dump_mir_def_ids(tcx, single) { - let mir = &tcx.item_mir(def_id); + let mir = &tcx.optimized_mir(def_id); if first { first = false; diff --git a/src/librustc_passes/mir_stats.rs b/src/librustc_passes/mir_stats.rs index 39b3b709af7..d9921e62330 100644 --- a/src/librustc_passes/mir_stats.rs +++ b/src/librustc_passes/mir_stats.rs @@ -46,7 +46,7 @@ pub fn print_mir_stats<'tcx, 'a>(tcx: TyCtxt<'a, 'tcx, 'tcx>, title: &str) { // about maintaining the dep graph. let _ignore = tcx.dep_graph.in_ignore(); for &def_id in tcx.mir_keys(LOCAL_CRATE).iter() { - let mir = tcx.item_mir(def_id); + let mir = tcx.optimized_mir(def_id); collector.visit_mir(&mir); } collector.print(title); diff --git a/src/librustc_trans/collector.rs b/src/librustc_trans/collector.rs index 78600116157..6d7d95f5487 100644 --- a/src/librustc_trans/collector.rs +++ b/src/librustc_trans/collector.rs @@ -659,7 +659,7 @@ fn should_trans_locally<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, instance: &Instan // in this crate false } else { - if !tcx.is_item_mir_available(def_id) { + if !tcx.is_mir_available(def_id) { bug!("Cannot create local trans-item for {:?}", def_id) } true |
