]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
gcse.c (hash_expr_1): Add in MEM_ALIAS_SET.
authorJeffrey A Law <law@cygnus.com>
Sat, 16 Oct 1999 21:20:32 +0000 (21:20 +0000)
committerJeff Law <law@gcc.gnu.org>
Sat, 16 Oct 1999 21:20:32 +0000 (15:20 -0600)
        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

gcc/ChangeLog
gcc/gcse.c

index 14b9cffc274f04d86b2dc4ba8720e1a77b5153d3..7e6b3e08d83f3aebc0fb2186690bc7f4499cc341 100644 (file)
@@ -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>
index deebc73e0a138b2cb761644eefff8e4eb7865162..cddd7ac63dfaf269d49269cbe8513e4250af9dd1 100644 (file)
@@ -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: