> > > Are you suggesting we remove the entire code path here:
> > >
> > > ?/* Try harder to get a rtl. ?If this symbol ends up not being emitted
> > > ? ? in the current CU, resolve_addr will remove the expression referencing
> > > ? ? it. ?*/
> > >
> > > ??
> >
> > Yes.
>
> That will very much pessimize debug info. While we are now always in
> -funit-at-a-time mode, that doesn't mean DECL_RTL is computed early enough.
> From the file scope non-static vars, at the point debug info is generated only
> the first var usually has DECL_RTL set, all others don't.
> For the cfgexpand.c occurence of this idiom, please see e.g. PR41353 -
> even simple testcases like:
So... Richi, et al. Instead, should I remove alias set numbers
on the -fcompare-debug case, or inhibit new alias sets like thus:
unsigned int save_aliasing = flag_strict_aliasing;
flag_strict_aliasing = 0;
do the DECL_RTL thing
flag_strict_aliasing = save_aliasing;
Well, I'll let you two figure it out... :)
Thanks for taking a look at this.
Aldy