https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729

--- Comment #26 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Yuri Rumyantsev from comment #25)
> Created attachment 38684 [details]
> patch.2
> 
> Richard!
> 
> I prepared the second part of patch and checked that it does not
> produce any new failures.
> What is your opinion - could I send it to GCC community for review?

Instead of marking ->aux when seeing unanalyzed memory references simply
put the check after

static bool
ref_indep_loop_p_1 (struct loop *loop, im_mem_ref *ref, bool stored_p)
{
  bitmap refs_to_check;
  unsigned i;
  bitmap_iterator bi;
  im_mem_ref *aref;

  if (stored_p)
    refs_to_check = &memory_accesses.refs_in_loop[loop->num];
  else
    refs_to_check = &memory_accesses.refs_stored_in_loop[loop->num];

  if (bitmap_bit_p (refs_to_check, UNANALYZABLE_MEM_ID))
    return false;


The tree-vect-loop.c change looks good but please expand the comment to say
why safelen is no longer valid after successful vectorization.

Reply via email to