From bb2cf916da4251c227826f82e945d8c90dbd552b Mon Sep 17 00:00:00 2001 From: Bernd Schmidt Date: Thu, 15 Mar 2001 17:36:43 +0000 Subject: [PATCH] Use only nonvarying rtxs as known values From-SVN: r40505 --- gcc/ChangeLog | 4 ++++ gcc/alias.c | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bcdc3b9d25c..3ae6198497e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -25,6 +25,10 @@ Thu Mar 15 11:24:29 EST 2001 John Wehle (john@feith.com) * cselib.c (hash_rtx): For REG and MEM, just use value of expression without adding in rtx code and mode. + * alias.c (init_alias_analysis): Don't use any rtx whose value + varies as a known value. + Delete a superfluous test. + * config/ia64/ia64.c (maybe_rotate): New function, broken out of ia64_sched_reorder. (ia64_sched_reorder): Call maybe_rotate; also rotate after diff --git a/gcc/alias.c b/gcc/alias.c index 4aca90d5b7c..6b20df765fd 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))); -- 2.30.2