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):
        * tree-vect-stmts.cc (vectorizable_conversion):

Signed-off-by: Andrew Pinski <quic_apin...@quicinc.com>
---
 gcc/tree-vect-generic.cc | 2 +-
 gcc/tree-vect-stmts.cc   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/gcc/tree-vect-generic.cc b/gcc/tree-vect-generic.cc
index 80c2d31776b..3c68361870b 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 42b6059520a..537ae6c2f61 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)
-- 
2.43.0

Reply via email to