http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46194
--- Comment #9 from sebpop at gmail dot com <sebpop at gmail dot com> 2011-02-03 19:54:36 UTC --- >> 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.