]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
sched-deps.c (add_dependence): Don't elide dependancy if the conditional used by...
authorRichard Henderson <rth@redhat.com>
Fri, 31 Aug 2001 18:01:08 +0000 (11:01 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Fri, 31 Aug 2001 18:01:08 +0000 (11:01 -0700)
        * sched-deps.c (add_dependence): Don't elide dependancy if the
        conditional used by insn is modified in elem.

From-SVN: r45330

gcc/ChangeLog
gcc/sched-deps.c

index 2d32c720889326285641c19d6e8aef0a642b9e6f..b176a4d437470812b02fa03bfc3b6fef2c31bac3 100644 (file)
@@ -1,3 +1,8 @@
+2001-08-31  Richard Henderson  <rth@redhat.com>
+
+       * sched-deps.c (add_dependence): Don't elide dependancy if the
+       conditional used by insn is modified in elem.
+
 2001-08-31  Nick Clifton  <nickc@cambridge.redhat.com>
 
        * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Define.
index 4a71d104c6cf61a6edc934cf039f508b991ce1fe..dbbb140671b1eddd8cb09955294d50251c8a1e6a 100644 (file)
@@ -213,11 +213,16 @@ add_dependence (insn, elem, dep_type)
 
   /* flow.c doesn't handle conditional lifetimes entirely correctly;
      calls mess up the conditional lifetimes.  */
+  /* ??? add_dependence is the wrong place to be eliding dependencies,
+     as that forgets that the condition expressions themselves may
+     be dependent.  */
   if (GET_CODE (insn) != CALL_INSN && GET_CODE (elem) != CALL_INSN)
     {
       cond1 = get_condition (insn);
       cond2 = get_condition (elem);
-      if (cond1 && cond2 && conditions_mutex_p (cond1, cond2))
+      if (cond1 && cond2
+         && conditions_mutex_p (cond1, cond2)
+         && !modified_in_p (cond1, elem))
        return;
     }