> > I hope it's clearer now, I will add a comment to the code, and submit it > > before committing it. > > No, it's not clearer, because it is not clear why you need to add the hack > instead of avoiding the 2nd access function. And iff you add the hack it > needs a comment why zero should be special (any other constant would > be the same I suppose). > > Btw, your fortran example does not compile and I don't believe the issue > is still present after my last changes to dr_analyze_indices. So, did > you verify this on trunk? > > Richard. This patch fixes the failures described in http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49960 It also fixes bzips when run with autopar enabled. In both cases the self dependences are not handled correctly. In the first case, a non affine access is analyzed: in the second, the distance vector is not calculated correctly (the distance vector considered for for self dependences is always (0,0,...)) As a result, the loops get wrongfully parallelized. I modified the previous patch according to the last changes in the trunk, which indeed do not requite special handling for the 2nd access function (as mentioned by Richard). Another change is that the previous version of the patch eliminated compute_self_dependences function as the calls to it were redundant, while this version considers the new call to compute_self_dependences from the vect code for gather (inserted lately by Jakub). ChangeLog: PR tree-optimization/49960 * tree-data-ref.c (initialize_data_dependence_relation): Add initializations. Remove call to compute_self_dependence. (compute_affine_dependence): Remove the !DDR_SELF_REFERENCE condition. (compute_self_dependence): Remove old code. Add call to compute_affine_dependence. (compute_all_dependences): Remove call to compute_self_dependence. Add call to compute_affine_dependence. testsuite/ChangeLog: PR tree-optimization/49960 * gcc.dg/autopar/pr49960.c: New test. * gcc.dg/autopar/pr49960-1.c: New test. Bootstrap and testsuite pass successfully for ppc64-redhat-linux. OK for trunk? Thank you, Razya