OSDN Git Service

* sched-deps.c (get_condition): Partially revert previous, by never
authorrearnsha <rearnsha@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 30 Aug 2004 12:43:19 +0000 (12:43 +0000)
committerrearnsha <rearnsha@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 30 Aug 2004 12:43:19 +0000 (12:43 +0000)
trying to extract the condition from a condjump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@86763 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/sched-deps.c

index d2ccd28..e44502c 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 2c551cf..b76e217 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.  */