From a8b3643c4056686ad991a348ef97060704bf2622 Mon Sep 17 00:00:00 2001 From: Richard Earnshaw Date: Mon, 30 Aug 2004 12:43:19 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 5 +++++ gcc/sched-deps.c | 10 ++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d2ccd28eff8..e44502c653a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2004-08-30 Richard Earnshaw + + * sched-deps.c (get_condition): Partially revert previous, by never + trying to extract the condition from a condjump. + 2004-08-30 Richard Sandiford * 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 2c551cfabfb..b76e217df81 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. */ -- 2.30.2