diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-01-25 19:46:43 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-01-25 19:46:43 +0000 |
commit | 992c71386830a8942978bc0ae0836a92072572eb (patch) | |
tree | e0c0962c279aea5a858138daa5832989b12e2bf6 /gcc/flow.c | |
parent | ed0da988b9121d779d156d6027fc735854114bc2 (diff) | |
download | gcc-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.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) { |