split_edge, reg-stack and function.c fix

Jeffrey A Law law@cygnus.com
Tue Jan 4 21:38:00 GMT 2000


  In message < 20000104211415.A9717@cygnus.com >you write:
  > On Tue, Jan 04, 2000 at 06:41:41PM -0700, Jeffrey A Law wrote:
  > >   > The new backend is not prepared for this step yet and splitting after
  > >   > reg-stack causes lossage (it was OK for old backend, because it didn'
  > t
  > >   >  defined lenght attribute).
  > > Can you please explain why?  Something is rather broken if moving the
  > > branch shortening pass to its proper place is causing the tree to stop
  > > working.
  > 
  > Because branch shortening also does splitting.  And if we split
  > we lose or misplace death notes, which of course ruins the work
  > reg-stack does.
  > 
  > The proper solution is to move all splitting out of all passes
  > and have it called at its proper place in rest_of_compilation.
Sigh.  More death note lossage.  In a pure sense I would claim regstack
and the ia32 backend are braindead and shouldn't abuse notes like that.

But I'm a practical guy.  I've reverted the patch for now, but that should
be a temporary measure until we can fix regstack & the ia32 backend from
abusing death notes.

Oh yea, I put a comment at the call to shorten branches so that others won't
make the same mistake again :-)
jeff



More information about the Gcc-patches mailing list