diff --git a/src/librustc_mir/transform/mod.rs b/src/librustc_mir/transform/mod.rs index 0cd2cecf39c03..8df0d72407b79 100644 --- a/src/librustc_mir/transform/mod.rs +++ b/src/librustc_mir/transform/mod.rs @@ -285,6 +285,7 @@ fn optimized_mir<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, def_id: DefId) -> &'tcx &simplify_branches::SimplifyBranches::new("after-const-prop"), &deaggregator::Deaggregator, ©_prop::CopyPropagation, + &simplify_branches::SimplifyBranches::new("after-copy-prop"), &remove_noop_landing_pads::RemoveNoopLandingPads, &simplify::SimplifyCfg::new("final"), &simplify::SimplifyLocals, diff --git a/src/test/mir-opt/simplify_match.rs b/src/test/mir-opt/simplify_match.rs new file mode 100644 index 0000000000000..0192aa01d0188 --- /dev/null +++ b/src/test/mir-opt/simplify_match.rs @@ -0,0 +1,22 @@ +fn main() { + match { let x = false; x } { + true => println!("hello world!"), + false => {}, + } +} + +// END RUST SOURCE +// START rustc.main.SimplifyBranches-after-copy-prop.before.mir +// bb0: { +// ... +// switchInt(const false) -> [false: bb3, otherwise: bb1]; +// } +// bb1: { +// END rustc.main.SimplifyBranches-after-copy-prop.before.mir +// START rustc.main.SimplifyBranches-after-copy-prop.after.mir +// bb0: { +// ... +// goto -> bb3; +// } +// bb1: { +// END rustc.main.SimplifyBranches-after-copy-prop.after.mir