Ordering of splitting passes

Eric Botcazou ebotcazou@libertysurf.fr
Tue Oct 7 08:55:00 GMT 2003


> 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?

> 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



More information about the Gcc mailing list