diff options
Diffstat (limited to 'gcc')
| -rw-r--r-- | gcc/ChangeLog | 4 | ||||
| -rw-r--r-- | gcc/loop.c | 3 |
2 files changed, 6 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b66687d..f0da4a9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +1999-12-08 Bernd Schmidt <bernds@cygnus.co.uk> + + * loop.c (insert_loop_mem): Don't hoist volatile mems out of loops. + 1999-12-08 Jakub Jelinek <jakub@redhat.com> * config/sparc/sparc.c (ultra_cmove_results_ready_p, @@ -9667,7 +9667,8 @@ insert_loop_mem (mem, data) because we can't put it in a register. We still store it in the table, though, so that if we see the same address later, but in a non-BLK mode, we'll not think we can optimize it at that point. */ - loop_mems[loop_mems_idx].optimize = (GET_MODE (m) != BLKmode); + loop_mems[loop_mems_idx].optimize = (GET_MODE (m) != BLKmode + && ! MEM_VOLATILE_P (m)); loop_mems[loop_mems_idx].reg = NULL_RTX; ++loop_mems_idx; |
