unsharing rtl too early

Jeffrey A Law law@cygnus.com
Tue May 23 13:11:00 GMT 2000


  In message < orhfbt7zii.fsf@tamanduatei.dcc.unicamp.br >you write:
  > --=-=-=
  > 
  > On May 20, 2000, Richard Henderson <rth@cygnus.com> wrote:
  > 
  > > On Sat, May 20, 2000 at 07:24:42AM -0300, Alexandre Oliva wrote:
  > >> * emit-rtl.c (unshare_all_rtl): Store the copied rtx.
  > 
  > > Bwahaha.  Yes, this is obviously ok.
  > 
  > Nevertheless, it was not enough to fix gcc.dg/980816-1.c, as I've
  > noticed a few minutes ago.  The problem was that, in the original
  > testcase, both variables referenced in the divmod insn were
  > virtual-stack-vars, not virtual-incoming-args, so they were not
  > unshared.
  > 
  > Here's a patch that arranges for decls to be unshared too, thus fixing
  > the testcase on mn10300.  Ok to install?
  > 
  > 
  > --=-=-=
  > Content-Type: text/x-patch
  > Content-Disposition: inline; filename=unshare-decls.patch
  > 
  > Index: gcc/ChangeLog
  > from  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
  > 
  > 	* emit-rtl.c (unshare_all_decls): New function.
  > 	(unshare_all_rtl): Call it.
Basically OK.

  > +/* Go through all virtual stack slots of a function and copy any
  > +   shared structure.  */
  > +static void
  > +unshare_all_decls (let)
  > +     tree let;
  > +{
Choose something other than "let" for the parameter name -- I have no idea
what "let" is supposed to stand for :-)  "blocks" might be a better name
for that parameter.

jeff



More information about the Gcc-patches mailing list