aboutsummaryrefslogtreecommitdiff
path: root/gcc/alias.c
diff options
context:
space:
mode:
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>2000-05-19 22:27:28 +0000
committerRichard Kenner <kenner@gcc.gnu.org>2000-05-19 18:27:28 -0400
commitefc9bd412d3e48467658e5e8c5905669f160dc82 (patch)
tree8f88314b754c91c4f21319edf9d007c274a0a151 /gcc/alias.c
parentc280e37af477f21bc3503b2ae3598118d58be01e (diff)
downloadgcc-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.c14
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)