aboutsummaryrefslogtreecommitdiff
path: root/gcc/cse.c
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1996-04-15 08:49:02 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1996-04-15 08:49:02 -0400
commitf47c02fa79ae06338b50cb475fb4503cce921562 (patch)
tree7af41dc792a3d63ea3dc83a34e94e3279984d7b6 /gcc/cse.c
parentb757e352816a7880ec42011666c5c7b33d6b7f4e (diff)
downloadgcc-f47c02fa79ae06338b50cb475fb4503cce921562.zip
gcc-f47c02fa79ae06338b50cb475fb4503cce921562.tar.gz
gcc-f47c02fa79ae06338b50cb475fb4503cce921562.tar.bz2
(invalidate_skipped_set): Ignore CLOBBER after calling
note_mem_written, not before. From-SVN: r11786
Diffstat (limited to 'gcc/cse.c')
-rw-r--r--gcc/cse.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/gcc/cse.c b/gcc/cse.c
index e1c6bca..80e69c0 100644
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -7820,13 +7820,6 @@ invalidate_skipped_set (dest, set)
rtx set;
rtx dest;
{
- if (GET_CODE (set) == CLOBBER
-#ifdef HAVE_cc0
- || dest == cc0_rtx
-#endif
- || dest == pc_rtx)
- return;
-
if (GET_CODE (dest) == MEM)
note_mem_written (dest, &skipped_writes_memory);
@@ -7836,6 +7829,13 @@ invalidate_skipped_set (dest, set)
if (skipped_writes_memory.nonscalar)
skipped_writes_memory.all = 1;
+ if (GET_CODE (set) == CLOBBER
+#ifdef HAVE_cc0
+ || dest == cc0_rtx
+#endif
+ || dest == pc_rtx)
+ return;
+
if (GET_CODE (dest) == REG || GET_CODE (dest) == SUBREG
|| (! skipped_writes_memory.all && ! cse_rtx_addr_varies_p (dest)))
invalidate (dest, VOIDmode);