[Bug tree-optimization/70729] Loop marked with omp simd pragma is not vectorized
rguenther at suse dot de
gcc-bugzilla@gcc.gnu.org
Wed Apr 20 10:02:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729
--- Comment #7 from rguenther at suse dot de <rguenther at suse dot de> ---
On Tue, 19 Apr 2016, ienkovich at gcc dot gnu.org wrote:
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729
>
> Ilya Enkovich <ienkovich at gcc dot gnu.org> changed:
>
> What |Removed |Added
> ----------------------------------------------------------------------------
> CC| |ienkovich at gcc dot gnu.org
>
> --- Comment #5 from Ilya Enkovich <ienkovich at gcc dot gnu.org> ---
> (In reply to Richard Biener from comment #2)
> > Index: gcc/tree-ssa-loop-im.c
> > ===================================================================
> > --- gcc/tree-ssa-loop-im.c (revision 235201)
> > +++ gcc/tree-ssa-loop-im.c (working copy)
> > @@ -2198,6 +2198,9 @@ ref_indep_loop_p (struct loop *loop, im_
> > {
> > gcc_checking_assert (MEM_ANALYZABLE (ref));
> >
> > + if (loop->safelen == INT_MAX)
> > + return true;
> > +
> > return ref_indep_loop_p_2 (loop, ref, false);
> > }
> >
> >
> > fixes this. But better abstract loop->safelen == INT_MAX into a predicate
> > in cfgloop.h.
> >
>
> I believe any nonzero value should be good enough.
Any positive value I suppose. But yes, if the reference address
is invariant then if safelen is > 0 it doesn't conflict with any
iteration.
I will test a patch.
More information about the Gcc-bugs
mailing list