On 10/21/11 15:42, Bernd Schmidt wrote:
> On 10/14/11 17:35, Vladimir Makarov wrote:
>> The scheduler part of the patch is ok for me (other part changes are
>> obvious).  Could you only commit it at the beginning of the next week.
> 
> I've committed this variant. It's updated for some recent changes in trunk:

And this fixlet prevents ports that don't expect REG_DEP_CONTROL from
seeing this type of dependency. Committed as obvious.


Bernd
Index: gcc/ChangeLog
===================================================================
--- gcc/ChangeLog       (revision 180309)
+++ gcc/ChangeLog       (working copy)
@@ -1,3 +1,9 @@
+2011-10-21  Bernd Schmidt  <ber...@codesourcery.com>
+
+       PR bootstrap/50825
+       * sched-deps.c (add_dependence): If not doing predication, promote
+       REG_DEP_CONTROL to REG_DEP_ANTI.
+
 2011-10-21  Georg-Johann Lay  <a...@gjlay.de>
 
        * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Pass address of X
Index: gcc/sched-deps.c
===================================================================
--- gcc/sched-deps.c    (revision 180302)
+++ gcc/sched-deps.c    (working copy)
@@ -1505,6 +1505,10 @@ sd_debug_lists (rtx insn, sd_list_types_
 void
 add_dependence (rtx con, rtx pro, enum reg_note dep_type)
 {
+  if (dep_type == REG_DEP_CONTROL
+      && !(current_sched_info->flags & DO_PREDICATION))
+    dep_type = REG_DEP_ANTI;
+
   /* A REG_DEP_CONTROL dependence may be eliminated through predication,
      so we must also make the insn dependent on the setter of the
      condition.  */

Reply via email to