On Mon, Aug 14, 2017 at 11:19 AM, Bin Cheng <bin.ch...@arm.com> wrote:
> Hi,
> This simple patch adds new field in struct dependence_info.  The new field
> indicates if non-dependence information is only valid for fixed memory access
> length of this reference.  There is a concern that this costs an additional
> byte for all tree nodes, but I do not know easy way out because we need to
> differentiate dependence_info derived from runtime alias check with others
> derived from restrict pointer.
> Bootstrap and test in series.  any comment?

This increases each tree node by 8 bytes, so no.  You'd have to carve the
bit away from either clique or base or find a bit elsewhere.

Note I do not understand the comment.

IIRC we discussed this in the context of versioning for aliasing where
for example vectorizer alias checks are performed with a min. dependence
distance in mind.  So when marking refs as non-aliasing we have to ensure
the info still holds when unrolling the loop n > min. dependence distance time
which is ensured by clearing the non-alias info.

Basically the versioned loop copy now adheres to safelen = vect-factor and
the question is what safelen translates to (see also PR81877 for some fun
around safelen).

Richard.

> Thanks,
> bin
> 2017-08-10  Bin Cheng  <bin.ch...@arm.com>
>
>         * tree-core.h (struct tree_base.dependence_info): New field.
>         * tree.c (copy_node): Reset dependence info for fixed length
>         memory access.
>         * tree.h (MR_DEPENDENCE_FIXED_LENGTH_P): New macro.

Reply via email to