OSDN Git Service

PR testsuite/46230
[pf3gnuchains/gcc-fork.git] / gcc / regcprop.c
index c4a22be..0f0dfb3 100644 (file)
@@ -34,7 +34,6 @@
 #include "function.h"
 #include "recog.h"
 #include "flags.h"
-#include "toplev.h"
 #include "diagnostic-core.h"
 #include "obstack.h"
 #include "timevar.h"
@@ -458,7 +457,7 @@ find_oldest_value_reg (enum reg_class cl, rtx reg, struct value_data *vd)
       rtx new_rtx;
 
       if (!in_hard_reg_set_p (reg_class_contents[cl], mode, i))
-       return NULL_RTX;
+       continue;
 
       new_rtx = maybe_mode_change (oldmode, vd->e[regno].mode, mode, i, regno);
       if (new_rtx)
@@ -947,7 +946,14 @@ copyprop_hardreg_forward_1 (basic_block bb, struct value_data *vd)
 
     did_replacement:
       if (changed)
-       anything_changed = true;
+       {
+         anything_changed = true;
+
+         /* If something changed, perhaps further changes to earlier
+            DEBUG_INSNs can be applied.  */
+         if (vd->n_debug_insn_changes)
+           note_uses (&PATTERN (insn), cprop_find_used_regs, vd);
+       }
 
       /* Clobber call-clobbered registers.  */
       if (CALL_P (insn))