This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/54132] [4.8 Regression] Incorrect loop transformation with -ftree-loop-distribute-patterns
- From: "rguenth at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 31 Jul 2012 09:30:57 +0000
- Subject: [Bug tree-optimization/54132] [4.8 Regression] Incorrect loop transformation with -ftree-loop-distribute-patterns
- Auto-submitted: auto-generated
- References: <bug-54132-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54132
Richard Guenther <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |ASSIGNED
Keywords| |wrong-code
Last reconfirmed| |2012-07-31
Ever Confirmed|0 |1
Summary|Incorrect loop |[4.8 Regression] Incorrect
|transformation with |loop transformation with
|-ftree-loop-distribute-patt |-ftree-loop-distribute-patt
|erns |erns
Target Milestone|--- |4.8.0
--- Comment #1 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-07-31 09:30:57 UTC ---
Mine. It seems indeed wrong to ever generate memmove from a loop with
possibly aliasing source / destination and a data dependency between source
and destination.
void foo(char *p, int n)
{
int i;
for (i = 1; i < n; i++)
p[i-1] = p[i];
}
would be a memmove (no data dependence).