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
Hello,
> > would not there be some simpler possibility? I do not really change
> > anything that should concern aliasing, I just change the way the address
> > of the memory reference is computed (in strength reduction).
> >
> Show me where? If you're just copying tags from one pointer to the
> other, then I agree, it's not necessary.
currently I do this (in tree-ssa-loop-ivopts.c:rewrite_use_address).
if (TREE_CODE (op) == SSA_NAME)
{
/* We need to add a memory tag for the variable. But we do not want
to add it to the temporary used for the computations, since this leads
to problems in redundancy elimination when there are common parts
in two computations refering to the different arrays. So we rewrite
the base variable of the ssa name to a new temporary. */
tmp_var = create_tmp_var (TREE_TYPE (op), "ruatmp");
add_referenced_tmp_var (tmp_var);
SSA_NAME_VAR (op) = tmp_var;
var = get_base_decl (*use->op_p);
if (var_ann (var)->type_mem_tag)
var = var_ann (var)->type_mem_tag;
var_ann (tmp_var)->type_mem_tag = var;
name = get_base_var (*use->op_p);
if (name && TREE_CODE (name) == SSA_NAME)
{
ssa_name_ann_t ann = ssa_name_ann (name), new_ann;
if (ann && ann->name_mem_tag)
{
new_ann = get_ssa_name_ann (op);
new_ann->name_mem_tag = ann->name_mem_tag;
}
}
}
Zdenek