sched-deps.c (get_condition): Partially revert previous, by never trying to extract...
authorRichard Earnshaw <rearnsha@arm.com>
Mon, 30 Aug 2004 12:43:19 +0000 (12:43 +0000)
committerRichard Earnshaw <rearnsha@gcc.gnu.org>
Mon, 30 Aug 2004 12:43:19 +0000 (12:43 +0000)
* sched-deps.c (get_condition): Partially revert previous, by never
trying to extract the condition from a condjump.

From-SVN: r86763

gcc/ChangeLog
gcc/sched-deps.c

index d2ccd28eff8657e73f4c2a4215c0aade163967f2..e44502c653a1ca87b3acc9b9d8c69a3591e860b3 100644 (file)
@@ -1,3 +1,8 @@
+2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
+
+       * sched-deps.c (get_condition): Partially revert previous, by never
+       trying to extract the condition from a condjump.
+
 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
 
        * config/mips/mips.md (UNSPEC_{RSQRT,RECIP}[12]_{S,D,PS}): Delete.
index 2c551cfabfbc3e5e1f18eaa4d60cbca6abdebf91..b76e217df81ee0f3f24cf50e87b9f38d731aaa2f 100644 (file)
@@ -153,6 +153,11 @@ get_condition (rtx insn)
     return 0;
 
   src = SET_SRC (pc_set (insn));
+#if 0
+  /* The previous code here was completely invalid and could never extract
+     the condition from a jump.  This code does the correct thing, but that
+     triggers latent bugs later in the scheduler on ports with conditional
+     execution.  So this is disabled for now.  */
   if (XEXP (src, 2) == pc_rtx)
     return XEXP (src, 0);
   else if (XEXP (src, 1) == pc_rtx)
@@ -165,8 +170,9 @@ get_condition (rtx insn)
       return gen_rtx_fmt_ee (revcode, GET_MODE (cond), XEXP (cond, 0),
                             XEXP (cond, 1));
     }
-  else
-    return 0;
+#endif
+
+  return 0;
 }
 
 /* Return nonzero if conditions COND1 and COND2 can never be both true.  */