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]

Re: State of maturity for gcc 2.95.3 and gcc 2.96


On Mon, 16 Oct 2000, Bernd Schmidt wrote:
> On Sun, 15 Oct 2000, Franz Sirl wrote:
> > On Sat, 14 Oct 2000, Bernd Schmidt wrote:
> > > On Sat, 14 Oct 2000, Toon Moene wrote:
> > > > Bernd Schmidt wrote:
> > > > > On Thu, 12 Oct 2000, David O'Brien wrote:
> > > > > > Since 3.0 is still quite some time away, can 2.95.3 finally be
> > > > > > released? Some very major bugs have been fixed, but commits have
> > > > > > been very cautious to that branch.  I'd almost imagine all that
> > > > > > would be needed is to do a checkout and tar it up.
> > > > >
> > > > > You'd want to fix at least one new bug introduced in reload...
> > > >
> > > > This would indicate that our process to update the release branch is
> > > > not correct.
> > >
> > > No, it indicates that not everything that looks like an obvious bug fix
> > > is necessarily correct.
> > >
> > > More specifically, this patch
> > >         * reload1.c (reload_reg_free_for_value_p): Don't use a register
> > >         that is in reload_reg_used.
> > > is incorrect; there's a correct solution for the bug in the current
> > > sources.
> >
> > Could you be a bit more specific on what patch is the correct bugfix so I
> > can find it in the mainline and/or lists? I'll look into backporting it
> > to the gcc-2_95-branch then.
>
> Here's a set of patches that may be helpful.  I did a diff between the
> current 2.95 reload and loop code and tried to figure out patches I
> remembered or which seemed obvious, then I backported those.
> Off-hand, I can think of a few more patches that may be worthwhile.  Better
> to test this set thoroughly first, though.
>
>
> Bernd
>
> Wed Oct 27 03:09:23 1999  J"orn Rennecke <amylaar@redhat.co.uk>
>
> 	* reload.h (earlyclobber_operand_p): Declare.
> 	* reload.c (earlyclobber_operand_p): Don't declare.  No longer static.
> 	* reload1.c (reload_reg_free_for_value_p):  RELOAD_OTHER reloads with
> 	an earlyclobbered output conflict with RELOAD_INPUT reloads - handle
> 	case where the RELOAD_OTHER reload is new.  Use earlyclobber_operand_p.
>
> 2000-01-12  Bernd Schmidt  <bernds@redhat.co.uk>
>
> 	* reload1.c (reload_reg_unavailable): New static variable.
> 	(reload_reg_free_p): Test it.
> 	(reload_reg_free_for_value_p): Test it instead of
> 	reload_reg_used.
> 	(choose_reload_regs_init): Compute it.
>
> Sun Oct 10 13:28:48 1999  Bernd Schmidt  <bernds@redhat.co.uk>
>
> 	* loop.c (find_and_verify_loops): When looking for a BARRIER, don't
> 	use one before a jump table.
>
> Thu Jul  6 18:30:36 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
>
> 	* reload.c (push_reload): When seeing if can reuse a register,
> 	check extra registers against widest of INMODE and OUTMODE.
>
> 1999-11-29  Bernd Schmidt  <bernds@redhat.co.uk>
>
> 	* reload.c (push_reload): When looking for a register to put into
> 	reg_rtx, make sure all hard regs in a multi-reg register are in the
> 	right class and nonfixed.
>
> 1999-11-29  Joern Rennecke  <amylaar@redhat.co.uk>
>
> 	* reload1.c (reloads_conflict): Reverse test comparing operand
> 	numbers when testing for conflict between output/outaddr reloads.
>
> 2000-07-12  Richard Henderson  <rth@redhat.com>
>
> 	* reload.c (push_secondary_reload): Make sure to add the new
> 	reload at the end, after acquiring secondary memory.
>
> Fri Jul  9 10:48:28 1999  Bernd Schmidt  <bernds@redhat.co.uk>
>
> 	* loop.c (check_dbra_loop): When reversing a loop, delete all
> 	REG_EQUAL notes referencing the reversed biv except those which are
> 	for a giv based on it.
>
> 2000-09-14  Alexandre Oliva  <aoliva@redhat.com>, Bernd Schmidt 
> <bernds@redhat.co.uk>
>
> 	* reload.c (find_reloads_address_1): Generate reloads for auto_inc
> 	pseudos that refer to the original pseudos, not only to their
> 	equivalent memory locations.
>
> 2000-09-18  Bernd Schmidt  <bernds@redhat.co.uk>
>
> 	* reload1.c (forget_old_reloads_1): If a hard reg is stored, clear
> 	its entry in spill_reg_store.
>
> Tue Oct 26 00:41:54 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
>
> 	* reload1.c (reload_reg_free_for_value_p): Show
> 	RELOAD_FOR_OTHER_ADDRESS reloads can conflict with RELOAD_OTHER
> 	reloads.

Great!
Bernd this is really great stuff, thanks. So far it behaves well upon my 
backport patchset, I'll throw it now on our build machine, lets see how it 
goes. If all is well, I'll post a new backport patchset.

One thing is not clear to me though, do I need to revert this patch:

         * reload1.c (reload_reg_free_for_value_p): Don't use a register
         that is in reload_reg_used.

Or does your patch fixup this too?

Franz.

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