This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Use reversed_comparison_code in sched-deps.c
On Mon, 2004-08-30 at 12:33, Richard Earnshaw wrote:
> Unless somebody knows how to simply address the fallout, I think I'm
> going to disable get_condition from looking inside a condjump insn for
> now until I can find time to look at the issues this all raises.
I've gone ahead and reverted this change as follows. It leaves the
correct code in place as an indication of intent, but disables it for
the time being.
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.
Index: sched-deps.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/sched-deps.c,v
retrieving revision 1.78
retrieving revision 1.79
diff -p -r1.78 -r1.79
*** sched-deps.c 30 Aug 2004 01:28:22 -0000 1.78
--- sched-deps.c 30 Aug 2004 12:43:19 -0000 1.79
*************** get_condition (rtx insn)
*** 153,158 ****
--- 153,163 ----
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)
*************** get_condition (rtx insn)
*** 165,172 ****
return gen_rtx_fmt_ee (revcode, GET_MODE (cond), XEXP (cond, 0),
XEXP (cond, 1));
}
! else
! return 0;
}
/* Return nonzero if conditions COND1 and COND2 can never be both true. */
--- 170,178 ----
return gen_rtx_fmt_ee (revcode, GET_MODE (cond), XEXP (cond, 0),
XEXP (cond, 1));
}
! #endif
!
! return 0;
}
/* Return nonzero if conditions COND1 and COND2 can never be both true. */