OSDN Git Service

* loop.c (load_mems): Don't hoist written floating point mem
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 12 Dec 1999 18:38:14 +0000 (18:38 +0000)
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 12 Dec 1999 18:38:14 +0000 (18:38 +0000)
if -ffloat-store.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@30875 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/loop.c

index 315e748..2d204bb 100644 (file)
@@ -1,3 +1,8 @@
+1999-12-12  Stephen L Moshier <moshier@mediaone.net>
+
+       * loop.c (load_mems): Don't hoist written floating point mem
+       if -ffloat-store.
+       
 1999-12-12  Mark Mitchell  <mark@codesourcery.com>
 
        * except.h (struct eh_queue): Add `next' pointer.
index e509cb1..016dc75 100644 (file)
@@ -9825,7 +9825,11 @@ load_mems (scan_start, end, loop_top, start)
            }
          mem_list_entry = XEXP (mem_list_entry, 1);
        }
-         
+
+      if (flag_float_store && written
+         && GET_MODE_CLASS (GET_MODE (mem)) == MODE_FLOAT)
+       loop_mems[i].optimize = 0;
+  
       /* If this MEM is written to, we must be sure that there
         are no reads from another MEM that aliases this one.  */ 
       if (loop_mems[i].optimize && written)