http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50183
--- Comment #8 from William J. Schmidt <wschmidt at gcc dot gnu.org> 2011-09-12 20:15:59 UTC --- Previous comment is incorrect. The statement: # err2.395_571 = PHI <err2.395_561(43)> is the close_phi for the outer loop, while: # err2.395_561 = PHI <err2.395_219(41)> is the close_phi for the inner loop. Deleting the second one is fine under the assumption that the first one will become dead code after an assignment to err2.395_571 is introduced following it. However, somewhere along the way the LHS of the first one was replaced, and that assumption no longer holds. Continuing to dig.