This is the mail archive of the gcc@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]
Other format: [Raw text]

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


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