https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102178
--- Comment #3 from Martin Jambor <jamborm at gcc dot gnu.org> --- (In reply to Richard Biener from comment #1) > Martin, maybe you can try moving late sink to before the last phiopt pass. If you mean the following then unfortunately that has not helped. diff --git a/gcc/passes.def b/gcc/passes.def index d7a1f8c97a6..5eb70cd2cd8 100644 --- a/gcc/passes.def +++ b/gcc/passes.def @@ -347,10 +347,10 @@ along with GCC; see the file COPYING3. If not see /* After late CD DCE we rewrite no longer addressed locals into SSA form if possible. */ NEXT_PASS (pass_forwprop); + NEXT_PASS (pass_sink_code); NEXT_PASS (pass_phiopt, false /* early_p */); NEXT_PASS (pass_fold_builtins); NEXT_PASS (pass_optimize_widening_mul); - NEXT_PASS (pass_sink_code); NEXT_PASS (pass_store_merging); NEXT_PASS (pass_tail_calls); /* If DCE is not run before checking for uninitialized uses, ...I'll have a very brief look at what is actually happening just so that I have more reasons to believe this is not a code placement issue again.