This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Ifcvt and epilogue insns


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.  */

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]