OSDN Git Service

PR bootstrap/50825
authorbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 21 Oct 2011 18:38:44 +0000 (18:38 +0000)
committerbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 21 Oct 2011 18:38:44 +0000 (18:38 +0000)
* sched-deps.c (add_dependence): If not doing predication, promote
REG_DEP_CONTROL to REG_DEP_ANTI.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180310 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/sched-deps.c

index 9d3269f..bc6fdd9 100644 (file)
@@ -1,3 +1,9 @@
+2011-10-21  Bernd Schmidt  <bernds@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  <avr@gjlay.de>
 
        * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Pass address of X
index b669cd3..a778721 100644 (file)
@@ -1505,6 +1505,10 @@ sd_debug_lists (rtx insn, sd_list_types_def 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.  */