------- Comment #4 from jakub at gcc dot gnu dot org 2010-02-23 17:36 ------- Regarding 2), the regcprop pass doesn't call df_analyze at all, so it can't rely on REG_DEAD notes nor use df_* APIs to check for life info. I'm not 100% sure why we are propagating into debug insns at all, guess to have them correct if all other occurrences in real insns are changed too by this pass. Unfortunately, when processing a DEBUG_INSN, we don't know yet whether a later real insn will extend the lifetime of that register or not. Perhaps for DEBUG_INSNs instead of doing the changes immediately we could just chain the { insn, from, to } triplet for DEBUG_INSN into the value_data_entry structure, and when we change a reg in some real insn to the same new reg, walk this queue and change the DEBUG_INSNs too.
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43150