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

--- Comment #19 from Richard Biener <rguenth at gcc dot gnu.org> ---
But note that {0, +, 3 } and {2, + , 3} with size 2 will still eventually
overlap.  See dr_analyze_indices where we attempt to make DR_INIT a
multiple of the element size (probably also not a perfect solution).

In the end representing the access function for the pointer with byte
granularity is a mistake and it should be translated to be based on
the access size.  That of course makes a byte step of 3 with an access
size of 2 not representable (but it avoids these kind of issues).

The other possibility is to filter the remaining problematic cases
during dependence analysis itself where we see both DR_INITs.  As said
the index based dependence analysis doesn't know about such thing as
partial element overlaps.

For the PR at hand your patch looks reasonable, but I think there's
a problem in how we handle the pointer-based access functions.

Reply via email to