Skip to content

Commit 18f27f4

Browse files
committed
SimplifyConstCondition: Run again after CopyProp
1 parent 4794e41 commit 18f27f4

File tree

2 files changed

+4
-1
lines changed

2 files changed

+4
-1
lines changed

compiler/rustc_mir_transform/src/lib.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -610,10 +610,11 @@ fn run_optimization_passes<'tcx>(tcx: TyCtxt<'tcx>, body: &mut Body<'tcx>) {
610610
&early_otherwise_branch::EarlyOtherwiseBranch,
611611
&simplify_comparison_integral::SimplifyComparisonIntegral,
612612
&dest_prop::DestinationPropagation,
613-
&o1(simplify_branches::SimplifyConstCondition::Final),
613+
&o1(simplify_branches::SimplifyConstCondition::AfterDestProp),
614614
&o1(remove_noop_landing_pads::RemoveNoopLandingPads),
615615
&o1(simplify::SimplifyCfg::Final),
616616
&copy_prop::CopyProp,
617+
&o1(simplify_branches::SimplifyConstCondition::Final),
617618
&dead_store_elimination::DeadStoreElimination::Final,
618619
&nrvo::RenameReturnPlace,
619620
&simplify::SimplifyLocals::Final,

compiler/rustc_mir_transform/src/simplify_branches.rs

+2
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,15 @@ use rustc_middle::ty::TyCtxt;
33

44
pub enum SimplifyConstCondition {
55
AfterConstProp,
6+
AfterDestProp,
67
Final,
78
}
89
/// A pass that replaces a branch with a goto when its condition is known.
910
impl<'tcx> MirPass<'tcx> for SimplifyConstCondition {
1011
fn name(&self) -> &'static str {
1112
match self {
1213
SimplifyConstCondition::AfterConstProp => "SimplifyConstCondition-after-const-prop",
14+
SimplifyConstCondition::AfterDestProp => "SimplifyConstCondition-after-dest-prop",
1315
SimplifyConstCondition::Final => "SimplifyConstCondition-final",
1416
}
1517
}

0 commit comments

Comments
 (0)