This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Help understanding tree-affine.c
- From: Revital1 Eres <ERES at il dot ibm dot com>
- To: gcc at gcc dot gnu dot org
- Cc: Zdenek Dvorak <rakdver at kam dot mff dot cuni dot cz>
- Date: Mon, 11 Jun 2007 18:41:37 +0300
- Subject: Help understanding tree-affine.c
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