re PR rtl-optimization/26232 (cc0 targets broken; loop-invariants-move code doesn...
authorZdenek Dvorak <dvorakz@suse.cz>
Sun, 12 Feb 2006 22:32:33 +0000 (23:32 +0100)
committerZdenek Dvorak <rakdver@gcc.gnu.org>
Sun, 12 Feb 2006 22:32:33 +0000 (22:32 +0000)
PR rtl-optimization/26232
* loop-invariant.c (find_invariant_insn): Ignore insns that set CC0.

From-SVN: r110897

gcc/ChangeLog
gcc/loop-invariant.c

index 095c6d6..90192ea 100644 (file)
@@ -1,3 +1,8 @@
+2006-02-12  Zdenek Dvorak <dvorakz@suse.cz>
+
+       PR rtl-optimization/26232
+       * loop-invariant.c (find_invariant_insn): Ignore insns that set CC0.
+
 2006-02-11  Jason Merrill  <jason@redhat.com>
 
        PR tree-opt/24365
index 3ecf9d6..f703747 100644 (file)
@@ -730,6 +730,12 @@ find_invariant_insn (rtx insn, bool always_reached, bool always_executed)
       || find_reg_note (insn, REG_NO_CONFLICT, NULL_RTX))
     return;
 
+#ifdef HAVE_cc0
+  /* We can't move a CC0 setter without the user.  */
+  if (sets_cc0_p (insn))
+    return;
+#endif
+
   set = single_set (insn);
   if (!set)
     return;