mirror of
https://gcc.gnu.org/git/gcc.git
synced 2026-02-22 12:00:03 -05:00
gcse.c (hash_expr_1): Add in MEM_ALIAS_SET.
Sat Oct 16 00:07:01 1999 Richard Henderson <rth@cygnus.com> * gcse.c (hash_expr_1): Add in MEM_ALIAS_SET. (expr_equiv_p): Reject memories with different alias sets. From-SVN: r30047
This commit is contained in:
@@ -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 <rth@cygnus.com>
|
||||
* 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 <carolo@hal.com>
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user