aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 5a04aa8..56429ef 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2001-11-13 Richard Henderson <rth@redhat.com>
+
+ * loop.c (combine_movables): Turn off combination until
+ move_movables validation bugs are fixed.
+
2001-11-13 DJ Delorie <dj@redhat.com>
* config.gcc (powerpc|rs6000): Set default cpp options based
diff --git a/gcc/loop.c b/gcc/loop.c
index bc22852..adc4a0b 100644
--- a/gcc/loop.c
+++ b/gcc/loop.c
@@ -1346,7 +1346,10 @@ combine_movables (movables, regs)
/* We want later insns to match the first one. Don't make the first
one match any later ones. So start this loop at m->next. */
for (m1 = m->next; m1; m1 = m1->next)
- if (m != m1 && m1->match == 0
+ /* ??? HACK! move_movables does not verify that the replacement
+ is valid, which can have disasterous effects with hard regs
+ and match_dup. Turn combination off for now. */
+ if (0 && m != m1 && m1->match == 0
&& regs->array[m1->regno].n_times_set == 1
/* A reg used outside the loop mustn't be eliminated. */
&& !m1->global