aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/gcse.c4
2 files changed, 9 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 521a44a..1657512 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2003-09-06 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * gcse.c (expr_equiv_p): Don't consider anything to be equal to
+ volatile mem.
+
2003-09-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* ggc-common.c (init_ggc_heuristics): Don't use the heuristics
diff --git a/gcc/gcse.c b/gcc/gcse.c
index 9779663..edc8a62 100644
--- a/gcc/gcse.c
+++ b/gcc/gcse.c
@@ -1787,6 +1787,10 @@ expr_equiv_p (rtx x, rtx y)
due to it being set with the different alias set. */
if (MEM_ALIAS_SET (x) != MEM_ALIAS_SET (y))
return 0;
+
+ /* A volatile mem should not be considered equivalent to any other. */
+ if (MEM_VOLATILE_P (x) || MEM_VOLATILE_P (y))
+ return 0;
break;
/* For commutative operations, check both orders. */