]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
cselim: Move else_vdef definition to the usage
authorAndrew Pinski <quic_apinski@quicinc.com>
Sun, 8 Jun 2025 20:01:41 +0000 (13:01 -0700)
committerAndrew Pinski <quic_apinski@quicinc.com>
Sun, 8 Jun 2025 20:10:13 +0000 (13:10 -0700)
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_apinski@quicinc.com>
gcc/tree-ssa-phiopt.cc

index c4e05966924f2909fd72b637e42a76448ed9e3ad..faecab6ab7aa02a7625dd815c08b85ed733917b2 100644 (file)
@@ -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