On Fri, May 2, 2025 at 2:01 AM Andrew Pinski <pins...@gmail.com> wrote:
>
> On Thu, May 1, 2025 at 4:28 PM Andrew Pinski <quic_apin...@quicinc.com> wrote:
> >
> > 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):
>
> Whoops I messed up the changelog:
> * tree-vect-generic.cc (expand_vector_conversion): Have 2 elements as
> internal storage for converts.
> * tree-vect-stmts.cc (vectorizable_conversion): Likewise.

OK with that fix.

Richard.

>
> >
> > 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