Skip to content

Commit

Permalink
remap mir before running optimization passes
Browse files Browse the repository at this point in the history
  • Loading branch information
fee1-dead committed Sep 4, 2022
1 parent bd61b8f commit 58c8823
Showing 1 changed file with 7 additions and 4 deletions.
11 changes: 7 additions & 4 deletions compiler/rustc_mir_transform/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -387,7 +387,9 @@ fn inner_mir_for_ctfe(tcx: TyCtxt<'_>, def: ty::WithOptConstParam<LocalDefId>) -
.body_const_context(def.did)
.expect("mir_for_ctfe should not be used for runtime functions");

let mut body = tcx.mir_drops_elaborated_and_const_checked(def).borrow().clone();
let body = tcx.mir_drops_elaborated_and_const_checked(def).borrow().clone();

let mut body = remap_mir_for_const_eval_select(tcx, body, hir::Constness::Const);

match context {
// Do not const prop functions, either they get executed at runtime or exported to metadata,
Expand Down Expand Up @@ -416,7 +418,7 @@ fn inner_mir_for_ctfe(tcx: TyCtxt<'_>, def: ty::WithOptConstParam<LocalDefId>) -

debug_assert!(!body.has_free_regions(), "Free regions in MIR for CTFE");

remap_mir_for_const_eval_select(tcx, body, hir::Constness::Const)
body
}

/// Obtain just the main MIR (no promoteds) and run some cleanups on it. This also runs
Expand Down Expand Up @@ -620,14 +622,15 @@ fn inner_optimized_mir(tcx: TyCtxt<'_>, did: LocalDefId) -> Body<'_> {
Some(other) => panic!("do not use `optimized_mir` for constants: {:?}", other),
}
debug!("about to call mir_drops_elaborated...");
let mut body =
let body =
tcx.mir_drops_elaborated_and_const_checked(ty::WithOptConstParam::unknown(did)).steal();
let mut body = remap_mir_for_const_eval_select(tcx, body, hir::Constness::NotConst);
debug!("body: {:#?}", body);
run_optimization_passes(tcx, &mut body);

debug_assert!(!body.has_free_regions(), "Free regions in optimized MIR");

remap_mir_for_const_eval_select(tcx, body, hir::Constness::NotConst)
body
}

/// Fetch all the promoteds of an item and prepare their MIR bodies to be ready for
Expand Down

0 comments on commit 58c8823

Please sign in to comment.