aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Earnshaw <rearnsha@arm.com>2004-08-30 12:43:19 +0000
committerRichard Earnshaw <rearnsha@gcc.gnu.org>2004-08-30 12:43:19 +0000
commita8b3643c4056686ad991a348ef97060704bf2622 (patch)
tree7d88c1fadd72ff1cfc5933080011526cf3a5d718 /gcc
parent4094f4d2c49d3a83fb43e481c4110f16fb812aaf (diff)
downloadgcc-a8b3643c4056686ad991a348ef97060704bf2622.zip
gcc-a8b3643c4056686ad991a348ef97060704bf2622.tar.gz
gcc-a8b3643c4056686ad991a348ef97060704bf2622.tar.bz2
sched-deps.c (get_condition): Partially revert previous, by never trying to extract the condition from a condjump.
* sched-deps.c (get_condition): Partially revert previous, by never trying to extract the condition from a condjump. From-SVN: r86763
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/sched-deps.c10
2 files changed, 13 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d2ccd28..e44502c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/sched-deps.c b/gcc/sched-deps.c
index 2c551cf..b76e217 100644
--- a/gcc/sched-deps.c
+++ b/gcc/sched-deps.c
@@ -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. */