Hello, I am trying to understand the usage of some functions in tree-affine.c file and I appreciate your help.
For example; for the two memory accesses arr[b+8].X and arr[b+9].X, how does their affine combinations will look like after executing the following sequence of operation? (taken from http://gcc.gnu.org/ml/gcc-patches/2007-01/msg02605.html) get_inner_reference_aff (mem1, &off1, &size1); get_inner_reference_aff (mem2, &off2, &size2); aff_combination_expand (&off1, ttae_cache); aff_combination_expand (&off2, ttae_cache); aff_combination_scale (&off1, double_int_minus_one); aff_combination_add (&off2, &off1); Also, why does diff->n is an indication for the fact that two memory accesses can overlap in the following snippet taken from the above link? static bool cannot_overlap_p (aff_tree *diff, double_int size1, double_int size2) { double_int d, bound; /* Unless the difference is a constant, we fail. */ if (diff->n != 0) return false; Thanks in advance, Revital