This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Ordering of splitting passes
> > The motivation has been to put all the passes into toplev.c so one can
> > remove redundanties in between them. Originally we did twice as many
> > passes than we do now and also we can not split after reg-stack because
> > of changes in the RTL representation.
>
> Ok, but the problem is the split *before* reg-stack.c. Why is it not simply
> put inside
>
> #ifdef STACK_REGS
> timevar_push (TV_REG_STACK);
> open_dump_file (DFI_stack, decl);
>
> reg_to_stack (insns, rtl_dump_file);
>
> close_dump_file (DFI_stack, print_rtl_with_bb, insns);
> timevar_pop (TV_REG_STACK);
>
> ggc_collect ();
> #endif
>
> instead of being four passes above?
Because we need splitting pass there anyway to assist the other passes.
I believed that the other passes are not supposed to introduce
unsplittable instructions...
(I have to take a look why exactly this happens anyway)
Honza
>
> > Perhaps the best fix is to make insn splitting before sched2
> > unconditiona? (this is probably what makes the testcase to pass at -O2)
>
> Yes, it passes at -O2 because of this sched2 splitting.
>
> --
> Eric Botcazou