aboutsummaryrefslogtreecommitdiff
path: root/gcc/flow.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2002-01-25 20:46:43 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2002-01-25 19:46:43 +0000
commit5a133afd40b3a39a7d19ac1204d8d9849f671444 (patch)
treee0c0962c279aea5a858138daa5832989b12e2bf6 /gcc/flow.c
parent3d8dd3c05117db6bb03971f0c4034833416e180b (diff)
downloadgcc-5a133afd40b3a39a7d19ac1204d8d9849f671444.zip
gcc-5a133afd40b3a39a7d19ac1204d8d9849f671444.tar.gz
gcc-5a133afd40b3a39a7d19ac1204d8d9849f671444.tar.bz2
df.c (df_ref_create, [...]): Kill BB argument.
* 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. From-SVN: r49220
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)
{