Prevent interblock move of CC0 setter.
authorVladimir Makarov <vmakarov@redhat.com>
Thu, 31 Jul 2003 07:56:36 +0000 (07:56 +0000)
committerNick Clifton <nickc@gcc.gnu.org>
Thu, 31 Jul 2003 07:56:36 +0000 (07:56 +0000)
From-SVN: r69992

gcc/ChangeLog
gcc/sched-deps.c

index 7729d5dade9aadedea8e3f3f9abb31c2d99a2b3e..2c82f05d50ba8c876293714b9517ca849348b1f8 100644 (file)
@@ -1,3 +1,8 @@
+2003-07-31  Vladimir Makarov  <vmakarov@redhat.com>
+
+        * sched-deps.c (sched_analyze_2): Prevent interblock move of CC0
+        setter.
+
 2003-07-30  Roger Sayle  <roger@eyesopen.com>
 
        * builtins.def: Alphabetize.
index 1a41e9989c905947f88ad2719e6a75cdd8194983..477203caa222b4826e993917ec96630f4dab4aca 100644 (file)
@@ -625,6 +625,9 @@ sched_analyze_2 (struct deps *deps, rtx x, rtx insn)
     case CC0:
       /* User of CC0 depends on immediately preceding insn.  */
       set_sched_group_p (insn);
+       /* Don't move CC0 setter to another block (it can set up the
+        same flag for previous CC0 users which is safe).  */
+      CANT_MOVE (prev_nonnote_insn (insn)) = 1;
       return;
 #endif