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.