diff options
| author | Ralf Jung <post@ralfj.de> | 2018-11-22 17:17:45 +0100 |
|---|---|---|
| committer | Ralf Jung <post@ralfj.de> | 2019-02-09 12:08:39 +0100 |
| commit | f5bbcf3818285abd253930554da90fc97cba3690 (patch) | |
| tree | 9148d192038b7be8f8a5efe345beba48f8e5f5d2 | |
| parent | 312f3827faa8dc3b8e1dc8c1ad685a6222f16f03 (diff) | |
| download | rust-f5bbcf3818285abd253930554da90fc97cba3690.tar.gz rust-f5bbcf3818285abd253930554da90fc97cba3690.zip | |
use pass infrastructure for mir shims, so that they can get dumped
| -rw-r--r-- | src/librustc_mir/shim.rs | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/src/librustc_mir/shim.rs b/src/librustc_mir/shim.rs index 942e7a1f1bb..7edd725544c 100644 --- a/src/librustc_mir/shim.rs +++ b/src/librustc_mir/shim.rs @@ -16,8 +16,10 @@ use syntax_pos::Span; use std::fmt; use std::iter; -use crate::transform::{add_moves_for_packed_drops, add_call_guards}; -use crate::transform::{remove_noop_landing_pads, no_landing_pads, simplify}; +use crate::transform::{ + add_moves_for_packed_drops, add_call_guards, + remove_noop_landing_pads, no_landing_pads, simplify, run_passes +}; use crate::util::elaborate_drops::{self, DropElaborator, DropStyle, DropFlagMode}; use crate::util::patch::MirPatch; @@ -113,12 +115,15 @@ fn make_shim<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, } }; debug!("make_shim({:?}) = untransformed {:?}", instance, result); - add_moves_for_packed_drops::add_moves_for_packed_drops( - tcx, &mut result, instance.def_id()); - no_landing_pads::no_landing_pads(tcx, &mut result); - remove_noop_landing_pads::remove_noop_landing_pads(tcx, &mut result); - simplify::simplify_cfg(&mut result); - add_call_guards::CriticalCallEdges.add_call_guards(&mut result); + + run_passes(tcx, &mut result, instance.def_id(), MirPhase::Const, &[ + &add_moves_for_packed_drops::AddMovesForPackedDrops, + &no_landing_pads::NoLandingPads, + &remove_noop_landing_pads::RemoveNoopLandingPads, + &simplify::SimplifyCfg::new("make_shim"), + &add_call_guards::CriticalCallEdges, + ]); + debug!("make_shim({:?}) = {:?}", instance, result); tcx.alloc_mir(result) |
