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. */