Hi,

On Fri, 22 Jun 2007, Kenneth Zadeck wrote:

> > Index: gcc/gcc/reg-stack.c
> > ===================================================================
> > --- gcc.orig/gcc/reg-stack.c
> > +++ gcc/gcc/reg-stack.c
> > @@ -2316,6 +2316,12 @@ subst_stack_regs (rtx insn, stack regsta
> >    if (NOTE_P (insn) || INSN_DELETED_P (insn))
> >      return control_flow_insn_deleted;
> >  
> > +  if (SIBLING_CALL_P (insn))
> > +    {
> > +      CLEAR_HARD_REG_SET (regstack->reg_set);
> > +      return control_flow_insn_deleted;
> > +    }
> > +
> >    /* If this a noreturn call, we can't insert pop insns after it.
> >       Instead, reset the stack state to empty.  */
> >    if (CALL_P (insn)
> >   
> so how are you coming with the 68k?

I started the bootstrap with my change and it works fine now, the tests 
are still running but so far there is no dataflow related problem. :)
I'll drop my patch, the live information for an abnormal edge isn't really 
important anymore assuming the right thing is done for last call insn in 
that block. reg-stack could make use of it, but I'll leave that to someone 
else... :-)

bye, Roman

Reply via email to