loop.c (combine_movables): Turn off combination until move_movables validation bugs...
authorRichard Henderson <rth@redhat.com>
Wed, 14 Nov 2001 00:15:30 +0000 (16:15 -0800)
committerRichard Henderson <rth@gcc.gnu.org>
Wed, 14 Nov 2001 00:15:30 +0000 (16:15 -0800)
        * loop.c (combine_movables): Turn off combination until
        move_movables validation bugs are fixed.

From-SVN: r46995

gcc/ChangeLog
gcc/loop.c

index 5a04aa8b1bb383b7ccd8c4875805c62a6bb6da7c..56429ef267c4168fc8f18c225198ae85e4c0f37c 100644 (file)
@@ -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
index bc2285238ecd34613a98fe820db2024f1922d7a6..adc4a0b7b0ed8c07fb4486dbbd6a6661caa114a4 100644 (file)
@@ -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