This is the mail archive of the gcc-patches@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: [3.4-BIB] Use FFREEp


> On Fri, Nov 22, 2002 at 08:51:27PM +0100, Jan Hubicka wrote:
> > -       /* %%% We loose REG_DEAD notes for controling pops if we split late.  */
> 
> Since when did this change?
I've reordered reg-stack and insn splitting pass some time ago.
Oops, this is sick.  We now have
#ifdef STACK_REGS
  if (optimize)
    split_all_insns (1);
#endif

#ifdef INSN_SCHEDULING
  if (optimize > 0 && flag_schedule_insns_after_reload)
    {
      timevar_push (TV_SCHED2);
      open_dump_file (DFI_sched2, decl);

      /* Do control and data sched analysis again,
	 and write some more of the results to dump file.  */

      split_all_insns (1);
  ....
#if defined (HAVE_ATTR_length) && !defined (STACK_REGS)
  timevar_push (TV_SHORTEN_BRANCH);
  split_all_insns_noflow ();
  timevar_pop (TV_SHORTEN_BRANCH);
#endif
...
  reg_to_stack (insns, rtl_dump_file);
...
  shorten_branches (get_insns ());
...

But in reg-stack we do have.
  if (!optimize)
    split_all_insns (0);
So splitting is done in all cases before reg-stack.

Do you see anything wrong with doing the first split_all_insns
unconditional and kill all the other ones?
We probably can also add abort at splitting in the final pass as now it
should happen only when recursive splitting is needed and that is bad
idea.

Honza
> 
> 
> r~


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