@@ -583,24 +583,25 @@ fn run_optimization_passes<'tcx>(tcx: TyCtxt<'tcx>, body: &mut Body<'tcx>) {
583
583
& multiple_return_terminators:: MultipleReturnTerminators ,
584
584
& instsimplify:: InstSimplify ,
585
585
& simplify:: SimplifyLocals :: BeforeConstProp ,
586
- & copy_prop:: CopyProp ,
586
+ & dead_store_elimination:: DeadStoreElimination :: Initial ,
587
+ & gvn:: GVN ,
588
+ & simplify:: SimplifyLocals :: AfterGVN ,
587
589
// Perform `SeparateConstSwitch` after SSA-based analyses, as cloning blocks may
588
590
// destroy the SSA property. It should still happen before const-propagation, so the
589
591
// latter pass will leverage the created opportunities.
590
592
& separate_const_switch:: SeparateConstSwitch ,
591
- & gvn:: GVN ,
592
- & simplify:: SimplifyLocals :: AfterGVN ,
593
593
& dataflow_const_prop:: DataflowConstProp ,
594
594
& const_debuginfo:: ConstDebugInfo ,
595
595
& o1 ( simplify_branches:: SimplifyConstCondition :: AfterConstProp ) ,
596
596
& jump_threading:: JumpThreading ,
597
597
& early_otherwise_branch:: EarlyOtherwiseBranch ,
598
598
& simplify_comparison_integral:: SimplifyComparisonIntegral ,
599
- & dead_store_elimination:: DeadStoreElimination ,
600
599
& dest_prop:: DestinationPropagation ,
601
600
& o1 ( simplify_branches:: SimplifyConstCondition :: Final ) ,
602
601
& o1 ( remove_noop_landing_pads:: RemoveNoopLandingPads ) ,
603
602
& o1 ( simplify:: SimplifyCfg :: Final ) ,
603
+ & copy_prop:: CopyProp ,
604
+ & dead_store_elimination:: DeadStoreElimination :: Final ,
604
605
& nrvo:: RenameReturnPlace ,
605
606
& simplify:: SimplifyLocals :: Final ,
606
607
& multiple_return_terminators:: MultipleReturnTerminators ,
0 commit comments