http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49782
Summary: Missed optimization due to dependency analysis Product: gcc Version: 4.7.0 Status: UNCONFIRMED Keywords: wrong-code Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassig...@gcc.gnu.org ReportedBy: ja...@gcc.gnu.org CC: ja...@gcc.gnu.org, i...@il.ibm.com, rsand...@gcc.gnu.org, zso...@seznam.cz Depends on: 49771 Host: x86_64-pc-linux-gnu Target: x86_64-pc-linux-gnu In the pr49771.c testcase: static int a[1000]; int foo (void) { int j; int i; for (i = 0; i < 1000; i++) for (j = 0; j < 1000; j++) a[j] = a[i] + 1; return a[0]; } the dependency analysis doesn't figure out that a[i] for any i between 0 and 999 (but due to size of the array for any i) always overlaps the a[j] from 0 to 999.