From: Jeffrey A Law Date: Sat, 16 Oct 1999 21:20:32 +0000 (+0000) Subject: gcse.c (hash_expr_1): Add in MEM_ALIAS_SET. X-Git-Tag: releases/gcc-2.95.2~15 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2aa437e3fb3f68175ea46d0a9cda0ed3402a6bef;p=thirdparty%2Fgcc.git gcse.c (hash_expr_1): Add in MEM_ALIAS_SET. Sat Oct 16 00:07:01 1999 Richard Henderson * gcse.c (hash_expr_1): Add in MEM_ALIAS_SET. (expr_equiv_p): Reject memories with different alias sets. From-SVN: r30047 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 14b9cffc274f..7e6b3e08d83f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +Sat Oct 16 15:20:15 1999 Jeffrey A Law (law@cygnus.com) + + Sat Oct 16 00:07:01 1999 Richard Henderson + * gcse.c (hash_expr_1): Add in MEM_ALIAS_SET. + (expr_equiv_p): Reject memories with different alias sets. + Wed Oct 13 01:46:14 1999 Jeffrey A Law (law@cygnus.com) Wed Oct 13 01:44:29 1999 Carol LePage diff --git a/gcc/gcse.c b/gcc/gcse.c index deebc73e0a13..cddd7ac63dfa 100644 --- a/gcc/gcse.c +++ b/gcc/gcse.c @@ -1394,6 +1394,7 @@ hash_expr_1 (x, mode, do_not_record_p) return 0; } hash += (unsigned) MEM; + hash += MEM_ALIAS_SET (x); x = XEXP (x, 0); goto repeat; @@ -1526,6 +1527,14 @@ expr_equiv_p (x, y) case REG: return REGNO (x) == REGNO (y); + case MEM: + /* Can't merge two expressions in different alias sets, since we can + decide that the expression is transparent in a block when it isn't, + due to it being set with the different alias set. */ + if (MEM_ALIAS_SET (x) != MEM_ALIAS_SET (y)) + return 0; + break; + /* For commutative operations, check both orders. */ case PLUS: case MULT: