> Am 23.01.2025 um 19:32 schrieb Jakub Jelinek <ja...@redhat.com>:
> 
> Hi!
> 
> vectorizable_{store,load} does roughly
>      tree offvar;
>      tree running_off;
>      if (!costing_p)
>    {
>      ... initialize offvar ...
>    }
>      running_off = offvar;
>      for (...)
>    {
>      if (costing_p)
>        {
>          ...
>          continue;
>        }
>      ... use running_off ...
>    }
> so, it copies unconditionally sometimes uninitialized variable (but then
> uses the copied variable only if it was set to something initialized).
> Still, I think it is better to avoid copying around maybe uninitialized
> vars.
> 
> Fixed thusly, bootstrapped/regtested on x86_64-linux and i686-linux, ok for
> trunk?

Ok

Richard 

> 2025-01-23  Jakub Jelinek  <ja...@redhat.com>
> 
>    PR tree-optimization/118628
>    * tree-vect-stmts.cc (vectorizable_store, vectorizable_load):
>    Initialize offvar to NULL_TREE.
> 
> --- gcc/tree-vect-stmts.cc.jj    2025-01-23 11:10:48.357722650 +0100
> +++ gcc/tree-vect-stmts.cc    2025-01-23 13:24:23.200875907 +0100
> @@ -8645,7 +8645,7 @@ vectorizable_store (vec_info *vinfo,
>       gimple_stmt_iterator incr_gsi;
>       bool insert_after;
>       gimple *incr;
> -      tree offvar;
> +      tree offvar = NULL_TREE;
>       tree ivstep;
>       tree running_off;
>       tree stride_base, stride_step, alias_off;
> @@ -10603,7 +10603,7 @@ vectorizable_load (vec_info *vinfo,
>     {
>       gimple_stmt_iterator incr_gsi;
>       bool insert_after;
> -      tree offvar;
> +      tree offvar = NULL_TREE;
>       tree ivstep;
>       tree running_off;
>       vec<constructor_elt, va_gc> *v = NULL;
> 
>    Jakub
> 

Reply via email to