aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1994-05-31 07:20:06 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1994-05-31 07:20:06 -0400
commitca800983cb2c749676dc33d52c752ecdee1e0e15 (patch)
treef4f89401193b2a783ad9add5671d27b0c1d44f34
parent058f58ed24812ddfe91a9f8cf8f83378e9fc4c33 (diff)
downloadgcc-ca800983cb2c749676dc33d52c752ecdee1e0e15.zip
gcc-ca800983cb2c749676dc33d52c752ecdee1e0e15.tar.gz
gcc-ca800983cb2c749676dc33d52c752ecdee1e0e15.tar.bz2
(note_addr_stored): A SET or CLOBBER of a BLKmode MEM means that all
memory is clobbered. From-SVN: r7395
-rw-r--r--gcc/loop.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/gcc/loop.c b/gcc/loop.c
index 17ef97a..624329b 100644
--- a/gcc/loop.c
+++ b/gcc/loop.c
@@ -2593,6 +2593,10 @@ note_addr_stored (x)
This affects heuristics in strength_reduce. */
num_mem_sets++;
+ /* BLKmode MEM means all memory is clobbered. */
+ if (GET_MODE (x) == BLKmode)
+ unknown_address_altered = 1;
+
if (unknown_address_altered)
return;
@@ -2601,10 +2605,9 @@ note_addr_stored (x)
&& MEM_IN_STRUCT_P (x) == MEM_IN_STRUCT_P (loop_store_mems[i]))
{
/* We are storing at the same address as previously noted. Save the
- wider reference, treating BLKmode as wider. */
- if (GET_MODE (x) == BLKmode
- || (GET_MODE_SIZE (GET_MODE (x))
- > GET_MODE_SIZE (GET_MODE (loop_store_mems[i]))))
+ wider reference. */
+ if (GET_MODE_SIZE (GET_MODE (x))
+ > GET_MODE_SIZE (GET_MODE (loop_store_mems[i])))
loop_store_mems[i] = x;
break;
}