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