This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [lno] "no flow-sensitive alias info" warning to vectorizer
- From: Diego Novillo <dnovillo at redhat dot com>
- To: Dorit Naishlos <DORIT at il dot ibm dot com>
- Cc: "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>
- Date: Tue, 24 Feb 2004 11:19:39 -0500
- Subject: Re: [lno] "no flow-sensitive alias info" warning to vectorizer
- Organization: Red Hat Canada
- References: <OFB2AE7175.0D9A65A9-ONC2256E44.005547E6-C2256E44.0057CDCF@il.ibm.com>
On Tue, 2004-02-24 at 10:59, Dorit Naishlos wrote:
> I've noticed a new warning is being generated against the vectorizer (I
> think it appeared after the recent merge with tree-ssa):
>
> "NOTE: no flow-sensitive alias info for vect_pX.5_14 in *vect_pX.5_14 =
> vect_cst_.6;"
>
These are mostly harmless. They just inform you that a given SSA_NAME
has no alias information.
> for the following vectorized tree sequence:
>
> 1 vect_pX.1_11 = &X;
> 2 vect_iv_.3_12 = vect_iv_.2_15;
> 3 vect_iv_.4_13 = vect_iv_.3_12 * 16;
> 4 vect_pX.5_14 = vect_pX.1_11 + vect_iv_.4_13;
> 5 *vect_pX.5_14 = vect_cst_.6_18;
>
> Currently, I only set 'type_mem_tag' to vectorizer generated pointers,
> using:
>
> get_var_ann (ptr)->type_mem_tag = array_base;
>
Hmm, it would be better if you can call the alias analyzer to set memory
tags. Ideally, only the alias analyzer should be assigning memory
tags. In this case, I expect 'vect_pX.5_14' to have 'X' as its only
alias.
The net effect should be that you will only get virtual operands for 'X'
every time you emit a dereference of vect_pX.5.
> Can I (and should I) do something in order to not get this new warning?
> Should I set a 'name_mem_tag' as well? which API should I use?
>
Try scheduling a compute_may_aliases pass right after the vectorizer.
Oh, and try not to create memory tags manually.
Diego.