OSDN Git Service
(root)
/
pf3gnuchains
/
gcc-fork.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix long line
[pf3gnuchains/gcc-fork.git]
/
gcc
/
regcprop.c
diff --git
a/gcc/regcprop.c
b/gcc/regcprop.c
index
039c8b0
..
0f0dfb3
100644
(file)
--- a/
gcc/regcprop.c
+++ b/
gcc/regcprop.c
@@
-34,7
+34,7
@@
#include "function.h"
#include "recog.h"
#include "flags.h"
#include "function.h"
#include "recog.h"
#include "flags.h"
-#include "
toplev
.h"
+#include "
diagnostic-core
.h"
#include "obstack.h"
#include "timevar.h"
#include "tree-pass.h"
#include "obstack.h"
#include "timevar.h"
#include "tree-pass.h"
@@
-457,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))
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)
new_rtx = maybe_mode_change (oldmode, vd->e[regno].mode, mode, i, regno);
if (new_rtx)
@@
-946,7
+946,14
@@
copyprop_hardreg_forward_1 (basic_block bb, struct value_data *vd)
did_replacement:
if (changed)
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))
/* Clobber call-clobbered registers. */
if (CALL_P (insn))