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