diff options
author | Richard Kenner <kenner@vlsi1.ultra.nyu.edu> | 2000-05-19 22:27:28 +0000 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 2000-05-19 18:27:28 -0400 |
commit | efc9bd412d3e48467658e5e8c5905669f160dc82 (patch) | |
tree | 8f88314b754c91c4f21319edf9d007c274a0a151 /gcc/alias.c | |
parent | c280e37af477f21bc3503b2ae3598118d58be01e (diff) | |
download | gcc-efc9bd412d3e48467658e5e8c5905669f160dc82.zip gcc-efc9bd412d3e48467658e5e8c5905669f160dc82.tar.gz gcc-efc9bd412d3e48467658e5e8c5905669f160dc82.tar.bz2 |
cse.c (cse_basic_block): Only call find_reg_note if REG_NOTES not 0.
* cse.c (cse_basic_block): Only call find_reg_note if REG_NOTES not 0.
* reload.c (find_equiv_reg): Likewise.
* alias.c (init_alias_analysis): Likewise.
Only call prologue_epilogue_contains on insns.
* basic-block.h (REG_SET_TO_HARD_REG_SET): Call new function.
* bb-reorder.c (hard-reg-set.h): Include earlier.
* haifa-sched.c (hard-reg-set.h): Likewise.
* ifcvt.c (hard-reg-set.h): Likewise.
* local-alloc.c (hard-reg-set.h): Likewise.
* loop.c (hard-reg-set.h): Likewise.
* predict.c (hard-reg-set.h): Likewise.
* regrename.c (hard-reg-set.h): Likewise.
* flow.c (hard-reg-set.h): Likewise.
(reg_set_to_hard_reg_set): New function.
* bitmap.c (regs.h, basic-block.h): No longer include.
(bitmap.h): Now include.
* conflict.c (hard-reg-set.h): Include.
* profile.c (hard-reg-set.h): Likewise.
* print-rtl.c (hard-reg-set.h): Likewise.
* sbitmap.c (hard-reg-set.h): Likewise.
* toplev.c (hard-reg-set.h): Likewise.
* unroll.c (hard-reg-set.h, basic-block.h): Likewise.
* hard-reg-set.h (reg_names): Now constant.
* regs.h (reg_names): Likewise.
* regclass.c (reg_names): Likewise.
* loop.h (basic-block.h): No longer include.
(bitmap.h): Now include.
* reload1.c (order_regs_for_reload): Avoid loop over reg sets.
* Makefile.in (LOOP_H, sbitmap.o, profile.o): Reflect above changes.
(toplev.o, print-rtl.o, conflict.o, unroll.o, bitmap.o): Likewise.
From-SVN: r34039
Diffstat (limited to 'gcc/alias.c')
-rw-r--r-- | gcc/alias.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/gcc/alias.c b/gcc/alias.c index 0aab362..56dfc9d 100644 --- a/gcc/alias.c +++ b/gcc/alias.c @@ -1704,19 +1704,22 @@ init_alias_analysis () /* Walk the insns adding values to the new_reg_base_value array. */ for (insn = get_insns (); insn; insn = NEXT_INSN (insn)) { -#if defined (HAVE_prologue) || defined (HAVE_epilogue) - if (prologue_epilogue_contains (insn)) - continue; -#endif if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') { rtx note, set; + +#if defined (HAVE_prologue) || defined (HAVE_epilogue) + if (prologue_epilogue_contains (insn)) + continue; +#endif + /* If this insn has a noalias note, process it, Otherwise, scan for sets. A simple set will have no side effects which could change the base value of any other register. */ if (GET_CODE (PATTERN (insn)) == SET - && (find_reg_note (insn, REG_NOALIAS, NULL_RTX))) + && REG_NOTES (insn) != 0 + && find_reg_note (insn, REG_NOALIAS, NULL_RTX)) record_set (SET_DEST (PATTERN (insn)), NULL_RTX, NULL); else note_stores (PATTERN (insn), record_set, NULL); @@ -1726,6 +1729,7 @@ init_alias_analysis () if (set != 0 && GET_CODE (SET_DEST (set)) == REG && REGNO (SET_DEST (set)) >= FIRST_PSEUDO_REGISTER + && REG_NOTES (insn) != 0 && (((note = find_reg_note (insn, REG_EQUAL, 0)) != 0 && REG_N_SETS (REGNO (SET_DEST (set))) == 1) || (note = find_reg_note (insn, REG_EQUIV, NULL_RTX)) != 0) |