[Bug tree-optimization/37695] New: [alias-improvements-branch] can't alias a restrict pointer write and a local array read
dorit at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Wed Oct 1 14:21:00 GMT 2008
This happens in gcc.dg/vect/vect-42.c:
On the alias branch we can't tell that a write through a restrict pointer
(which is a function argument) does not overlap with reads from local
arrays. As a result we vectorize using loop-versioning controled by a
run-time aliasing test. This in turn forces us to handle misalignment using
loop-versioning (rather than peeling, cause right now we don't support
peeling combined with versioning, and these are the only ways we currently
support misaligned stores). Without the aliasing problem, the loop is
vectorized using peeling to align the store.
> "
> === vect_analyze_dependences ===
> vect-42.c:36: note: versioning for alias required: can't determine
> dependence between pb[i_59] and *D.2074_6
> vect-42.c:36: note: mark for run-time aliasing test between pb[i_59] and
> *D.2074_6
> vect-42.c:36: note: versioning for alias required: can't determine
> dependence between pc[i_59] and *D.2074_6
> vect-42.c:36: note: mark for run-time aliasing test between pc[i_59] and
> *D.2074_6
> ...
> vect-42.c:36: note: === vect_enhance_data_refs_alignment ===
> vect-42.c:36: note: Unknown misalignment, is_packed = 0
> vect-42.c:36: note: Alignment of access forced using versioning.
> vect-42.c:36: note: Versioning for alignment will be applied.
> "
--
Summary: [alias-improvements-branch] can't alias a restrict
pointer write and a local array read
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dorit at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37695
More information about the Gcc-bugs
mailing list