https://gcc.gnu.org/g:69bcf1d6aa52a531f7bc4976e407325fe9742cf6

commit r16-342-g69bcf1d6aa52a531f7bc4976e407325fe9742cf6
Author: Andrew Pinski <quic_apin...@quicinc.com>
Date:   Thu May 1 09:05:47 2025 -0700

    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_apin...@quicinc.com>

Diff:
---
 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 80c2d31776bb..3c68361870bf 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 42b6059520ac..537ae6c2f614 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)

Reply via email to