This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Ifcvt and epilogue insns
- To: Richard Earnshaw <rearnsha at arm dot com>
- Subject: Re: Ifcvt and epilogue insns
- From: Richard Henderson <rth at cygnus dot com>
- Date: Wed, 31 May 2000 17:01:47 -0700
- Cc: gcc-bugs at gcc dot gnu dot org, gcc-patches at gcc dot gnu dot org
- References: <200005312031.VAA09394@cam-mail2.cambridge.arm.com>
On Wed, May 31, 2000 at 09:31:50PM +0100, Richard Earnshaw wrote:
> cond_exec_process_insns squashes both the clobber and the use insns (even
> though conversion of the final jump eventually fails...
I saw this on ia64 too. I thought I'd already committed the
change, but I see that I hadn't. It turns out that we just
can't ever ignore the clobber, which is kinda too bad.
The only thing we might could do is have the optimizers know
about a synthetic insn (cond_exec (pred) (clobber)), just as
they know about just plain (clobber) now. But this was more
of a change than I really wanted to make at the moment.
r~
* ifcvt.c (cond_exec_process_insns): Don't ever ignore clobbers.
Index: ifcvt.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/ifcvt.c,v
retrieving revision 1.25
diff -c -p -d -r1.25 ifcvt.c
*** ifcvt.c 2000/05/31 07:33:02 1.25
--- ifcvt.c 2000/05/31 23:57:11
*************** cond_exec_process_insns (start, end, tes
*** 216,225 ****
if (GET_CODE (insn) != INSN && GET_CODE (insn) != CALL_INSN)
abort ();
! /* Remove USE and CLOBBER insns that get in the way. */
! if (reload_completed
! && (GET_CODE (PATTERN (insn)) == USE
! || GET_CODE (PATTERN (insn)) == CLOBBER))
{
/* ??? Ug. Actually unlinking the thing is problematic,
given what we'd have to coordinate with our callers. */
--- 216,223 ----
if (GET_CODE (insn) != INSN && GET_CODE (insn) != CALL_INSN)
abort ();
! /* Remove USE insns that get in the way. */
! if (reload_completed && GET_CODE (PATTERN (insn)) == USE)
{
/* ??? Ug. Actually unlinking the thing is problematic,
given what we'd have to coordinate with our callers. */