* loop.c (scan_loop): Honor AVOID_CC_MODE_COPIES.
authorJeffrey A Law <law@cygnus.com>
Mon, 24 Aug 1998 11:06:09 +0000 (11:06 +0000)
committerJeff Law <law@gcc.gnu.org>
Mon, 24 Aug 1998 11:06:09 +0000 (05:06 -0600)
From-SVN: r21935

gcc/ChangeLog
gcc/loop.c

index 3e3371d5a91315bb7be964f686f48a3c288b9c33..4327d04ffe4ad930de1d51311dec6312c1730ba2 100644 (file)
@@ -1,5 +1,7 @@
 Mon Aug 24 10:25:46 1998  Jeffrey A Law  (law@cygnus.com)
 
+        * loop.c (scan_loop): Honor AVOID_CC_MODE_COPIES.
+
        * h8300.h (STRIP_NAME_ENCODING): Fix typo.
 
        * sparc.md (TFmode splits): Use reg_overlap_mentioned_p to detect
index 34613cb66d5e3f2659ce87209d2abcafd9a7093d..dda3acade5cb97d16e5df5d9b9937f952e96b305 100644 (file)
@@ -781,6 +781,16 @@ scan_loop (loop_start, end, unroll_p)
 
   for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
     may_not_optimize[i] = 1, n_times_set[i] = 1;
+
+#ifdef AVOID_CCMODE_COPIES
+  /* Don't try to move insns which set CC registers if we should not
+     create CCmode register copies.  */
+     be avoiding
+  for (i = FIRST_PSEUDO_REGISTER; i < nregs - loop_mems_idx; i++)
+    if (GET_MODE_CLASS (GET_MODE (regno_reg_rtx[i])) == MODE_CC)
+      may_not_optimize[i] = 1;
+#endif
+
   bcopy ((char *) n_times_set, (char *) n_times_used, nregs * sizeof (int));
 
   if (loop_dump_stream)