Add pass for simple phase change

This commit is contained in:
Dylan MacKenzie 2021-12-02 12:04:32 -08:00
parent fd18b45e11
commit fca642c1c3
2 changed files with 21 additions and 0 deletions

View file

@ -61,6 +61,7 @@ mod inline;
mod instcombine; mod instcombine;
mod lower_intrinsics; mod lower_intrinsics;
mod lower_slice_len; mod lower_slice_len;
mod marker;
mod match_branches; mod match_branches;
mod multiple_return_terminators; mod multiple_return_terminators;
mod normalize_array_len; mod normalize_array_len;

View file

@ -0,0 +1,20 @@
use std::borrow::Cow;
use crate::MirPass;
use rustc_middle::mir::{Body, MirPhase};
use rustc_middle::ty::TyCtxt;
/// Changes the MIR phase without changing the MIR itself.
pub struct PhaseChange(pub MirPhase);
impl<'tcx> MirPass<'tcx> for PhaseChange {
fn phase_change(&self) -> Option<MirPhase> {
Some(self.0)
}
fn name(&self) -> Cow<'_, str> {
Cow::from(format!("PhaseChange-{:?}", self.0))
}
fn run_pass(&self, _: TyCtxt<'tcx>, _body: &mut Body<'tcx>) {}
}