This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Still has problems: Re: [tree-ssa] USE or VUSE bugs?
- From: Diego Novillo <dnovillo at redhat dot com>
- To: Wei Liu <liuwei at cs dot uiuc dot edu>
- Cc: Daniel Berlin <dberlin at dberlin dot org>,"gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>
- Date: 28 Apr 2003 22:42:24 -0400
- Subject: Re: Still has problems: Re: [tree-ssa] USE or VUSE bugs?
- Organization: Red Hat Canada
- References: <Pine.SOL.4.44.0304282123290.15543-100000@alphard.cs.uiuc.edu>
On Mon, 2003-04-28 at 22:24, Wei Liu wrote:
> On Mon, 28 Apr 2003, Diego Novillo wrote:
>
> > On Mon, Apr 28, 2003 at 11:02:06AM -0500, Wei Liu wrote:
> >
> > > # (*str.1)_37 = VDEF <(*str.1)_15>;
> > > # (*b.5)_38 = VDEF <(*b.5)_17>;
> > > # .GLOBAL_VAR_39 = VDEF <.GL~OBAL_VAR_36>;
> > > # VUSE <.GLOBAL_VAR_36>;
> > > a = c
> > > }
> > >
> > > Please note the last statement "a=c", I hope it has some relation with the
> > > second scanf, i.e. a should be aliased with (*str.6), but acturally not. I
> > > expect I can have # (*str.6)_40 = VDEF <(*str.6)_31> attached to "a=c", or
> > > something similar.
> > >
> > > Do I miss something?
> > >
> > Add -alias to your -fdump... flag. You should find 'a' aliased to
> > *str.1, *b.5 and .GLOBAL_VAR.
> Yes. I do fine the alias info. Maybe I can simplify my question as: how
> can I get the use operands for the statement "a=c"?
>
Currently you can't. 'a' is a global and 'c' is aliased. You either
need to fine tune the alias analyzer and/or follow the virtual operands.
The operands for that statement are telling you that the assignment may
modify *str.1, *b.5 and .GLOBAL_VAR. As I said yesterday, our alias
analysis routines need a lot of help. They're way too conservative at
the moment.
Diego.