From 357e3f3d83e1087d5fa239dddcb1ceb1e9b775ac Mon Sep 17 00:00:00 2001 From: Jim Wilson Date: Tue, 2 Oct 2001 05:00:19 +0000 Subject: [PATCH] Fix ia64 scheduler/predicated insn bug report from SAP. * sched-deps.c (add_dependence): When elide conditional dependence, check that insn doesn't modify cond2. From-SVN: r45938 --- gcc/ChangeLog | 5 +++++ gcc/sched-deps.c | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e0581ec4f24..b75dfe63132 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2001-10-01 Jim Wilson + + * sched-deps.c (add_dependence): When elide conditional dependence, + check that insn doesn't modify cond2. + 2001-10-01 Dale Johannesen * config/rs6000/rs6000.h (enum processor_type): Add support diff --git a/gcc/sched-deps.c b/gcc/sched-deps.c index 0142221c5e6..abb02c439ab 100644 --- a/gcc/sched-deps.c +++ b/gcc/sched-deps.c @@ -222,7 +222,12 @@ add_dependence (insn, elem, dep_type) cond2 = get_condition (elem); if (cond1 && cond2 && conditions_mutex_p (cond1, cond2) - && !modified_in_p (cond1, elem)) + /* Make sure first instruction doesn't affect condition of second + instruction if switched. */ + && !modified_in_p (cond1, elem) + /* Make sure second instruction doesn't affect condition of first + instruction if switched. */ + && !modified_in_p (cond2, insn)) return; }