This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [tree-ssa] live analysis on local static functions
- From: Jan Hubicka <hubicka at ucw dot cz>
- To: Diego Novillo <dnovillo at redhat dot com>
- Cc: Jan Hubicka <jh at suse dot cz>, "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>,Richard Henderson <rth at redhat dot com>
- Date: Tue, 14 Oct 2003 18:46:18 +0200
- Subject: Re: [tree-ssa] live analysis on local static functions
- References: <20031014161010.GH6212@kam.mff.cuni.cz> <1066149434.1214.77.camel@frodo.toronto.redhat.com>
> On Tue, 2003-10-14 at 12:10, Jan Hubicka wrote:
>
> > ;; Function q (q)
> >
> > q ()
> > {
> > char * <Ub244>;
> >
> > {
> > <Ub244> = a;
> > <Ub1d0>:;;
> > };
> > return <Ub244>;;
> > }
> >
> > so we miss the initializer. I've tracked down the problem to fact that
> > variable a does not have flag used set in it's annotation. It has, when
> > I disable the inlining. It is marked in create_ssa_var_map by seeing
> > VUSE attached to the return statement. With inline enabled the set also
> > has VUSE but it's operand is not VAR_DECL itself, but SSA_NAME
> >
> The assignment seems to be killed by DCE, so it should not be related to
> the used flag. We may be missing the use-def link between the use of
> 'a' and its initialization. Could you add it as a test case and open a
Should be there a link when the initialization happens outside the
function?
> bugzilla report?
>
> There should be a VDEF of 'a' in that initialization. What does
> -fdump-tree-all-vops show?
No VDEFs are emit for static initailizers.
There is VUSE <a_1> but as I've explained earlier it points to SSA_NAME
so we don't set tree-used flag on the original.
Honza
>
>
> Thanks. Diego.