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: Re: PATCH: small -freorder-block defect





On Tue, 14 Mar 2000, Richard Henderson wrote:

> On Tue, Mar 14, 2000 at 04:57:42PM -0800, Jason Eckhardt wrote:
> > - 	  && returnjump_p (x)
> > + 	  && GET_CODE (PATTERN (x)) == RETURN
> 
> No, you also see things like
> 
>   (parallel [(use (reg 26))
> 	     (return)])
> 
> How about
> 
>   returnjump_p (x) && ! condjump_p (x)
> 
> 
> r~
> 

 Ok?

	* flow.c (verify_flow_info): Check for unconditional return.

Index: flow.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/flow.c,v
retrieving revision 1.234
diff -c -3 -p -r1.234 flow.c
*** flow.c	2000/03/14 22:50:19	1.234
--- flow.c	2000/03/15 01:14:32
*************** verify_flow_info ()
*** 5991,5997 ****
  
        if (GET_RTX_CLASS (GET_CODE (x)) == 'i'
  	  && GET_CODE (x) == JUMP_INSN
! 	  && returnjump_p (x)
  	  && ! (NEXT_INSN (x) && GET_CODE (NEXT_INSN (x)) == BARRIER))
  	    fatal_insn ("Return not followed by barrier", x);
  
--- 5991,5997 ----
  
        if (GET_RTX_CLASS (GET_CODE (x)) == 'i'
  	  && GET_CODE (x) == JUMP_INSN
! 	  && returnjump_p (x) && ! condjump_p (x)
  	  && ! (NEXT_INSN (x) && GET_CODE (NEXT_INSN (x)) == BARRIER))
  	    fatal_insn ("Return not followed by barrier", x);
  

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