On Mon, Apr 26, 2010 at 3:42 PM, roy rosen <roy.1ro...@gmail.com> wrote: > Hi Richard, > > Here is the relevant block from the dump: > > <bb 3>: > __vect_var__26_6 = *__vect_p_14_19; > *__vect_p_18_25 = __vect_var__26_6; > # PT = nonlocal { __PARM_RESTRICT_2 } (restr) > __vect_p_22_11 = __vect_p_14_19 + 8; > # PT = nonlocal { __PARM_RESTRICT_1 } (restr) > __vect_p_27_12 = __vect_p_18_25 + 8; > __vect_var__26_45 = *__vect_p_22_11; > *__vect_p_27_12 = __vect_var__26_45; > > I guess that it recognizes the restrict pointer so I don't understand > why later it creates a dependency between the insns. > Do you see here something relevant?
No, it looks good. At least if both __vect_p_22 and __vect_p_27 are restrict qualified. The RTL dumps should show *__vect_p_27_12 and similar expressions in their MEM_ATTRS as well. Note that IVOPTs is known to not preserve alias information so you might want to try -fno-ivopts > Thanks, Roy. >