]> git.lizzy.rs Git - rust.git/blob - compiler/rustc_mir_transform/src/dump_mir.rs
Remove both StorageLive and StorageDead in CopyProp.
[rust.git] / compiler / rustc_mir_transform / src / dump_mir.rs
1 //! This pass just dumps MIR at a specified point.
2
3 use std::fs::File;
4 use std::io;
5
6 use crate::MirPass;
7 use rustc_middle::mir::write_mir_pretty;
8 use rustc_middle::mir::Body;
9 use rustc_middle::ty::TyCtxt;
10 use rustc_session::config::OutputType;
11
12 pub struct Marker(pub &'static str);
13
14 impl<'tcx> MirPass<'tcx> for Marker {
15     fn name(&self) -> &str {
16         self.0
17     }
18
19     fn run_pass(&self, _tcx: TyCtxt<'tcx>, _body: &mut Body<'tcx>) {}
20 }
21
22 pub fn emit_mir(tcx: TyCtxt<'_>) -> io::Result<()> {
23     let path = tcx.output_filenames(()).path(OutputType::Mir);
24     let mut f = io::BufWriter::new(File::create(&path)?);
25     write_mir_pretty(tcx, None, &mut f)?;
26     Ok(())
27 }