http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47881
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-03-07 11:32:53 UTC --- Problems start when the combiner leaves in a trivially dead insn by substing it later on in some subsequent insn. Nothing until IRA calls delete_trivially_dead_insns, and when IRA calls it, it removes that insn, which effectively shortens the lifetime of one of the pseudos. Unfortunately that psuedo is set multiple times (probably -funroll-loops is the reason), so delete_trivially_dead_insns isn't trying to reset or change related debug insns, it doesn't have enough infrastructure to do so. Normally DF would then reset them, but DF isn't recomputed until IRA finishes.