Auto merge of #89893 - camsteffen:redundant-dump-enabled, r=matthewjasper
Remove redundant dump_enabled check
This commit is contained in:
@@ -71,6 +71,7 @@ pub enum PassWhere {
|
|||||||
/// or `typeck` appears in the name.
|
/// or `typeck` appears in the name.
|
||||||
/// - `foo & nll | bar & typeck` == match if `foo` and `nll` both appear in the name
|
/// - `foo & nll | bar & typeck` == match if `foo` and `nll` both appear in the name
|
||||||
/// or `typeck` and `bar` both appear in the name.
|
/// or `typeck` and `bar` both appear in the name.
|
||||||
|
#[inline]
|
||||||
pub fn dump_mir<'tcx, F>(
|
pub fn dump_mir<'tcx, F>(
|
||||||
tcx: TyCtxt<'tcx>,
|
tcx: TyCtxt<'tcx>,
|
||||||
pass_num: Option<&dyn Display>,
|
pass_num: Option<&dyn Display>,
|
||||||
|
|||||||
@@ -1,13 +1,12 @@
|
|||||||
//! This pass just dumps MIR at a specified point.
|
//! This pass just dumps MIR at a specified point.
|
||||||
|
|
||||||
use std::borrow::Cow;
|
use std::borrow::Cow;
|
||||||
use std::fmt;
|
|
||||||
use std::fs::File;
|
use std::fs::File;
|
||||||
use std::io;
|
use std::io;
|
||||||
|
|
||||||
use crate::MirPass;
|
use crate::MirPass;
|
||||||
|
use rustc_middle::mir::write_mir_pretty;
|
||||||
use rustc_middle::mir::Body;
|
use rustc_middle::mir::Body;
|
||||||
use rustc_middle::mir::{dump_enabled, dump_mir, write_mir_pretty};
|
|
||||||
use rustc_middle::ty::TyCtxt;
|
use rustc_middle::ty::TyCtxt;
|
||||||
use rustc_session::config::{OutputFilenames, OutputType};
|
use rustc_session::config::{OutputFilenames, OutputType};
|
||||||
|
|
||||||
@@ -21,29 +20,6 @@ impl<'tcx> MirPass<'tcx> for Marker {
|
|||||||
fn run_pass(&self, _tcx: TyCtxt<'tcx>, _body: &mut Body<'tcx>) {}
|
fn run_pass(&self, _tcx: TyCtxt<'tcx>, _body: &mut Body<'tcx>) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub struct Disambiguator {
|
|
||||||
is_after: bool,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl fmt::Display for Disambiguator {
|
|
||||||
fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result {
|
|
||||||
let title = if self.is_after { "after" } else { "before" };
|
|
||||||
write!(formatter, "{}", title)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn on_mir_pass<'tcx>(
|
|
||||||
tcx: TyCtxt<'tcx>,
|
|
||||||
pass_num: &dyn fmt::Display,
|
|
||||||
pass_name: &str,
|
|
||||||
body: &Body<'tcx>,
|
|
||||||
is_after: bool,
|
|
||||||
) {
|
|
||||||
if dump_enabled(tcx, pass_name, body.source.def_id()) {
|
|
||||||
dump_mir(tcx, Some(pass_num), pass_name, &Disambiguator { is_after }, body, |_, _| Ok(()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn emit_mir(tcx: TyCtxt<'_>, outputs: &OutputFilenames) -> io::Result<()> {
|
pub fn emit_mir(tcx: TyCtxt<'_>, outputs: &OutputFilenames) -> io::Result<()> {
|
||||||
let path = outputs.path(OutputType::Mir);
|
let path = outputs.path(OutputType::Mir);
|
||||||
let mut f = io::BufWriter::new(File::create(&path)?);
|
let mut f = io::BufWriter::new(File::create(&path)?);
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ use rustc_hir::def_id::{DefId, LocalDefId};
|
|||||||
use rustc_hir::intravisit::{self, NestedVisitorMap, Visitor};
|
use rustc_hir::intravisit::{self, NestedVisitorMap, Visitor};
|
||||||
use rustc_index::vec::IndexVec;
|
use rustc_index::vec::IndexVec;
|
||||||
use rustc_middle::mir::visit::Visitor as _;
|
use rustc_middle::mir::visit::Visitor as _;
|
||||||
use rustc_middle::mir::{traversal, Body, ConstQualifs, MirPhase, Promoted};
|
use rustc_middle::mir::{dump_mir, traversal, Body, ConstQualifs, MirPhase, Promoted};
|
||||||
use rustc_middle::ty::query::Providers;
|
use rustc_middle::ty::query::Providers;
|
||||||
use rustc_middle::ty::{self, TyCtxt, TypeFoldable};
|
use rustc_middle::ty::{self, TyCtxt, TypeFoldable};
|
||||||
use rustc_span::{Span, Symbol};
|
use rustc_span::{Span, Symbol};
|
||||||
@@ -188,12 +188,14 @@ fn run_passes(
|
|||||||
let mut index = 0;
|
let mut index = 0;
|
||||||
let mut run_pass = |pass: &dyn MirPass<'tcx>| {
|
let mut run_pass = |pass: &dyn MirPass<'tcx>| {
|
||||||
let run_hooks = |body: &_, index, is_after| {
|
let run_hooks = |body: &_, index, is_after| {
|
||||||
dump_mir::on_mir_pass(
|
let disambiguator = if is_after { "after" } else { "before" };
|
||||||
|
dump_mir(
|
||||||
tcx,
|
tcx,
|
||||||
&format_args!("{:03}-{:03}", phase_index, index),
|
Some(&format_args!("{:03}-{:03}", phase_index, index)),
|
||||||
&pass.name(),
|
&pass.name(),
|
||||||
|
&disambiguator,
|
||||||
body,
|
body,
|
||||||
is_after,
|
|_, _| Ok(()),
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
run_hooks(body, index, false);
|
run_hooks(body, index, false);
|
||||||
|
|||||||
Reference in New Issue
Block a user