diff options
author | Jan Hubicka <jh@suse.cz> | 2002-01-25 20:46:43 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2002-01-25 19:46:43 +0000 |
commit | 5a133afd40b3a39a7d19ac1204d8d9849f671444 (patch) | |
tree | e0c0962c279aea5a858138daa5832989b12e2bf6 /gcc/flow.c | |
parent | 3d8dd3c05117db6bb03971f0c4034833416e180b (diff) | |
download | gcc-5a133afd40b3a39a7d19ac1204d8d9849f671444.tar.gz |
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.c | 7 |
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) { |