Skip to content

Commit

Permalink
MIR: use span instead of NodeId to determine if optimized_mir should …
Browse files Browse the repository at this point in the history
…be run
  • Loading branch information
ljedrz committed Apr 19, 2020
1 parent 28742a1 commit 3c455fe
Showing 1 changed file with 5 additions and 7 deletions.
12 changes: 5 additions & 7 deletions src/librustc_mir/transform/inline.rs
Expand Up @@ -94,17 +94,15 @@ impl Inliner<'tcx> {
continue;
}

let self_node_id = self.tcx.hir().as_local_node_id(self.source.def_id()).unwrap();
let callee_node_id = self.tcx.hir().as_local_node_id(callsite.callee);
let callee_hir_id = self.tcx.hir().as_local_hir_id(callsite.callee);

let callee_body = if let Some(callee_node_id) = callee_node_id {
let callee_body = if let Some(callee_hir_id) = callee_hir_id {
let self_hir_id = self.tcx.hir().as_local_hir_id(self.source.def_id()).unwrap();
// Avoid a cycle here by only using `optimized_mir` only if we have
// a lower node id than the callee. This ensures that the callee will
// a lower `HirId` than the callee. This ensures that the callee will
// not inline us. This trick only works without incremental compilation.
// So don't do it if that is enabled.
if !self.tcx.dep_graph.is_fully_enabled()
&& self_node_id.as_u32() < callee_node_id.as_u32()
{
if !self.tcx.dep_graph.is_fully_enabled() && self_hir_id < callee_hir_id {
self.tcx.optimized_mir(callsite.callee)
} else {
continue;
Expand Down

0 comments on commit 3c455fe

Please sign in to comment.