aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2025-01-20 14:25:31 +0100
committerRichard Biener <rguenth@gcc.gnu.org>2025-01-20 15:48:48 +0100
commit7b64f757a8df8efd989000baa667279f8957442e (patch)
tree4b004aa55356c948671c2233e1bdca777cd05c8b
parent10e98638998745ebc3888a20e661a8364e88ea3a (diff)
downloadgcc-7b64f757a8df8efd989000baa667279f8957442e.zip
gcc-7b64f757a8df8efd989000baa667279f8957442e.tar.gz
gcc-7b64f757a8df8efd989000baa667279f8957442e.tar.bz2
tree-optimization/117875 - missed SLP vectorization
There's a discrepancy in SLP vs non-SLP vectorization that SLP build does not handle plain SSA copies (which should have been elimiated earlier). But this now bites back since non-SLP happily handles them, causing a regression with --param vect-force-slp=1 which is now default, resulting in a big performance regression in 456.hmmer. So the following restores parity between SLP and non-SLP here, defering the missed copy elimination to later (PR118565). PR tree-optimization/117875 * tree-vect-slp.cc (vect_build_slp_tree_1): Handle SSA copies.
-rw-r--r--gcc/tree-vect-slp.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/tree-vect-slp.cc b/gcc/tree-vect-slp.cc
index 1d8e62e..5d9a206 100644
--- a/gcc/tree-vect-slp.cc
+++ b/gcc/tree-vect-slp.cc
@@ -1522,7 +1522,8 @@ vect_build_slp_tree_1 (vec_info *vinfo, unsigned char *swap,
&& TREE_CODE_CLASS (tree_code (rhs_code)) != tcc_comparison
&& rhs_code != VIEW_CONVERT_EXPR
&& rhs_code != CALL_EXPR
- && rhs_code != BIT_FIELD_REF)
+ && rhs_code != BIT_FIELD_REF
+ && rhs_code != SSA_NAME)
{
if (dump_enabled_p ())
dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,