http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51505
--- Comment #9 from Andrey Belevantsev <abel at gcc dot gnu.org> 2012-01-18 09:46:41 UTC --- This seems like an overkill as we only need to remove a single vector. The below helper looks enough: +/* Remove the EQ_USES vector for INSN assuming it exists. */ +void +df_ref_remove_eq_uses (rtx insn) +{ + struct df_insn_info *insn_info = DF_INSN_UID_GET (INSN_UID (insn)); + df_mw_hardreg_chain_delete_eq_uses (insn_info); + df_ref_chain_delete (insn_info->eq_uses); + insn_info->eq_uses = df_null_ref_rec; +} + The patch then just calls this after killing a note.