summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>2001-10-02 05:00:19 +0000
committerwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>2001-10-02 05:00:19 +0000
commitb7fefcbf1f74784d60db9f87ed0ebf75abb2967e (patch)
tree742d4d746e3b8b6b4d1c60bd7f08b7f9ce1014c1
parent979b4d09676e02ea28466c7b1c27ad0fe6c7dc40 (diff)
downloadppe42-gcc-b7fefcbf1f74784d60db9f87ed0ebf75abb2967e.tar.gz
ppe42-gcc-b7fefcbf1f74784d60db9f87ed0ebf75abb2967e.zip
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45938 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/sched-deps.c7
2 files changed, 11 insertions, 1 deletions
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 <wilson@redhat.com>
+
+ * sched-deps.c (add_dependence): When elide conditional dependence,
+ check that insn doesn't modify cond2.
+
2001-10-01 Dale Johannesen <dalej@apple.com>
* 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;
}
OpenPOWER on IntegriCloud