This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: rfa: remove get_var_ann (was: Fix PR50260)
Hi,
On Sat, 3 Sep 2011, Richard Guenther wrote:
> >> As I feared the call to get_var_ann in set_is_used right now really
> >> is still needed, privatizing it hence isn't that straight forward.
> >
> > After pondering I concluded that it's not necessary to call
> > set_is_used for variables without var annotation. ÂThose won't be in
> > referenced_vars (or local_decls) and therefore also won't be removed
> > from those lists no matter how hard we try.
> >
> > Regstrapped on x86_64-linux (without Ada). ÂOkay for trunk?
>
> No. We call mark_all_vars_used on trees contained in GIMPLE non-debug
> statements. All vars we can reach that way _have_ to be in the list of
> referenced vars.
Sometimes global variables (non-auto vars with context != cfun) can be
missing from referenced_vars. In the case where we hit bugs with this
it's the non-local variables generated for profile counters. I can add
the respective add_referenced_var calls for that, but I'm not sure I see
the point. That of course comes back to our old discussion for what
purposes referenced_vars actually is used. I looked at all users and I
think that the global counters missing from referenced_vars is harmless.
OTOH it's a nice invariant that can actually be checked for (that all
reachable vars whatsoever have to be in referenced_vars), so I'm going to
do that.
> That they are not is the bug. So - can you investigate
> which var doesn't have an annotation an why it isn't in referenced vars?
Ciao,
Michael.