aboutsummaryrefslogtreecommitdiff
path: root/gcc/flow.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/flow.c')
-rw-r--r--gcc/flow.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/flow.c b/gcc/flow.c
index 96bc865..0325300 100644
--- a/gcc/flow.c
+++ b/gcc/flow.c
@@ -1633,6 +1633,7 @@ propagate_one_insn (pbi, insn)
;
else
{
+ rtx note;
/* Any regs live at the time of a call instruction must not go
in a register clobbered by calls. Find all regs now live and
record this for them. */
@@ -1688,6 +1689,10 @@ propagate_one_insn (pbi, insn)
/* Record uses. */
if (! insn_is_dead)
mark_used_regs (pbi, PATTERN (insn), NULL_RTX, insn);
+ if ((flags & PROP_EQUAL_NOTES)
+ && ((note = find_reg_note (insn, REG_EQUAL, NULL_RTX))
+ || (note = find_reg_note (insn, REG_EQUIV, NULL_RTX))))
+ mark_used_regs (pbi, XEXP (note, 0), NULL_RTX, insn);
/* Sometimes we may have inserted something before INSN (such as a move)
when we make an auto-inc. So ensure we will scan those insns. */
@@ -3616,6 +3621,8 @@ mark_used_regs (pbi, x, cond, insn)
int flags = pbi->flags;
retry:
+ if (!x)
+ return;
code = GET_CODE (x);
switch (code)
{