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 <[email protected]>
---
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 c4e05966924..faecab6ab7a 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
--
2.43.0