OSDN Git Service

(invariant_p): Reject const volatile references.
authorwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 19 Dec 1994 20:27:20 +0000 (20:27 +0000)
committerwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 19 Dec 1994 20:27:20 +0000 (20:27 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@8666 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/loop.c

index 123c013..885a7f4 100644 (file)
@@ -2699,6 +2699,12 @@ invariant_p (x)
       return n_times_set[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;
+
       /* Read-only items (such as constants in a constant pool) are
         invariant if their address is.  */
       if (RTX_UNCHANGING_P (x))
@@ -2706,9 +2712,7 @@ invariant_p (x)
 
       /* If we filled the table (or had a subroutine call), any location
         in memory could have been clobbered.  */
-      if (unknown_address_altered
-         /* Don't mess with volatile memory references.  */
-         || MEM_VOLATILE_P (x))
+      if (unknown_address_altered)
        return 0;
 
       /* See if there is any dependence between a store and this load.  */