aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1993-06-14 23:16:31 +0000
committerRichard Stallman <rms@gnu.org>1993-06-14 23:16:31 +0000
commitffcf63937c553a446e3aaa316094f2dbc32e9b54 (patch)
tree1a2843348a2b89a3ee2c9977b7535b0e7a2026b0
parent315198ab9d659c8326e0a449aaa910ee2de6bece (diff)
downloadgcc-ffcf63937c553a446e3aaa316094f2dbc32e9b54.zip
gcc-ffcf63937c553a446e3aaa316094f2dbc32e9b54.tar.gz
gcc-ffcf63937c553a446e3aaa316094f2dbc32e9b54.tar.bz2
(invalidate_skipped_set): Promote "nonscalar" to "all".
From-SVN: r4679
-rw-r--r--gcc/cse.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/cse.c b/gcc/cse.c
index 0e1fe84..d616217 100644
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -7323,6 +7323,12 @@ invalidate_skipped_set (dest, set)
if (GET_CODE (dest) == MEM)
note_mem_written (dest, &skipped_writes_memory);
+ /* There are times when an address can appear varying and be a PLUS
+ during this scan when it would be a fixed address were we to know
+ the proper equivalences. So promote "nonscalar" to be "all". */
+ if (skipped_writes_memory.nonscalar)
+ skipped_writes_memory.all = 1;
+
if (GET_CODE (dest) == REG || GET_CODE (dest) == SUBREG
|| (! skipped_writes_memory.all && ! cse_rtx_addr_varies_p (dest)))
invalidate (dest);