diff mbox

Predication during scheduling

Message ID 4EA1BC3D.3010107@codesourcery.com
State New
Headers show

Commit Message

Bernd Schmidt Oct. 21, 2011, 6:38 p.m. UTC
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
diff mbox

Patch

Index: gcc/ChangeLog
===================================================================
--- gcc/ChangeLog	(revision 180309)
+++ gcc/ChangeLog	(working copy)
@@ -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: 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.  */