aboutsummaryrefslogtreecommitdiff
path: root/gcc/alias.c
diff options
context:
space:
mode:
authorBernd Schmidt <bernds@redhat.com>2001-03-15 17:36:43 +0000
committerBernd Schmidt <bernds@gcc.gnu.org>2001-03-15 17:36:43 +0000
commitbb2cf916da4251c227826f82e945d8c90dbd552b (patch)
tree6df32fedcae265d8eca337f5eea13f10480a5f12 /gcc/alias.c
parente06736f44e98d3239e2d589c4f55e35caf84a2b9 (diff)
downloadgcc-bb2cf916da4251c227826f82e945d8c90dbd552b.zip
gcc-bb2cf916da4251c227826f82e945d8c90dbd552b.tar.gz
gcc-bb2cf916da4251c227826f82e945d8c90dbd552b.tar.bz2
Use only nonvarying rtxs as known values
From-SVN: r40505
Diffstat (limited to 'gcc/alias.c')
-rw-r--r--gcc/alias.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/alias.c b/gcc/alias.c
index 4aca90d..6b20df7 100644
--- a/gcc/alias.c
+++ b/gcc/alias.c
@@ -2276,6 +2276,7 @@ init_alias_analysis ()
&& REG_N_SETS (regno) == 1)
|| (note = find_reg_note (insn, REG_EQUIV, NULL_RTX)) != 0)
&& GET_CODE (XEXP (note, 0)) != EXPR_LIST
+ && ! rtx_varies_p (XEXP (note, 0), 1)
&& ! reg_overlap_mentioned_p (SET_DEST (set), XEXP (note, 0)))
{
reg_known_value[regno] = XEXP (note, 0);
@@ -2289,8 +2290,7 @@ init_alias_analysis ()
&& GET_CODE (XEXP (src, 1)) == CONST_INT)
{
rtx op0 = XEXP (src, 0);
- if (reg_known_value[REGNO (op0)])
- op0 = reg_known_value[REGNO (op0)];
+ op0 = reg_known_value[REGNO (op0)];
reg_known_value[regno]
= plus_constant_for_output (op0,
INTVAL (XEXP (src, 1)));