aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Pinski <quic_apinski@quicinc.com>2025-05-01 09:05:47 -0700
committerAndrew Pinski <quic_apinski@quicinc.com>2025-05-01 23:49:36 -0700
commit69bcf1d6aa52a531f7bc4976e407325fe9742cf6 (patch)
treedc35ff23a286153956596d9375ced9713db61b63
parentadefadda3e87f693f20f0b2b34bced00aa525207 (diff)
downloadgcc-69bcf1d6aa52a531f7bc4976e407325fe9742cf6.zip
gcc-69bcf1d6aa52a531f7bc4976e407325fe9742cf6.tar.gz
gcc-69bcf1d6aa52a531f7bc4976e407325fe9742cf6.tar.bz2
vect: Use internal storage for converts for call into supportable_indirect_convert_operation [PR118617]
While looking into PR 118616, I noticed that supportable_indirect_convert_operation only pushes up to 2 into its vec. And the 2 places which call supportable_indirect_convert_operation, use an auto_vec but without an internal storage. In this case an internal storage of 2 elements would save both memory and slight compile time performance. Bootstrapped and tested on x86_64-linux-gnu. PR tree-optimization/118617 gcc/ChangeLog: * tree-vect-generic.cc (expand_vector_conversion): Have 2 elements as internal storage for converts. * tree-vect-stmts.cc (vectorizable_conversion): Likewise. Signed-off-by: Andrew Pinski <quic_apinski@quicinc.com>
-rw-r--r--gcc/tree-vect-generic.cc2
-rw-r--r--gcc/tree-vect-stmts.cc2
2 files changed, 2 insertions, 2 deletions
diff --git a/gcc/tree-vect-generic.cc b/gcc/tree-vect-generic.cc
index 80c2d31..3c68361 100644
--- a/gcc/tree-vect-generic.cc
+++ b/gcc/tree-vect-generic.cc
@@ -1754,7 +1754,7 @@ expand_vector_conversion (gimple_stmt_iterator *gsi)
else if (ret_elt_bits > arg_elt_bits)
modifier = WIDEN;
- auto_vec<std::pair<tree, tree_code> > converts;
+ auto_vec<std::pair<tree, tree_code>, 2> converts;
if (supportable_indirect_convert_operation (code, ret_type, arg_type,
converts))
{
diff --git a/gcc/tree-vect-stmts.cc b/gcc/tree-vect-stmts.cc
index 42b6059..537ae6c 100644
--- a/gcc/tree-vect-stmts.cc
+++ b/gcc/tree-vect-stmts.cc
@@ -5706,7 +5706,7 @@ vectorizable_conversion (vec_info *vinfo,
scalar_mode lhs_mode = SCALAR_TYPE_MODE (lhs_type);
scalar_mode rhs_mode = SCALAR_TYPE_MODE (rhs_type);
opt_scalar_mode rhs_mode_iter;
- auto_vec<std::pair<tree, tree_code> > converts;
+ auto_vec<std::pair<tree, tree_code>, 2> converts;
/* Supportable by target? */
switch (modifier)