Minor cosmetic change
authorAyal Zaks <zaks@il.ibm.com>
Sun, 23 Sep 2007 11:58:19 +0000 (11:58 +0000)
committerRevital Eres <revitale@gcc.gnu.org>
Sun, 23 Sep 2007 11:58:19 +0000 (11:58 +0000)
Co-Authored-By: Revital Eres <eres@il.ibm.com>
From-SVN: r128689

gcc/ChangeLog
gcc/modulo-sched.c

index cfad806a99b9a1969285e76dde0120b9dd9c8e80..1e3e595fd2372896edd70d7efdc3bb530c59c134 100644 (file)
@@ -1,3 +1,9 @@
+2007-09-23  Ayal Zaks  <zaks@il.ibm.com>
+           Revital Eres  <eres@il.ibm.com>
+
+       * modulo-sched.c (doloop_register_get): Rewrite the loop which
+       checks whether the count_reg is found outside the control part.
+
 2007-09-23  Jakub Jelinek  <jakub@redhat.com>
 
        * expr.c (expand_expr_real_1) <case CALL_EXPR>: Use get_callee_fndecl
index 9a806c106e9f6e75c6c396df57fbc0fa893b2d7e..a17986ce544a0c35cdc465efa1ccabc5e7ce30b8 100644 (file)
@@ -286,8 +286,7 @@ static rtx
 doloop_register_get (rtx head ATTRIBUTE_UNUSED, rtx tail ATTRIBUTE_UNUSED)
 {
 #ifdef HAVE_doloop_end
-  rtx reg, condition, insn;
-  bool found = false;
+  rtx reg, condition, insn, first_insn_not_to_check;
 
   if (!JUMP_P (tail))
     return NULL_RTX;
@@ -309,25 +308,23 @@ doloop_register_get (rtx head ATTRIBUTE_UNUSED, rtx tail ATTRIBUTE_UNUSED)
      until the decrement.  We assume the control part consists of
      either a single (parallel) branch-on-count or a (non-parallel)
      branch immediately preceded by a single (decrement) insn.  */
-  for (insn = head; insn != PREV_INSN (tail); insn = NEXT_INSN (insn))
-    if ((found = reg_mentioned_p (reg, insn)) == true)
-      break;
-  if (found)
-    {
-      if (dump_file)
-        fprintf (dump_file, "SMS count_reg found outside control\n");
+  first_insn_not_to_check = (GET_CODE (PATTERN (tail)) == PARALLEL ? tail
+                             : PREV_INSN (tail));
 
-      return NULL_RTX;
-    }
-  /* One last check in case the do-loop pattern is parallel.  */
-  if (GET_CODE (PATTERN (tail)) == PARALLEL)
-    if (reg_mentioned_p (reg, PREV_INSN (tail)))
+  for (insn = head; insn != first_insn_not_to_check; insn = NEXT_INSN (insn))
+    if (reg_mentioned_p (reg, insn))
       {
         if (dump_file)
-          fprintf (dump_file, "SMS count_reg found outside control\n");
+        {
+          fprintf (dump_file, "SMS count_reg found ");
+          print_rtl_single (dump_file, reg);
+          fprintf (dump_file, " outside control in insn:\n");
+          print_rtl_single (dump_file, insn);
+        }
 
         return NULL_RTX;
       }
+
   return reg;
 #else
   return NULL_RTX;