Don't always run add_call_guards pass
This commit is contained in:
parent
5179ebe206
commit
8c50006829
2 changed files with 7 additions and 5 deletions
|
|
@ -58,10 +58,14 @@ fn may_be_reference(ty: Ty<'tcx>) -> bool {
|
|||
}
|
||||
|
||||
impl<'tcx> MirPass<'tcx> for AddRetag {
|
||||
fn run_pass(&self, tcx: TyCtxt<'tcx>, _src: MirSource<'tcx>, body: &mut BodyAndCache<'tcx>) {
|
||||
fn run_pass(&self, tcx: TyCtxt<'tcx>, src: MirSource<'tcx>, body: &mut BodyAndCache<'tcx>) {
|
||||
if !tcx.sess.opts.debugging_opts.mir_emit_retag {
|
||||
return;
|
||||
}
|
||||
|
||||
// We need an `AllCallEdges` pass before we can do any work.
|
||||
super::add_call_guards::AllCallEdges.run_pass(tcx, src, body);
|
||||
|
||||
let (span, arg_count) = (body.span, body.arg_count);
|
||||
let (basic_blocks, local_decls) = body.basic_blocks_and_local_decls_mut();
|
||||
let needs_retag = |place: &Place<'tcx>| {
|
||||
|
|
|
|||
|
|
@ -287,10 +287,8 @@ fn run_optimization_passes<'tcx>(
|
|||
// AddMovesForPackedDrops needs to run after drop
|
||||
// elaboration.
|
||||
&add_moves_for_packed_drops::AddMovesForPackedDrops,
|
||||
// AddRetag needs to run after ElaborateDrops, and it needs
|
||||
// an AllCallEdges pass right before it. Otherwise it should
|
||||
// run fairly late, but before optimizations begin.
|
||||
&add_call_guards::AllCallEdges,
|
||||
// `AddRetag` needs to run after `ElaborateDrops`. Otherwise it should run fairly late,
|
||||
// but before optimizations begin.
|
||||
&add_retag::AddRetag,
|
||||
&simplify::SimplifyCfg::new("elaborate-drops"),
|
||||
// No lifetime analysis based on borrowing can be done from here on out.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue