On 9/26/19 9:32 AM, Richard Biener wrote:
> On Wed, Sep 25, 2019 at 12:06 PM Martin Liška <mli...@suse.cz> wrote:
>>
>> Hi.
>>
>> Similarly to SLP pass, we should probably set TODO_update_ssa
>> when a SLP BB vectorization happens from the normal vect pass.
>>
>> Patch can bootstrap on x86_64-linux-gnu and survives regression tests.
>>
>> Ready to be installed?
> 
> Hmm, this was supposed to be handled by
> 
>   if (num_vectorized_loops > 0)
>     {
>       /* If we vectorized any loop only virtual SSA form needs to be updated.
>          ???  Also while we try hard to update loop-closed SSA form we fail
>          to properly do this in some corner-cases (see PR56286).  */
>       rewrite_into_loop_closed_ssa (NULL, TODO_update_ssa_only_virtuals);
>       return TODO_cleanup_cfg;
>     }
> 
> but there isn't an equivalent of num_vectorized_bbs here.  Given the above
> effectively short-cuts your patch (all paths only ever set ret =
> TODO_cleanup_cfg
> right now...) it will work without pessimizing things by running
> update-ssa twice.
> 
> Can you check whether TODO_update_ssa_only_virtuals is enough as a fix?

Yes, it's enough.

> 
> Otherwise OK.

I'm going to install the patch then.

Martin

> 
> Thanks,
> Richard.
> 
>> Thanks,
>> Martin
>>
>> gcc/ChangeLog:
>>
>> 2019-09-25  Martin Liska  <mli...@suse.cz>
>>
>>         PR tree-optimization/91885
>>         * tree-vectorizer.c (try_vectorize_loop_1):
>>         Add TODO_update_ssa similarly to what slp
>>         pass does.
>>
>> gcc/testsuite/ChangeLog:
>>
>> 2019-09-25  Martin Liska  <mli...@suse.cz>
>>
>>         PR tree-optimization/91885
>>         * gcc.dg/pr91885.c: New test.
>> ---
>>  gcc/testsuite/gcc.dg/pr91885.c | 47 ++++++++++++++++++++++++++++++++++
>>  gcc/tree-vectorizer.c          |  2 +-
>>  2 files changed, 48 insertions(+), 1 deletion(-)
>>  create mode 100644 gcc/testsuite/gcc.dg/pr91885.c
>>
>>

Reply via email to