https://gcc.gnu.org/g:31b724864467d82888994b15b266c53db3f991d6
commit r16-1286-g31b724864467d82888994b15b266c53db3f991d6 Author: Andrew Pinski <quic_apin...@quicinc.com> Date: Sun Jun 8 13:01:41 2025 -0700 cselim: Move else_vdef definition to the usage This is based on the review of cond_if_else_store_replacement_limited (https://gcc.gnu.org/pipermail/gcc-patches/2025-June/686076.html). Moves else_vdef definition/assignment to be next to the usage in single_trailing_store_in_bb. Pushed as obvious after test on x86_64-linux-gnu. gcc/ChangeLog: * tree-ssa-phiopt.cc (cond_if_else_store_replacement): Move definitin of else_vdef to right before the usage. Reformat slightly. Signed-off-by: Andrew Pinski <quic_apin...@quicinc.com> Diff: --- gcc/tree-ssa-phiopt.cc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/gcc/tree-ssa-phiopt.cc b/gcc/tree-ssa-phiopt.cc index c4e05966924f..faecab6ab7aa 100644 --- a/gcc/tree-ssa-phiopt.cc +++ b/gcc/tree-ssa-phiopt.cc @@ -3823,14 +3823,16 @@ cond_if_else_store_replacement (basic_block then_bb, basic_block else_bb, if (!vphi) return false; tree then_vdef = PHI_ARG_DEF_FROM_EDGE (vphi, single_succ_edge (then_bb)); - tree else_vdef = PHI_ARG_DEF_FROM_EDGE (vphi, single_succ_edge (else_bb)); gimple *then_assign = single_trailing_store_in_bb (then_bb, then_vdef, vphi); if (then_assign) { - gimple *else_assign = single_trailing_store_in_bb (else_bb, else_vdef, vphi); + tree else_vdef = PHI_ARG_DEF_FROM_EDGE (vphi, single_succ_edge (else_bb)); + gimple *else_assign = single_trailing_store_in_bb (else_bb, else_vdef, + vphi); if (else_assign) return cond_if_else_store_replacement_1 (then_bb, else_bb, join_bb, - then_assign, else_assign, vphi); + then_assign, else_assign, + vphi); } /* If either vectorization or if-conversion is disabled then do