[Bug middle-end/80815] wrong code because of broken runtime alias check in vectorizer
amker at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri May 19 11:14:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80815
--- Comment #3 from amker at gcc dot gnu.org ---
(In reply to rguenther@suse.de from comment #2)
> On Fri, 19 May 2017, amker at gcc dot gnu.org wrote:
>
> > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80815
> >
> > --- Comment #1 from amker at gcc dot gnu.org ---
> > GCC uses vect_factor as minimal segment length for dr_b when merging alias
> > pairs, I think it could be relaxed to vect_factor * abs (DR_STEP (dr_b)).
> > Below test shows this change can merge additional alias checks:
>
> But it would make cases aliasing that are not (that's always a trade off
> between more precise result and less runtime checking).
Hmm, it only does compilation time (and still conservative) check if segment
dr_b resides in the gap between dr_a1 and dr_a2. the overall effect would be
equal to checking <dr_a1, dr_b>, <gap_segment, dr_b> and <dr_a2, dr_b>?
More information about the Gcc-bugs
mailing list