aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorNick Clifton <nickc@cygnus.com>1999-03-18 15:59:50 +0000
committerNick Clifton <nickc@gcc.gnu.org>1999-03-18 15:59:50 +0000
commit6449b397c253d735bdfd01cde000d742450fb003 (patch)
tree4483e5f989782f17a1c4a61828276eb2543f747f /gcc
parent9f4749b181530b7661dff39370ed4e62d63b54f5 (diff)
downloadgcc-6449b397c253d735bdfd01cde000d742450fb003.zip
gcc-6449b397c253d735bdfd01cde000d742450fb003.tar.gz
gcc-6449b397c253d735bdfd01cde000d742450fb003.tar.bz2
Do not perform pseudo replacements if the loop contains volatile memory
references. From-SVN: r25841
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/loop.c5
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e06c403..94aedd1 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Thu Mar 18 15:58:26 1999 Nick Clifton <nickc@cygnus.com>
+
+ * loop.c (strength_reduce): Do not perform pseudo replacements
+ if the loop contains volatile memory references.
+
Thu Mar 18 19:09:50 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
* reload.c (find_reloads_toplev): When processing X recursively,
diff --git a/gcc/loop.c b/gcc/loop.c
index a2023b2..551bcf6 100644
--- a/gcc/loop.c
+++ b/gcc/loop.c
@@ -4115,8 +4115,11 @@ strength_reduce (scan_start, end, loop_top, insn_count,
first_increment_giv = max_reg_num ();
for (n_extra_increment = 0, bl = loop_iv_list; bl; bl = bl->next)
n_extra_increment += bl->biv_count - 1;
+
+ /* If the loop contains volatile memory references do not allow any
+ replacements to take place, since this could loose the volatile markers. */
/* XXX Temporary. */
- if (0 && n_extra_increment)
+ if (0 && n_extra_increment && ! loop_has_volatile)
{
int nregs = first_increment_giv + n_extra_increment;