summaryrefslogtreecommitdiff
path: root/gcc/flow.c
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2002-01-25 19:46:43 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2002-01-25 19:46:43 +0000
commit992c71386830a8942978bc0ae0836a92072572eb (patch)
treee0c0962c279aea5a858138daa5832989b12e2bf6 /gcc/flow.c
parented0da988b9121d779d156d6027fc735854114bc2 (diff)
downloadgcc-992c71386830a8942978bc0ae0836a92072572eb.tar.gz
* df.c (df_ref_create, df_ref_record_1, df_ref_record): Kill BB argument.
* df.h (struct ref): Kill B. (DF_REF_BB, DF_REF_BBNO): Use BLOCK_FOR_INSN. * basic-block.h (PROP_EQUAL_NOTES): New flag. * flow.c (propagate_one_insn): Use it. (mark_used_regs): Handle NIL. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@49220 138bc75d-0d04-0410-961f-82ee72b054a4
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 96bc865c5bf..0325300197e 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)
{