This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/52028] [4.7 Regression] wrong code with -O2 -ftree-loop-distribution
- 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: Mon, 30 Jan 2012 14:16:51 +0000
- Subject: [Bug tree-optimization/52028] [4.7 Regression] wrong code with -O2 -ftree-loop-distribution
- Auto-submitted: auto-generated
- References: <bug-52028-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52028
--- Comment #5 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-01-30 14:16:51 UTC ---
Virtual SSA form is corrupt (and we don't detect that - bah).
<bb 3>:
# .MEM_723 = PHI <.MEM_666(3), .MEM_661(D)(2)>
# ivtmp.297_722 = PHI <ivtmp.297_648(3), ivtmp.297_1354(2)>
D.2523_1353 = (void *) ivtmp.297_722;
# .MEM_666 = VDEF <.MEM_723>
MEM[base: D.2523_1353, offset: 0B] = 0;
ivtmp.297_648 = ivtmp.297_722 + 4;
if (ivtmp.297_648 != D.2525_653)
goto <bb 3>;
else
goto <bb 4>;
<bb 4>:
...
<bb 5>:
# K_1035 = PHI <&MEM[(void *)&k + 64B](5), &k(4)>
# .MEM_703 = PHI <.MEM_562(5), .MEM_666(4)>
...
# .MEM_562 = VDEF <.MEM_561>
MEM[(unsigned int *)K_1035 + 52B] = pretmp.262_1186;
D.1989_556 = D.1916_553 + 512;
D.1990_563 = D.1989_556 * 4;
D.1991_566 = &CAST_S_table + D.1990_563;
# VUSE <.MEM_562>
D.1992_567 = *D.1991_566;
if (&k != K_1035)
goto <bb 6>;
else
goto <bb 5>;
<bb 6>:
K_1352 = &k;
X$0_719 = 0;
<bb 7>:
# K_1147 = PHI <&k(6), &MEM[(void *)&k + 64B](7)>
# .MEM_1141 = PHI <.MEM_666(6), .MEM_1343(7)>
...
We have overlapping life-ranges for .MEM_666 and .MEM_562 (at least).
I have a patch.