From 750a330e3c5ea0ee3a0ba6991939d9387d100727 Mon Sep 17 00:00:00 2001 From: steven Date: Sun, 11 Feb 2007 19:53:11 +0000 Subject: * fwprop.c (try_fwprop_subst): Use set_unique_reg_note to add the REG_EQ* note. * see.c (see_merge_one_use_extension): Likewise. * local-alloc.c (update_equiv_regs): Likewise. Also don't turn REG_EQUAL notes into REG_EQUIV notes if the target register may have more than one set. * function.c (assign_parm_setup_reg): Use set_unique_reg_note. * gcse.c (try_replace_reg): Likewise. * alias.c (init_alias_analysis): Use find_reg_equal_equiv_note. * calls.c (fixup_tail_calls): Likewise. Abort if there is more than one REG_EQUIV note. * reload1.c (gen_reload): Use set_unique_reg_note. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@121821 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/alias.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'gcc/alias.c') diff --git a/gcc/alias.c b/gcc/alias.c index 8b9254caa19..b873e9743bf 100644 --- a/gcc/alias.c +++ b/gcc/alias.c @@ -2546,10 +2546,12 @@ init_alias_analysis (void) rtx src = SET_SRC (set); rtx t; - if (REG_NOTES (insn) != 0 - && (((note = find_reg_note (insn, REG_EQUAL, 0)) != 0 - && REG_N_SETS (regno) == 1) - || (note = find_reg_note (insn, REG_EQUIV, NULL_RTX)) != 0) + note = find_reg_equal_equiv_note (insn); + if (note && REG_NOTE_KIND (note) == REG_EQUAL + && REG_N_SETS (regno) != 1) + note = NULL_RTX; + + if (note != NULL_RTX && GET_CODE (XEXP (note, 0)) != EXPR_LIST && ! rtx_varies_p (XEXP (note, 0), 1) && ! reg_overlap_mentioned_p (SET_DEST (set), -- cgit v1.2.1