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.