>>  access_fn_A: {0, +, 1}_1
>>  access_fn_B: {0, +, 1}_2
>>
>>  (subscript
>>  iterations_that_access_an_element_twice_in_A: [0 + 1 * x_1]
>>  last_conflict: 1000
>>  iterations_that_access_an_element_twice_in_B: [0 + 1 * x_1]
>
> I think that this representation of affine functions is wrong:
> the access in B should read [0 + 0 * x_1 + 1 * x_2] and that
> would not lead to a wrong conclusion like the following...

This representation is correct, as it stands for: there exists
a dependence for all x_1 from 0 to 1000, that is, there exist
a possible overlap that is represented by:

{0, +, 1}_1 ([0 + 1 * x_1]) == {0, +, 1}_2 ([0 + 1 * x_1])

>
>>  last_conflict: 1000
>>  (Subscript distance: 0
>>  )
>>  )
>>  inner loop index: 0
>>  loop nest: (1 2 )
>>  distance_vector:   0   0
>>  direction_vector:     =    =
>> )
>

This representation is still wrong, and so I went to see where this
was computed, and the bug seems to be in build_classic_dist_vector_1
I will submit a patch to fix this.

Reply via email to