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