OSDN Git Service

Fix yet another gcc2 merge problem, this one broke linux kernel compiles
authorwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 12 Nov 1999 04:34:37 +0000 (04:34 +0000)
committerwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 12 Nov 1999 04:34:37 +0000 (04:34 +0000)
        * loop.c (invariant_p, case MEM): Put MEM_VOLATILE_P check back.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@30496 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/loop.c

index a27282e..feb87ed 100644 (file)
@@ -1,5 +1,7 @@
 Thu Nov 11 19:45:24 1999  Jim Wilson  <wilson@cygnus.com>
 
+       * loop.c (invariant_p, case MEM): Put MEM_VOLATILE_P check back.
+
        * dbxout.c (dbxout_type, case INTEGER_TYPE): Handle too large
        unsigned types.
 
index 3f61671..eb7681f 100644 (file)
@@ -3301,6 +3301,12 @@ invariant_p (x)
       return VARRAY_INT (set_in_loop, REGNO (x)) == 0;
 
     case MEM:
+      /* Volatile memory references must be rejected.  Do this before
+        checking for read-only items, so that volatile read-only items
+        will be rejected also.  */
+      if (MEM_VOLATILE_P (x))
+       return 0;
+
       /* If we had a subroutine call, any location in memory could
         have been clobbered.  We used to test here for volatile and
         readonly, but true_dependence knows how to do that better