aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephen L Moshier <moshier@mediaone.net>1999-12-12 18:38:14 +0000
committerMark Mitchell <mmitchel@gcc.gnu.org>1999-12-12 18:38:14 +0000
commitf0b60c1c2bbc488f1f8fe4de13a2263e21ad66ea (patch)
treed39666a2ad34db4b3a2aabb901fa99796de869d7
parentf54a7f6fe2ad7880795807b573192edafe5e046d (diff)
downloadgcc-f0b60c1c2bbc488f1f8fe4de13a2263e21ad66ea.zip
gcc-f0b60c1c2bbc488f1f8fe4de13a2263e21ad66ea.tar.gz
gcc-f0b60c1c2bbc488f1f8fe4de13a2263e21ad66ea.tar.bz2
loop.c (load_mems): Don't hoist written floating point mem if -ffloat-store.
* loop.c (load_mems): Don't hoist written floating point mem if -ffloat-store. From-SVN: r30875
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/loop.c6
2 files changed, 10 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 315e748..2d204bb 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/loop.c b/gcc/loop.c
index e509cb1..016dc75 100644
--- a/gcc/loop.c
+++ b/gcc/loop.c
@@ -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)