]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
vect: Use internal storage for converts for call into supportable_indirect_convert_op...
authorAndrew Pinski <quic_apinski@quicinc.com>
Thu, 1 May 2025 16:05:47 +0000 (09:05 -0700)
committerAndrew Pinski <quic_apinski@quicinc.com>
Fri, 2 May 2025 06:49:36 +0000 (23:49 -0700)
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>
gcc/tree-vect-generic.cc
gcc/tree-vect-stmts.cc

index 80c2d31776bb3c05001197733093aedc3f77cfa7..3c68361870bf26e5f074040acd484a5e32196b32 100644 (file)
@@ -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))
     {
index 42b6059520ac55493685ae719cf24eba082b0840..537ae6c2f61484f42f09d614e8213730023a0802 100644 (file)
@@ -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)