aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJ"orn Rennecke <amylaar@cygnus.co.uk>1999-02-14 23:44:39 +0000
committerJeff Law <law@gcc.gnu.org>1999-02-14 16:44:39 -0700
commit6ba14f92807c0c891fab185531fbea57b3bf298f (patch)
tree15dba891552029856cf0f998de87ad45a413d63b
parentc954bd01573a8027f9e07f5a56adc53ff3fc939d (diff)
downloadgcc-6ba14f92807c0c891fab185531fbea57b3bf298f.zip
gcc-6ba14f92807c0c891fab185531fbea57b3bf298f.tar.gz
gcc-6ba14f92807c0c891fab185531fbea57b3bf298f.tar.bz2
alias.c (init_alias_analysis): Avoid self-referential value when setting reg_known_value from REG_EQUAL notes.
* alias.c (init_alias_analysis): Avoid self-referential value when setting reg_known_value from REG_EQUAL notes. From-SVN: r25211
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/alias.c3
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 16b3998..e572ee3 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Mon Feb 15 00:40:45 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
+
+ * alias.c (init_alias_analysis): Avoid self-referential value
+ when setting reg_known_value from REG_EQUAL notes.
+
Sun Feb 14 23:12:10 1999 Richard Henderson <rth@cygnus.com>
* i386.c (legitimate_address_p): Verify modes of base and index.
diff --git a/gcc/alias.c b/gcc/alias.c
index 876b3ef..eae57c7 100644
--- a/gcc/alias.c
+++ b/gcc/alias.c
@@ -1465,7 +1465,8 @@ init_alias_analysis ()
&& (((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)
- && GET_CODE (XEXP (note, 0)) != EXPR_LIST)
+ && GET_CODE (XEXP (note, 0)) != EXPR_LIST
+ && ! reg_overlap_mentioned_p (SET_DEST (set), XEXP (note, 0)))
{
int regno = REGNO (SET_DEST (set));
reg_known_value[regno] = XEXP (note, 0);