* loop.c (check_dbra_loop): Factor common test.
authorNathan Sidwell <nathan@gcc.gnu.org>
Wed, 14 May 2003 15:06:41 +0000 (15:06 +0000)
committerNathan Sidwell <nathan@gcc.gnu.org>
Wed, 14 May 2003 15:06:41 +0000 (15:06 +0000)
From-SVN: r66803

gcc/ChangeLog
gcc/loop.c

index 67ee501..f5e7884 100644 (file)
@@ -1,3 +1,7 @@
+2003-05-14  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * loop.c (check_dbra_loop): Factor common test.
+
 2003-05-14  Ben Elliston  <bje@wasabisystems.com>
 
        * doc/md.texi (Automaton pipeline description): Grammar fixes.
@@ -504,6 +508,7 @@ Mon May 12 11:32:53 CEST 2003  Jan Hubicka  <jh@suse.cz>
        (s390_function_arg): Likewise.
        (s390_va_arg): Likewise
 
+>>>>>>> 1.17806
 2003-05-11  Nathan Sidwell  <nathan@codesourcery.com>
 
        * coverage.h (coverage_counter_alloc): New function.
index b74d6ad..c161bc8 100644 (file)
@@ -8274,9 +8274,11 @@ check_dbra_loop (loop, insn_count)
                    && REGNO (SET_DEST (set)) == bl->regno)
                  /* An insn that sets the biv is okay.  */
                  ;
-               else if ((p == prev_nonnote_insn (prev_nonnote_insn (loop_end))
-                         || p == prev_nonnote_insn (loop_end))
-                        && reg_mentioned_p (bivreg, PATTERN (p)))
+               else if (!reg_mentioned_p (bivreg, PATTERN (p)))
+                 /* An insn that doesn't mention the biv is okay.  */
+                 ;
+               else if (p == prev_nonnote_insn (prev_nonnote_insn (loop_end))
+                        || p == prev_nonnote_insn (loop_end))
                  {
                    /* If either of these insns uses the biv and sets a pseudo
                       that has more than one usage, then the biv has uses
@@ -8290,7 +8292,7 @@ check_dbra_loop (loop, insn_count)
                        break;
                      }
                  }
-               else if (reg_mentioned_p (bivreg, PATTERN (p)))
+               else
                  {
                    no_use_except_counting = 0;
                    break;