aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorBernd Schmidt <bernds@codesourcery.com>2011-10-21 18:38:44 +0000
committerBernd Schmidt <bernds@gcc.gnu.org>2011-10-21 18:38:44 +0000
commitf561ef0f49c397e6cf62f234752445a9168f1367 (patch)
treee204e2088b4ff2ec53e8ecca8f7dd6f84f2fe793 /gcc
parentfe66170d5b3b327c3d9cf27def4a8c05aafc2e45 (diff)
downloadgcc-f561ef0f49c397e6cf62f234752445a9168f1367.zip
gcc-f561ef0f49c397e6cf62f234752445a9168f1367.tar.gz
gcc-f561ef0f49c397e6cf62f234752445a9168f1367.tar.bz2
re PR bootstrap/50825 (bootstrap fails at stage1 libgcc from r180302)
PR bootstrap/50825 * sched-deps.c (add_dependence): If not doing predication, promote REG_DEP_CONTROL to REG_DEP_ANTI. From-SVN: r180310
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/sched-deps.c4
2 files changed, 10 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9d3269f..bc6fdd9 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/sched-deps.c b/gcc/sched-deps.c
index b669cd3..a778721 100644
--- a/gcc/sched-deps.c
+++ b/gcc/sched-deps.c
@@ -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. */