This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]