[backport gcc-4.7/trunk r178109 ] From: Richard Sandiford Subject: Passes uses rather than defs to df_set_dead_notes_for_mw Date: Fri, 26 Aug 2011 14:54:12 +0100 List-Archive: As described here: http://gcc.gnu.org/ml/gcc/2011-08/msg00294.html df is currently failing to create REG_DEAD notes for the last use of a multi-reg hard register. This appears to be a typo: df_set_dead_notes_for_mw is supposed to handle uses, and the comment above it says so, but df_note_bb_compute is passing defs instead. Bootstrapped & regression-tested on x86_64-linux-gnu. OK to install? Richard gcc/ 2011-08-26 Richard Sandiford * df-problems.c (df_note_bb_compute): Pass uses rather than defs to df_set_dead_notes_for_mw. --- gcc-4.6.2/gcc/df-problems.c.~1~ 2011-07-07 21:10:01.000000000 +0200 +++ gcc-4.6.2/gcc/df-problems.c 2011-12-27 13:04:09.000000000 +0100 @@ -3375,7 +3375,7 @@ df_note_bb_compute (unsigned int bb_inde while (*mws_rec) { struct df_mw_hardreg *mws = *mws_rec; - if ((DF_MWS_REG_DEF_P (mws)) + if (DF_MWS_REG_USE_P (mws) && !df_ignore_stack_reg (mws->start_regno)) { bool really_add_notes = debug_insn != 0;