[tree-ssa] live analysis on local static functions
Jan Hubicka
hubicka@ucw.cz
Tue Oct 14 16:58:00 GMT 2003
> 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.
More information about the Gcc
mailing list