aboutsummaryrefslogtreecommitdiff
path: root/gcc/loop.c
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/loop.c
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/loop.c')
-rw-r--r--gcc/loop.c5
1 files changed, 4 insertions, 1 deletions
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;