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


> On Tue, Oct 07, 2003 at 11:24:21AM +0200, Jan Hubicka wrote:
> > > > 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)
> 
> For details what happened recently on gcc-3_3-branch see:
> http://gcc.gnu.org/ml/gcc-patches/2003-09/msg00457.html (commited patch)
> http://gcc.gnu.org/ml/gcc-patches/2003-08/msg01516.html (and following thread)

I see now. That code in crossjumping is pretty ugly code.  It mentions
that it is needed for G++ cleanups.  It is still the case?
I would gues that if G++ emitted two hunks of same code, it will likely
ked the same register allocated.  I don't see much point by putting the
constant back by hand...

Honza
> 
> 	Jakub


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