http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49308
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |ASSIGNED Last reconfirmed| |2011.06.07 09:10:25 AssignedTo|unassigned at gcc dot |jakub at gcc dot gnu.org |gnu.org | Ever Confirmed|0 |1 --- Comment #8 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-06-07 09:10:25 UTC --- --- dce.c.jj 2011-06-06 19:07:08.000000000 +0200 +++ dce.c 2011-06-07 11:08:12.000000000 +0200 @@ -514,11 +514,11 @@ reset_unmarked_insns_debug_uses (void) struct df_link *defs; for (defs = DF_REF_CHAIN (use); defs; defs = defs->next) { - rtx insn; + rtx ref_insn; if (DF_REF_IS_ARTIFICIAL (defs->ref)) continue; - insn = DF_REF_INSN (defs->ref); - if (!marked_insn_p (insn)) + ref_insn = DF_REF_INSN (defs->ref); + if (!marked_insn_p (ref_insn)) break; } if (!defs) @@ -527,6 +527,7 @@ reset_unmarked_insns_debug_uses (void) each of the DEFs? */ INSN_VAR_LOCATION_LOC (insn) = gen_rtx_UNKNOWN_VAR_LOC (); df_insn_rescan_debug_internal (insn); + break; } } } When we reset/rescan the debug insn, obviously no further testing of that insn is needed and more importantly the old df info isn't valid any longer.