From 667a4593fc3d98b4d4ca7759ba2f291a8c974d03 Mon Sep 17 00:00:00 2001 From: Jim Wilson Date: Mon, 19 Dec 1994 12:27:20 -0800 Subject: [PATCH] (invariant_p): Reject const volatile references. From-SVN: r8666 --- gcc/loop.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/gcc/loop.c b/gcc/loop.c index 123c01383bf..885a7f46a54 100644 --- a/gcc/loop.c +++ b/gcc/loop.c @@ -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. */ -- 2.30.2