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: [patches] Re: more robust purge_dead_edges


On Wed, Jul 25, 2001 at 12:20:18AM +0200, Jan Hubicka wrote:
> > > +       if (!any_condjump_p (insn)
> > > + 	  && !simplejump_p (insn))
> > > + 	return;
> > 
> > How about a conditional return being simplified to an
> > unconditional return?  This wouldn't seem to support that.
> It does get to the earlier path:

Um, no, you miss my meaning.

A conditional return is any_condjump_p.  An unconditional
return is _not_ simplejump_p.  Thus an unconditional return
will not be processed by this function, so the fallthru from
the extinct conditional return will not be removed.

I'm undecided as to whether the test should be 

	if (computed_jump_p (insn))
	  return;
or
	if (! any_condjump_p (insn)
	    && ! simplejump_p (insn)
	    && ! returnjump_p (insn))
	  return;


r~


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